Оглавление:

Монитор мощности на базе Raspberry PI для бытовой техники: 14 шагов
Монитор мощности на базе Raspberry PI для бытовой техники: 14 шагов

Видео: Монитор мощности на базе Raspberry PI для бытовой техники: 14 шагов

Видео: Монитор мощности на базе Raspberry PI для бытовой техники: 14 шагов
Видео: Raspberry Pi - Что нужно знать? Что нужно иметь? Достаточно купить только плату? 2024, Июль
Anonim
Монитор мощности на базе Raspberry PI для бытовой техники
Монитор мощности на базе Raspberry PI для бытовой техники
Монитор мощности на базе Raspberry PI для бытовой техники
Монитор мощности на базе Raspberry PI для бытовой техники

Это был небольшой проект, который я сделал, чтобы отслеживать энергопотребление отдельных бытовых приборов в доме и отображать графики их энергопотребления с течением времени. На самом деле это один из самых простых проектов на основе Raspberry PI, который я делал, не требует пайки или взлома открытых продуктов. Это не обязательно должен быть проект Raspberry PI, это можно легко сделать в Linux или, возможно, Windows.

Стоимость составляет 50 австралийских долларов за комплект из 4 мониторов питания / интеллектуальных розеток и стоимость Raspberry PI. Это может работать на Pi Zero или Original PI, хотя я обнаружил, что это было немного медленно. Единственный другой PI, который у меня есть, это PI 3, и я нашел его очень быстрым, так что я бы порекомендовал его. Обратите внимание: если вы хотите запустить его на более старом PI, вы можете уменьшить частоту сбора данных (я использовал 10 секунд).

Этот проект также имеет дополнительное преимущество или освобождает интеллектуальную розетку от прошивки производителей, поэтому вам не нужно использовать их конкретные приложения и облачные сервисы. Таким образом, их можно использовать с Home Assist или просто с вашими собственными скриптами на Python.

Обратите внимание, я предполагаю, что вы знаете, как установить ОС на PI, подключиться к нему и выполнить некоторые базовые команды Linux. Я также предполагаю, что вы знаете, как найти IP-адрес своей умной розетки после ее подключения к вашей Wi-Fi.

Запасы

2 упаковки или 4 упаковки умных розеток отсюда:

www.kogan.com/au/buy/kogan-smarterhome-sma…

1 малиновый ИП

Навыки и умения:

Возможность настройки малинового ИП

Базовая командная строка linux

Текстовый редактор, такой как vi или nano (nano более удобен, vi работает быстрее, когда вы его узнаете)

Возможность найти IP устройств в вашей сети.

Шаг 1. Купите умные розетки

Купите умные розетки
Купите умные розетки

Умная розетка, которую я использовал, была отсюда:

www.kogan.com/au/buy/kogan-smarterhome-sma…

Обратите внимание, что существует целый ряд совместимых интеллектуальных разъемов, большинство (все?) Являются устройствами на базе ESP8266 (WEMOS) и их очень легко прошить. Убедитесь, что у вас есть что-то, у кого есть контроль мощности, а у многих нет. На этой странице представлен большой список совместимых устройств:

templates.blakadder.com/plug.html

Шаг 2: перепрошивка устройства

Эта часть была на удивление легкой. Вы просто загружаете программное обеспечение, запускаете его, и оно вам помогает.

Для этого вам понадобится Raspberry PI или Linux с WiFi. Вам необходимо, чтобы ваше основное подключение к этому устройству НЕ являлось Wi-Fi. Для моего PI3 это было просто, так как я был подключен через Ethernet. Если у вас есть PI Zero, вам придется подключаться по старинке, с клавиатурой и монитором.

Я предполагаю, что вы знаете, как настроить PI и подключиться к нему с помощью SSH или клавиатуры, поэтому я не буду вдаваться в подробности. Если вы не уверены, что в Интернете есть множество руководств.

Прежде чем мы начнем, немного об устройствах. В Китае есть компания Tuya, которая поставляет умные розетки для разных клиентов. Они производят настройку для разных клиентов, предоставляют прошивку по умолчанию и позволяют компаниям вносить свои собственные модификации. Проблема в том, что если у вас есть куча продуктов от разных поставщиков, вам придется запускать кучу приложений, некоторые из которых работают лучше, чем другие. Перепрошивая прошивку с открытым исходным кодом, вы избавляетесь от всего этого. Так что это хорошо для общей домашней автоматизации.

Так …. без лишних слов, вот инструкции:

1) Запустите эти команды на PI, это установит необходимое программное обеспечение.

# git clone https://github.com/ct-Open-Source/tuya-convert# cd tuya-convert #./install_prereq.sh

