Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Софт:обсуждение программного обеспечения для умного дома

ТЕМА: Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi

Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi 16 Апр 2019 16:09 #24377

  • olegr70
  • olegr70 аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 189
  • Спасибо получено: 16
  • Репутация: 2
Проект openenergymonitor.
Это проект позволяющий контролировать расход электроэнергии и другие показатели с любых датчиков. В рамках этого проекта существует серверное приложение emoncms, которое можно установить как на локальный сервер, так и на сервер в сети интернет. Оно позволяет хранить данные и визуализировать их.

Ссылка на видео чтобы составить впечатление о проекте:

_https://www.youtube.com/watch?v=8yhXND-uwVQ

Установка локального сервера Emoncms.

Скачиваем образ SD-карты с установленным и настроенным сервером emoncms:
github.com/openenergymonitor/emonpi/wiki...ownload-&-Change-Log
На данный момент версия: emonSD-30Oct18 (Stable)
Ссылки для скачивания:
_http://files.openenergymonitor.org/emonSD-30Oct18.zip UK Server
_http://distanthost.com/oem/emonSD-30Oct18.zip Canada Server
Распаковываем архив и записываем полученный jmg файл на SD-карту с помощью программы
win32diskimager или Etcher tool
Потребуется SD-карта не менее 8ГБ.
После записи передергиваем кардридер в USB порту чтобы наша записанная SD-карта опозналась.
Создаем в корневом разделе SD-карты файл с именем ssh.
Это необходимо чтобы включить доступ по протоколу SSH к Raspberry Pi.
При использовании на Raspberry Pi V2 необходимо отредактировать файл config.txt находящийся в корневом разделе SD-карты. В данном файле необходимо удалить или закоментировать следующие строки:
arm_freq=1200
arm_freq_min=600
На этом подготовка карты закончена. Теперь её можно вставить в Raspberry, подключить Ethernet кабель от маршрутизатора и подать питание.
Загрузка продолжается 5-10 минут. В это время сервер обновляется через интернет до последней доступной версии.
Далее необходимо узнать какой IP адрес получил Raspberry от маршрутизатора.
Это можно посмотреть в самом маршрутизаторе или отсканировать сеть с помощью сканера сети.
Имя клиента DHCP должно быть "emonpi".
В дальнейшем необходимо зарезервировать IP адрес в маршрутизаторе с привязкой его к MAC адресу Raspberry для того чтобы сервер всегда получал один и тот-же адрес. (как вариант можно прописать статический адрес в настройках Raspberry).
Далее в браузере заходим по полученному ранее IP адресу. При первом включении сервер предлагает настроить способ подключения: Ethernet или Wi-Fi подключение. Т.к. я проводил опыты на Raspberry Pi V2 у которого нет Wi-Fi модуля, то соответственно я выбрал пункт с Ethernet подключением.
Далее сервер переходит на страницу запроса логина и пароля. При первом включении так-же присутствует пункт регистрации нового пользователя. Соответственно нас просят ввести Email,login,password. После завершения регистрации можно зайти с этими данными на сервер. На этом установку сервера Emoncms можно считать завершенной.
Кроме этого варианта установки, существует возможность установки сервера Emoncms на любой компьютер с Linux, но это уже совсем другая история....
Администратор запретил публиковать записи гостям.
Спасибо сказали: artur

Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi 16 Апр 2019 17:29 #24378

  • olegr70
  • olegr70 аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 189
  • Спасибо получено: 16
  • Репутация: 2
Продолжаем....

На windows XP старые браузеры некорректно работают с сервером emoncms. При просмотре графиков выскакивает ошибка. Пришлось на XP установить браузер SeaMonkey. Этот браузер правильно работает даже на Win XP.
На более новых версиях Windows с новыми браузерами все работает без проблемм.

Далее...
Подключаемся через программу PuTty по протоколу SSH.
Логины и Пароли emoncms:
SSH: port 22: pi emonpi2016
mqtt mosquitto: emonpi emonpimqtt2016
NodeRed: emonpi emonpi2016

В последней сборке NodeRed не установлен.

Установка NodeRed:

sudo apt-get install build-essential

bash <(curl -sL https+++://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
(Убрать +++ из команды)

node-red-start

Автозапуск NodeRed при загрузке:
Если вам нужно, чтобы Node-RED запускался при загрузке Pi, запустите следующую команду:
sudo systemctl enable nodered.service

Чтобы отключить автозапуск при загрузке, воспользуйтесь следующей командой:
sudo systemctl disable nodered.service

Если всё прошло без ошибок, можно открыть Web интерфейс NodeRed в браузере по адресу:
http://[ip_adr]:1880
По умолчанию логин: emonpi пароль: emonpi2016
Изменить пароль в NodeRed:
В файле: /home/pi/.node-red/settings.js
Изменить username и хэш пароля password в следующих строках:
adminAuth: {
type: "credentials",
users: [{
username: "хххххх",
password: "$2b$08$9R8eT6j4dNc8GZ6.d9xUkuPoхBWxbT2bHQTk/eWWUOaab/I3xVAFjW",
permissions: "*"
}]
},
Указать свой логин (хххххх)
Сгенерировать хэш пароля с помощью команды:
node-red-admin hash-pw
(ввести пароль и в ответ получить длинную строку сгенерированного пароля. Скопировать её и вставить в файле settings.js)
Если команда не запускается (-bash: node-red-admin: command not found),
то выполнить установку node-red-admin с помощью команды: sudo npm install -g node-red-admin
Последнее редактирование: 16 Апр 2019 17:39 от olegr70.
Администратор запретил публиковать записи гостям.

Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi 16 Апр 2019 22:03 #24380

  • olegr70
  • olegr70 аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 189
  • Спасибо получено: 16
  • Репутация: 2
Продолжаем...

NodeRed осваиваю второй день, а программированием последний раз занимался лет 20 назад, по этому строго не судите.

Заходим в Web интерфейс NodeRed и через меню Import/Clipboad вставляем содержимое из текстового файла приложенного к этому сообщению. Нажимаем кнопку Import и в результате получаем вкладку с названием ESP_Emoncms. На данной вкладке присутствуют следующие блоки:
Timer - в этом блоке можно изменить периодичность опроса ESP модулей.
Два блока с IP адресами опрашиваемых ESP модулей. В этих блоках необходимо указать IP адреса своих ESP.
В блоке "change" никаких изменений не требуется.
Блок "Emoncms" в нем необходимо изменить значения двух переменных: var httpUrl и var key.
В первой меняем IP адрес на адрес сервера Emoncms, во второй подставляем Apikey который надо скопировать на странице сервера Emoncms: _http://ххх.ххх.ххх.ххх/emoncms/input/api
Далее нажимаем красную кнопку Deploy чтобы все изменения во всех блоках применились.

Чтобы ESP отправляла данные, в конструкторе прошивки должна быть включена опция GET JSON.
Модуль с данной опцией должен отвечать на Http запрос: _http://xxx.xxx.x.xxx/readjson
В ответ на данный запрос должна появиться строка примерно следующего содержания:
{"system":{"hostname":"esp137","uptime":31815,"rssi":-73,"freemem":27416},"sensors":{"rtct":0.0,"tsllux":0},"gpio":{"12":1,"15":0}}

Если всё настроено правильно то на сервере Emoncms на странице Inputs появятся данные с ESP.
Вложения:
Администратор запретил публиковать записи гостям.

Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi 18 Апр 2019 10:36 #24387

  • olegr70
  • olegr70 аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 189
  • Спасибо получено: 16
  • Репутация: 2
На основе данного движка существует облачный сервис: https://emoncms.org/
C 1 июля 2018 года он стал платным. £1 в год за один поток данных. Но если у них покупать оборудование, то они возвращают 20% от стоимости в счет оплаты облачного сервера.
Вот еще один пример того, что люди делают с помощью данного сервера:
http://emoncms.org/ChabrosMaina
Администратор запретил публиковать записи гостям.

Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi 19 Апр 2019 10:20 #24388

  • olegr70
  • olegr70 аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 189
  • Спасибо получено: 16
  • Репутация: 2
Предлагаю ещё один вариант передачи данных с ESP на сервер Emoncms.
В данном варианте в конструкторе прошивки надо включить опцию "MajorDoMo и другие", в шестеренке настроить порт: 1880 для передачи данных в NodeRed. Прописать путь к скрипту (в данном примере установлено: objects/).
Скомпилировать и залить прошивку на ESP. На ESP во вкладке Servers: включить пункт "Enable send MajorDoMo or other.", указать IP адрес сервера Emoncms, настроить периодичность отправки данных.
В NodeRed импортируем содержимое из текстового файла приложенного к этому сообщению. На вкладке с названием ESP_Emoncms_V2 в блоке [get]/objects/ настраивается папка URL которую указывали в шестеренке при сборке прошивки. Если при сборке указали "objects/" , то здесь ничего не меняем. В Блоке "Emoncms" необходимо изменить значения двух переменных: var httpUrl и var key.
В первой меняем IP адрес на адрес сервера Emoncms, во второй подставляем Apikey который надо скопировать на странице сервера Emoncms: _http://ххх.ххх.ххх.ххх/emoncms/input/api
Далее нажимаем красную кнопку Deploy чтобы все изменения во всех блоках применились.
Если всё настроено правильно, то на сервере Emoncms на странице Inputs появятся все числовые метрики с ESP.
Для подключения другой ESP в NodeRed ничего менять не надо. Необходимо только чтобы Host name: ESP отличался от предыдущей ESP. На сервере Emoncms новая ESP появиться автоматически.

P.S. Я не программист, поэтому скрипт написан на основе примеров из интернета. Может быть кто-нибудь предложит более красивый и оптимальный вариант для этой задачи?
Вложения:
Последнее редактирование: 19 Апр 2019 10:24 от olegr70.
Администратор запретил публиковать записи гостям.

Сбор данных ESP8266 с помощью сервера Emoncms на RaspberryPi 21 Апр 2019 18:24 #24410

  • olegr70
  • olegr70 аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 189
  • Спасибо получено: 16
  • Репутация: 2
Продолжаем....
Попробовал установить сервер на Raspberry Pi Model B+ Rev 1.0 - 512 MB.
Скачиваем образ SD карты Raspbian Stretch Lite с официального сайта:
_https://www.raspberrypi.org/downloads/raspbian/ На данный момент последняя версия: 2019-04-08-raspbian-stretch-lite.zip
Запускаем Rasspbery c этого образа. Заходим по SSH (предварительно не забываем создать пустой ssh файл в boot разделе). Login: pi password: raspberry
На сайте: _https://github.com/openenergymonitor/emonpi/tree/master/install
можно посмотреть команды для автоматической установки сервера emoncms.
Последовательно запускаем три команды:

wget ++++https://raw.githubusercontent.com/openenergymonitor/emonpi/master/install/init.sh (убрать ++++ из команды)
hmod +x init.sh
./init.sh

Первые две выполняются почти мгновенною. Последняя команда выполняется в течении 65 минут на на Raspberry Pi Model B+. На этом процесс установки сервера можно считать завершенным.
В процессе установки меняется пароль SSH. Новый: Login: pi password: emonpi2016
Далее надо установить NodeRed. В данном варианте NodeRed открывается в браузере без пароля.
Последнее редактирование: 21 Апр 2019 18:33 от olegr70.
Администратор запретил публиковать записи гостям.
Спасибо сказали: barinsandr
Модераторы: FlyRouter, Dolfik
Время создания страницы: 0.204 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.