Занимательная электроника. ESP32 и PZEM004T 20.03.2018

Приехали с Али мне,наконец, несколько занятных платок:
— энергомонитор PZEM004T (меряет Ток, напряжение, мощность в сети 220в)

— модуль ESP32(мощный двух-ядерный Wi-fi модуль с возможностью программирования как Ардуино)

По задумке, хотелось их скрестить и получать данные о потреблении в онлайне.
В процессе возникли некоторые затруднения и потому захотелось несколько подробнее рассказать как все разрешилось, возможно кому-то сократит время.

Сначала про ESP, я заказал ESP32 — это новый модуль, пришедший на смену распространенному ESP8266, он дороже (~400р) и мощнее (описание тут) , но, как оказалось , еще весьма сырой с точки зрения ПО (библиотек, примеров использования и пр.) В целом, надо было конечно брать ESP8266 для моих простых задач, но повелся на новизну. Сильно вникать в тонкости программирования я не стал и пошел по простому пути — прикрутил поддержку ESP32 к Arduino IDE, это оказалось не столь просто как казалось,в итоге была найдена рабочая инструкция  и плата нормально встала в IDE.
Для тесту просто подключил модуль к свой сети ви-фи в режиме веб-сервера и вывел в браузер набортный датчик температуры и датчик холла (зачем они там — загадка)
20180317_122018
Простота работы с вай-фаем меня порадовала и я занялся экспериментами с энергомонитором PZEM004T. Для начала прикрутил его к Ардуино, чтоб понять как работать с ним на известной платформе. Библиотека для Arduino нашлась  ТУТ и все заработало без всяких танцев с бубном. Электрических схем включения в интернете полно.
20180317_123504
20180317_143455
20180317_143852

Подключил конвектор EQUATION 1500вт и сильно удивился его реальной мощности, вообще субъективно мне и до этого казалось , что греет он не на 1.5квт… В реальности всего 1.2 — 1.3 кВт в нем! Вторым подключил конвектор 2квт Neoclima — этот во всех своих режимах показал все по паспорту! 750вт + 1250вт = 2000вт.
Далее для отладки уже постоянно подключил светодиодный фонарь с надписью 20Вт, он оказался 10Вт…
Везде обман блин!

Теперь подключаю к ESP32.
ESP32 3.3в уровни ,а у PZEM004T 5в, по уму надо согласовывать, но почитав интернет, у всех и напрямую работает, решил тоже не заморачиваться.
20180318_144149
С софтом возникла заминка, программа от Ардуины не завелась на ESP32 ,матерясь на библиотеку SofwareSerial (вроде как она есть и под ESP32),но немного покопавшись во коде библиотек PZEM004T , я решил, что софтовый Serial мне не нужен, т.к. на ESP32 хардверных 3 шт и удалил поддержку SofwareSerial  из библиотеки PZEM004T. Во всех примерах ,почему-то используют основной первый порт для связи с  PZEM004T, но мне нужно было одновременно считывать данные и отсылать их для отладки через СОМ порт в компьютер, пришлось ,покопавшись, перевесить коммуникацию с PZEM на порт 2. Еще прикрутил датчик температуры ds1820 для измерения температуры в РЩ.
Далее реализовал отправку данных на сервис narodmon.ru . т.к. Народмон позволяет слать данные не чаще раз в 5 минут, то выщитывается среднее значение за эти 5 мин и отсылается.
Скачать код вместе с обрезанной библиотекой PZEM
Важно ,чтоб все файлы лежали в одной директории!

Дальше засунул обе платы в распаячную коробку и интегрировал в щиток, данные пошли на Народмон, смотреть могу как на мобильном, так и через ПК.
20180318_161048 20180318_174615

Работает! Посмотрим как себя покажет
Цена вопроса ~800р