2) Подключите смарт-штекер к источнику питания.

3) Включите его кнопкой

4) Удерживайте кнопку питания, пока синий индикатор не начнет мигать.

5) Подождите 10 секунд. Это не обязательно, но я обнаружил, что это сработает лучше, если вы это сделаете.

6) Запустите эту команду

./start_flash.sh

Отсюда вы просто следуете подсказкам, за исключением того, что в конце выбираете «2. Tasmota». Есть вариант для другой прошивки, но я не пробовал, поэтому не уверен, на что это похоже.

Обратите внимание, что мне приходилось делать это не один раз, сначала я думал, что замуровал устройство, у меня не было ни огней, ни щелчка реле, ни признаков жизни. Но я выключил его и снова запустил последнюю команду, и она сработала. Мне пришлось сделать это с 3 из 4 устройств, которые я прошил, только одно прошло напрямую, я думаю, из-за шага 5.

Полные инструкции здесь:

github.com/ct-Open-Source/tuya-convert

Шаг 3: Подключение к прошивке в первый раз

Подключение к прошивке в первый раз
Подключение к прошивке в первый раз
Подключение к прошивке в первый раз
Подключение к прошивке в первый раз
Подключение к прошивке в первый раз
Подключение к прошивке в первый раз

После того, как вы прошили тасмоту на устройство, оно не подает особых признаков жизни. Причина в том, что его нужно настроить. Сделать это довольно просто, мне показалось, что лучше делать это на моем телефоне. Шаги:

1) Поиск точек доступа WiFi

2) Подключитесь к устройству с надписью tasmota_xxxx (где x - числа)

3) Телефон должен направить вас на страницу по умолчанию, если не перейти на 192.168.4.1

Обратите внимание, что на некоторых телефонах может отображаться сообщение «Нет доступа в Интернет, вы хотите оставаться на связи», выберите «Да».

4) На открывшейся странице введите имя вашей сети WiFi и пароль в первые 2 поля. Нажмите на опцию, чтобы показать пароль и трижды проверьте, что вы ввели правильный пароль. Если вы ввели неправильный пароль, я считаю, что может быть сложно вернуться к этому экрану конфигурации. Обратите внимание, что вы также можете сканировать сети Wi-Fi, хотя, очевидно, вам все равно потребуется ввести пароль.

5) Теперь вилка должна быть подключена к вашей сети Wi-Fi. Вам нужно будет перейти на страницу конфигурации вашего маршрутизатора и найти IP-адрес вашего устройства.

6) Откройте веб-браузер на своем ПК и перейдите по адресу https:// [device_ip]. Вы должны увидеть экран конфигурации от Tasmota.

Поздравляю, вы успешно прошили штекер.

Шаг 4: Настройка вилки

Настройка плагина
Настройка плагина

Компания, которая производит эти устройства, по всей видимости, производит 10 000 устройств с множеством различных конфигураций. Мы только что установили новую прошивку, и она не знает, на какие устройства она была установлена. Поэтому, прежде чем что-либо будет работать, нам нужно будет его настроить. Для этого нам нужно найти подробную информацию о нашем устройстве в Интернете и загрузить эту конкретную конфигурацию.

Для этого найдите свое устройство на этой странице:

templates.blakadder.com/plug.html

Конфигурация устройства, которое я использовал, находится здесь:

templates.blakadder.com/kogan-KASPEMHUSBA….

Чтобы установить конфигурацию, мы просто копируем текст под шаблоном. В этом случае это:

потом

1) Перейдите на страницу конфигурации вашего устройства https:// [IP-адрес умной розетки]

2) Нажмите "Настроить", "Настроить другое"

3) Вставьте строку шаблона

4) Отметьте «Включить MQTT».

5) Нажмите «Активировать» и «Сохранить».

Чтобы проверить, сработало ли это, нажмите «Главное меню», чтобы вернуться на домашнюю страницу, и теперь вы должны увидеть данные об энергопотреблении. Все они будут равны нулю, даже напряжение, но это хороший знак. Нажмите кнопку-переключатель, и вы должны услышать щелчок реле и увидеть повышение напряжения.

Шаг 5: калибровка напряжения

Калибровка напряжения
Калибровка напряжения

Я обнаружил, что показания напряжения были довольно высокими. Если у вас есть другой источник показаний напряжения в доме (например, умный счетчик?), Вы можете очень легко откалибровать вилку. Сделать это

1) Получите правильное значение напряжения

2) Включите реле в умной розетке

3) Щелкните Консоль на домашней странице устройства.

4) Введите команду «VoltageSet 228» и нажмите Enter (замените 228 своим напряжением).

Напряжение теперь должно отображаться правильно.

Шаг 6: Установка программного обеспечения на PI

На PI необходимо установить несколько пакетов. Их легко установить, следуя инструкциям из различных пакетов. Я дам инструкции здесь, но учтите, что они могут измениться со временем, поэтому мои инструкции будут актуальными. Пакеты:

Графана (для отображения графиков)

Influxdb (база данных временных рядов, в которой будут храниться наши данные)

Telegraf (используется для передачи данных в Influxdb)

Mosquitto (шина сообщений, используемая для передачи данных, интеллектуальная розетка отправляет данные сюда)

Цепочка потока данных выглядит так:

Smart Plug -> Mosquitto -> Telegraf -> InfluxDB -> Grafana

Если вы спрашиваете, почему мы не можем пропустить Mosquitto и Telegraf, это хороший вопрос. Теоретически Smart Plug может подтолкнуть к Influx. Проблема в том, что тогда его нужно будет настраивать для сотен разных конечных точек, и это заблокирует нас от некоторых вариантов. Большинство средств домашней автоматизации используют Mosquitto для передачи сообщений. Например, мы можем включать и выключать вилку, отправляя сообщения в Mosquitto, и умная вилка получит их и ответит.

Шаг 7: Установка Grafana

Установка Grafana
Установка Grafana

Из:

grafana.com/grafana/download?platform=arm

Или много других вариантов здесь:

grafana.com/grafana/download

Для Pi 1 и Pi Zero (ARMv6)

sudo apt-get install -y adduser libfontconfig1 # найдите последнюю версию со страницы вверху wget https://dl.grafana.com/oss/release/grafana-rpi_7….sudo dpkg -i grafana-rpi_7.0.1_armhf. debsudo / bin / systemctl daemon-reloadsudo / bin / systemctl включить grafana-serversudo / bin / systemctl start grafana-server

Для более новых ИП (ARMv7)

sudo apt-get install -y adduser libfontconfig1 # найти последнюю версию со страницы вверху wget https://dl.grafana.com/oss/release/grafana_7.0.1_…sudo dpkg -i grafana_7.0.1_armhf.debsudo / bin / systemctl daemon-reloadsudo / bin / systemctl включить grafana-serversudo / bin / systemctl start grafana-server

Тестировать:

Перейдите по адресу https:// [IP of PI]: 3000

имя пользователя / пароль - admin / admin, он попросит вас изменить его, пока вы можете пропустить

Если у вас есть графический интерфейс, тогда все в порядке, переходите к следующему шагу

Шаг 8: установка InfluxDB

Выполните эти команды на PI:

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -source / etc / os-releasetest $ VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $ VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $ VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $ VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster стабильный" | sudo tee /etc/apt/sources.list.d/influxdb.listsudo apt-get updatesudo apt-get install infxdbsudo systemctl включить притокdbsudo systemctl start infxdb

Протестируйте, набрав «приток». Это должно ввести вас в командную строку Influxdb. Введите "показать базы данных", баз данных еще не будет, но если вы получите пустой список без ошибок, все в порядке.

Шаг 9: Установка Telegraf

Это действительно просто, потому что мы добавили репозитории InfxDB, которые мы можем просто ввести:

sudo apt-get install telegrafsudo systemctl enable telegrafsudo systemctl start telegraf

На этом этапе Telegraf уже будет регистрировать системные метрики в infxdb. Вы можете увидеть их, набрав эти команды:

Influxshow databasesuse telegrafshow seriesSELECT * FROM cpu LIMIT 10;

Шаг 10: Установите Mosquitto

Эта часть проста, поскольку мы просто устанавливаем версию по умолчанию, упакованную с raspian:

sudo apt-get -y install mosquittosudo apt-get -y install mosquitto-clientssudo systemctl enable mosquittosudo systemctl start mosquitto # создайте пароль для mosquittosudo mosquitto_passwd -c / etc / mosquitto / tasmota tasmota # введите пароль. Запишите этот пароль, так как нам нужно будет передать его умной розетке.

Тестировать:

запустите это в одном сеансе SSH:

mosquitto_sub -t тест

Запустите это в другом

mosquitto_pub -t test -m mymessage

Вы должны увидеть свое сообщение в первом сеансе SSH

Шаг 11: отправка данных из смарт-розетки в Mosquitto

Отправка данных из смарт-розетки в Mosquitto
Отправка данных из смарт-розетки в Mosquitto

Теперь, когда у нас работает mosquitto, нам нужно настроить интеллектуальную розетку для отправки данных в mosquitto. Сделать это довольно просто. Нам понадобится пароль, введенный для mosquitto на предыдущем шаге.

1) Войдите на свою веб-страницу с умными розетками.

2) Нажмите «Конфигурация», затем «Настроить ведение журнала».

3) Установите период телеметрии на 10 и нажмите «Сохранить».

4) Нажмите Настроить MQTT.

5) В качестве хоста введите IP-адрес вашего PI.

6) В качестве имени пользователя введите тасмоту

7) В качестве пароля введите пароль с предыдущего шага

8) В теме введите tasmota1

9) Нажмите "Сохранить".

Тестировать:

В PI введите следующую команду. В течение 10 секунд вы должны увидеть поступающие данные.

mosquitto_sub -t tele / tasmota1 / ДАТЧИК

Данные должны выглядеть так:

Шаг 12: используйте Telegraf для передачи данных из Mosquitto в Influx

Теперь мы собираемся настроить Telegraf для чтения данных из mosquitto и отправки в Infxdb. О ИП:

1) sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak

2) sudo vi /etc/telegraf/telegraf.conf

Обратите внимание, что vi не очень удобен для новых пользователей, если вы предпочитаете текстовый редактор на основе меню, используйте вместо него nano:

sudo nano /etc/telegraf/telegraf.conf

3) Вставляем конфиг из прикрепленного файла

4) sudo systemctl перезапустить телеграф

Чтобы проверить это на PI:

приток

показать базы данных

вы должны увидеть тестовую базу данных. Если вам не нравится тест имени, вы можете изменить dest_db в файле telegraf.conf.

Шаг 13: Наконец, создайте графики в Grafana

Наконец, создайте графики в Grafana
Наконец, создайте графики в Grafana

Наконец, мы видим некоторые данные:-):-)

Сначала нам нужно создать соединение с базой данных. Перейдите на веб-страницу графаны http: [ip of PI]: 3000

1) Войдите в систему с помощью admin / admin

2) В левом столбце щелкните значок шестеренки и источники данных.

3) Нажмите "Добавить источник данных".

4) Нажмите Influxdb

5) В качестве URL введите https:// localhost: 8086.

6) Для базы данных введите тест

7) Для HTTP введите GET

8) Для минимального интервала времени введите 10 с.

9) Нажмите "Сохранить и проверить", должно появиться сообщение "Источник данных работает".

Хорошо, теперь у нас есть соединение с базой данных, и мы можем создать график… наконец.

1) В левом столбце нажмите «+», затем «Панель инструментов» и «Добавить новую панель».

2) Для базы данных нажмите InfluxDB

3) Щелкните измерение и выберите Коган.

4) В качестве поля выберите Energy_Power.

5) В качестве псевдонима дайте своей серии название (например, Посудомоечная машина).

6) С правой стороны заголовка панели дайте ему имя, например Power.

7) Вот и все, вы должны увидеть данные. Нажмите кнопку со стрелкой влево, чтобы выйти из режима редактирования, а затем нажмите кнопку «Сохранить» и присвойте своей панели имя.

Если вы зашли так далеко, отличная работа, серьезно.

Шаг 14: еще несколько советов

Еще несколько советов
Еще несколько советов
Еще несколько советов
Еще несколько советов

Конфигурация Telegraf по умолчанию, которую я предоставил, требует значительного обслуживания, поскольку необходимо добавить новый раздел для каждого устройства и перезапустить Telegraf. С внесенными ниже изменениями он делает вещи намного более динамичными, поскольку устройства можно добавлять или переименовывать в конфигурации Tasmota без необходимости изменять Telegraf.

Первое изменение - добавить + в название темы, это в основном подстановочный знак. Самого по себе этого было бы достаточно, за исключением тех случаев, когда вы строите графики в Grafana, устройства называются такими вещами, как «теле / стиральная машина / датчик». Вторая часть конфигурации Telegraf ниже - это процессор регулярных выражений. Он вытягивает текст «Стиральная машина» из центра и превращает его в новый тег, который передается в InfluxDB.

Примечание: не забудьте указать разные названия темы в конфигурации Tasmota для каждого устройства

[input.mqtt_consumer.tags] dest_db = "тест"

Как только это будет сделано, очень легко настроить Grafana для отображения нескольких устройств на одном графике. На рисунке, прикрепленном к этому шагу, показано, что нужно сделать. Просто щелкните значок «+» в группе за строкой и выберите тег (устройство). Внизу внизу в Псевдониме введите $ tag_device. Теперь вы должны увидеть несколько серий на одном графике. Вы можете щелкнуть текст каждого элемента, чтобы включить или выключить их (нажатие Ctrl работает для выбора кратных)

Рекомендуемые: