Съдържание:

Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak: 5 стъпки
Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak: 5 стъпки

Видео: Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak: 5 стъпки

Видео: Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak: 5 стъпки
Видео: Дефектнотокова защита, свързване и тестване 2024, Ноември
Anonim
Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak
Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak
Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak
Прочетете електромера и газомера (белгийски/холандски) и качете на Thingspeak

Ако сте загрижени за консумацията на енергия или просто малко глупак, вероятно искате да видите данните от вашия фантастичен нов цифров измервателен уред на вашия смартфон.

В този проект ще получим текущите данни от белгийски или холандски цифров електромер и газ и ще ги качим на Thingspeak. Тези данни включват текущата и дневна консумация на енергия и впръскване (ако имате слънчеви панели), напрежения и токове, както и консумацията на газ (ако цифров газов брояч е свързан към електромера). Чрез приложение тези стойности могат да бъдат отчетени в реално време на вашия смартфон.

Той работи за белгийски или холандски цифров измервателен уред, който следва DSMR (холандски изисквания за интелигентни измервателни уреди) протокол, който трябва да бъде всички скорошни измервателни уреди. Ако живеете някъде другаде, за съжаление, вашият глюкомер вероятно ще използва друг протокол. Така че се страхувам, че този Instructable е малко регионално ограничен.

Ще използваме P1-порта на глюкомера, който приема RJ11/RJ12 кабел, разговорно известен като телефонен кабел. Уверете се, че инсталаторът на глюкомера е активирал порта P1. Например, за Fluvius в Белгия следвайте тези инструкции.

За да обработим данните и да ги качим в интернет, използваме ESP8266, който е евтин микрочип с вграден wifi. Струва само около 2 долара. Освен това може да бъде програмиран с помощта на Arduino IDE. Съхраняваме данните в облака на Thingspeak, който е безплатен за максимум четири канала. За този проект използваме само един канал. След това данните могат да бъдат показани на вашия смартфон с помощта на приложение като IoT ThingSpeak.

Части:

  • Един ESP8266, като nodemcu v2. Обърнете внимание, че nodemcu v3 е твърде широк за стандартна макет, така че предпочитам v2.
  • Микро USB към USB кабел.
  • USB зарядно устройство.
  • Един транзистор NPN BC547b.
  • Два 10k резистора и един 1k резистор.
  • Един конектор за винтова клема RJ12.
  • Макет.
  • Кабелни проводници.
  • По избор: един 1nF кондензатор.

Общо това струва около 15 EUR на AliExpress или подобно. При оценката се взема предвид, че някои компоненти като резистори, транзистори и проводници, идват в много по -големи количества, отколкото са ви необходими за този проект. Така че, ако вече имате комплект компоненти, ще бъде по -евтино.

Стъпка 1: Запознаване с ESP8266

Избрах NodeMCU v2, тъй като не се изисква запояване и има микро USB връзка, която позволява лесно програмиране. Предимството на NodeMCU v2 пред NodeMCU v3 е, че е достатъчно малък, за да се побере на макет и да остави свободни дупки отстрани за осъществяване на връзки. Затова е по -добре да избягвате NodeMCU v3. Ако обаче предпочитате друга платка ESP8266, това също е добре.

ESP8266 може лесно да се програмира с помощта на Arduino IDE. Има и други инструкции, които обясняват това подробно, така че ще бъда много кратък тук.

  • Първо изтеглете Arduino IDE.
  • Второ инсталиране на поддръжка за платката ESP8266. В менюто Файл - Предпочитания - Настройки добавете URL адреса https://arduino.esp8266.com/stable/package_esp8266com_index.json към допълнителни URL адреси на мениджъра на борда. Следващо в менюто Инструменти - Борд - Boards Manager инсталирайте esp8266 от esp8266 общност.
  • Трето изберете дъската, която е най -близо до вашия ESP8266. В моя случай избрах NodeMCU v1.0 (ESP 12-E модул).
  • Накрая изберете под Инструменти - Размер на флаш, размер, който включва SPIFFS, като 4M (1M SPIFFS). В този проект ние използваме SPIFFS (SPI Flash File System) за съхраняване на дневните енергийни стойности, така че те да не бъдат загубени, ако ESP8266 загуби захранване и дори когато е препрограмиран.

Сега имаме всичко на място за програмиране на ESP8266! Ще обсъдим действителния код в по -късна стъпка. Първо ще направим акаунт в Thingspeak.

Стъпка 2: Създайте акаунт и канал на Thingspeak

Отидете на https://thingspeak.com/ и създайте акаунт. След като сте влезли, щракнете върху бутона Нов канал, за да създадете канал. В настройките на канала попълнете името и описанието, както желаете. След това назоваваме полетата на канала и ги активираме, като щракнем върху квадратчетата отдясно. Ако използвате моя код непроменен, полетата са следните:

  • Поле 1: пиково потребление днес (kWh)
  • Поле 2: извънпиково потребление днес (kWh)
  • Поле 3: пиково впръскване днес (kWh)
  • Поле 4: извънпикова инжекция днес (kWh)
  • Поле 5: Консумация на ток (W)
  • Поле 6: инжектиране на ток (W)
  • Поле 7: Потребление на газ днес (m3)

Тук пиковите и извънпиковите се отнасят до тарифата за електроенергия. В полета 1 и 2 потреблението се отнася до нетната консумация на електроенергия днес: потреблението на електроенергия днес в тарифния период от полунощ минус инжектиране на електроенергия (произведена от слънчеви панели) днес в тарифния период от полунощ с минимум нула. Последното означава, че ако днес е имало повече впръскване от потреблението, стойността е нула. По същия начин инжектирането в полета 3 и 4 се отнася до нетното инжектиране на електроенергия. Поле 5 и 6 показват нетната консумация и впръскване към текущия момент. И накрая, поле 7 е консумацията на газ от полунощ.

За бъдещи справки запишете идентификатора на канала, ключа за четене на API и ключа за API за запис, които могат да бъдат намерени в API ключовете на менюто.

Стъпка 3: Изграждане на електронна схема

Изграждане на електронна схема
Изграждане на електронна схема
Изграждане на електронна схема
Изграждане на електронна схема

Отчитаме електромера с помощта на порта P1, който отнема кабел RJ11 или RJ12. Разликата е, че кабелът RJ12 има 6 проводника, докато RJ11 има само 4. В този проект ние не захранваме ESP8266 от порта P1, така че всъщност имаме нужда само от 4 проводника, така че RJ11 би направил.

Използвах пробив RJ12, показан на снимката. Той е малко широк и няма много място около порта P1 в моя глюкомер. Приляга, но е стегнато. Като алтернатива можете просто да използвате кабел RJ11 или RJ12 и да отстраните заглавката в единия край.

Ако задържите разбивката, както е на снимката, щифтовете са номерирани отдясно наляво и имат следното значение:

  • Pin 1: 5V Захранване
  • Пин 2: Заявка за данни
  • Пин 3: Земя за данни
  • Пин 4: не е свързан
  • Пин 5: Линия за данни
  • Пин 6: Заземяване на захранването

Pin 1 и Pin 6 могат да се използват за захранване на ESP8266, но не съм тествал това. Трябва да свържете Pin 1 към Vin на ESP8266, така че вътрешният регулатор на напрежението на платката се използва за намаляване на напрежението от 5V на 3.3V, което ESP8266 приема. Така че не го свързвайте към 3.3V щифт, защото това може да повреди ESP8266. Също така захранването от порта P1 с течение на времето ще изтощи батерията на цифровия измервателен уред.

Настройката на висок пин 2 сигнализира глюкомера да изпраща телеграми с данни всяка секунда. Действителните данни се изпращат през Pin 5 със скорост на предаване 115200 за модерен цифров измервателен уред (DSMR 4 и 5). Сигналът е обратен (нисък е 1, а висок е 0). За по -стар тип (DSMR 3 и по -ниски) скоростта е 9600 бода. За такъв измервателен уред трябва да промените скоростта на предаване в кода на фърмуера на следващата стъпка: променете реда Serial.begin (115200); в setup ().

Ролята на NPN транзистора е двойна:

  • За да обърнете сигнала, така че ESP8266 да може да го разбере.
  • За да промените логическото ниво от 5V на P1-порта на 3.3V, очаквано от RX порта на ESP8266.

Така че създайте електронната схема на макета, както е на диаграмата. Кондензаторът увеличава стабилността, но работи и без.

Изчакайте да свържете RX щифта, докато не програмирате ESP8266 в следващата стъпка. Всъщност, RX щифтът е необходим и за комуникация през USB между ESP8266 и вашия компютър.

Стъпка 4: Качете кода

Направих кода достъпен в GitHub, това е само един файл: P1-Meter-Reader.ino. Просто го изтеглете и го отворете в Arduino IDE. Или можете да изберете File - New и просто копирайте/поставете кода.

Има някаква информация, която трябва да попълните в началото на файла: името и паролата на WLAN, която да използвате, и идентификационния номер на канала и API API за запис на канала ThingSpeak.

Кодът прави следното:

  • Чете телеграма за данни от измервателния уред всеки UPDATE_INTERVAL (в милисекунди). Стойността по подразбиране е на всеки 10 секунди. Обикновено всяка секунда има телеграма за данни от измервателния уред, но настройката на висока честота ще претоварва ESP8266, така че да не може да работи повече уеб сървъра.
  • Качва данните за електроенергията в канала Thingspeak на всеки SEND_INTERVAL (в милисекунди). Стойността по подразбиране е всяка минута. За да вземете решение за тази честота, вземете предвид, че изпращането на данни отнема известно време (обикновено няколко секунди) и че има ограничение за честотата на актуализиране на Thingspeak за безплатен акаунт. Това е около 8200 съобщения на ден, така че максималната честота ще бъде около веднъж на всеки 10 секунди, ако не използвате Thingspeak за друго.
  • Качва данните за газа, когато се променят. Обикновено измервателният уред актуализира данните за консумацията на газ само на всеки 4 минути.
  • Измервателният уред следи общия разход и стойностите на впръскване от началото. Така че за да се получи дневната консумация и инжектиране, кодът записва общите стойности всеки ден в полунощ. След това тези стойности се изваждат от текущите общи стойности. Стойностите в полунощ се съхраняват в SPIFFS (SPI Flash File System), която продължава, ако ESP8266 загуби захранване или дори при препрограмиране.
  • ESP8266 работи с мини уеб сървър. Ако отворите неговия IP адрес в браузъра си, получавате преглед на всички текущи стойности на електроенергия и газ. Те са от най -новата телеграма и включват информация, която не е качена в Thingspeak, като напрежения и токове на фаза. Настройката по подразбиране е, че IP адресът се определя динамично от вашия рутер. Но е по -удобно да използвате статичен IP адрес, който винаги е един и същ. В този случай трябва да попълните staticIP, шлюз, dns и подмрежа в кода и да декомментирате реда WiFi.config (staticIP, dns, шлюз, подмрежа); във функцията connectWifi ().

След като направите тези промени, сте готови да качите фърмуера в ESP8266. Свържете ESP8266 през USB кабела към компютъра си и натиснете иконата със стрелката в Arduino IDE. Ако не успеете да се свържете с ESP8266, опитайте да промените COM порта под менюто Инструменти - Порт. Ако все още не работи, възможно е да трябва ръчно да инсталирате драйвера за USB виртуалния COM порт.

Стъпка 5: Тестване

След като качите фърмуера, изключете USB и свържете RX проводника на ESP8266. Не забравяйте, че се нуждаехме от RX канала на ESP8266 за качване на фърмуера, така че не го свързвахме преди. Сега включете пробив RJ12 в цифровия измервателен уред и свържете отново ESP8266 към компютъра.

В IDE на Arduino отворете серийния монитор чрез менюто Инструменти и се уверете, че е настроен на 115200 бода. Ако трябва да промените скоростта на предаване, може би трябва да затворите и отворите отново серийния монитор, преди да работи.

Сега трябва да видите изхода на кода в серийния монитор. Трябва да проверите дали има съобщения за грешка. Също така трябва да можете да видите телеграмите. За мен те изглеждат така:

/FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // Измервател на сериен номер шестнадесетичен 0-0: 1.0.0 (200831181442S) // Времева марка S: лятно часово време (лято), W: не лятното спестяване (зима) 1-0: 1.8.1 (000016.308*kWh) // Общо пиково нетно потребление 1-0: 1.8.2 (000029.666*kWh) // Общо извънпиково нетно потребление 1-0: 2.8.1 (000138.634*kWh) // Общо пиково нетно впръскване 1-0: 2.8.2 (000042.415*kWh) // Общо извънпиково нетно впръскване 0-0: 96.14.0 (0001) // Тарифа 1: пик, 2: извън пик 1-0: 1.7.0 (00.000*kW) // Консумация на ток 1-0: 2.7.0 (00.553*kW) // Токово впръскване 1-0: 32.7.0 (235.8*V) // Фаза 1 напрежение 1-0: 52.7.0 (237.0*V) // Фаза 2 напрежение 1-0: 72.7.0 (237.8*V) // Фаза 3 напрежение 1-0: 31.7.0 (001*A) // Ток на фаза 1 1-0: 51.7.0 (000*A) // Ток на фаза 2 1-0: 71.7.0 (004*A) // Ток на фаза 3 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*kW) // Максимална мощност 1-0: 31.4.0 (999*A) // Максимален ток 0-0: 96.13.0 () // Съобщение 0-1: 24.1.0 (003) // други устройства на M-шина 0-1: 96.1.1 (37464C4F32313230313037393338) // Сериен номер газ мет r шестнадесетичен 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // Общо потребление на времева марка за газ! E461 // Контролна сума CRC16

Ако нещо не е наред, можете да проверите дали имате едни и същи тагове и евентуално трябва да промените кода, който анализира телеграмите във функцията readTelegram.

Ако всичко работи, сега можете да захранвате esp8266 от USB зарядното устройство.

Инсталирайте приложението IoT ThingSpeak Monitor на вашия смартфон, попълнете Channel ID и Read API Key и готово!

Препоръчано: