Мазмуну:

Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөө: 5 кадам
Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөө: 5 кадам

Video: Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөө: 5 кадам

Video: Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөө: 5 кадам
Video: Экстравагантный заброшенный цветной замок в Португалии – мечта мечтателя! 2024, Июль
Anonim
Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөңүз
Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөңүз
Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөңүз
Электр жана газ эсептегичти окуңуз (Бельгия/Голландия) жана Thingspeakке жүктөңүз

Эгерде сиз энергияңыздын сарпталышына тынчсызданып жатсаңыз же жөн эле бир нерсеге тынчсызданып жатсаңыз, балким смартфонуңуздагы жаңы санариптик эсептегичтин маалыматын көргүңүз келет.

Бул долбоордо биз бельгиялык же голландиялык санариптик электр жана газ эсептегичтен учурдагы маалыматтарды алып, Thingspeakке жүктөп беребиз. Бул маалыматка учурдагы жана күнүмдүк энергия керектөө жана инъекция (эгерде сизде күн батареялары болсо), чыңалуу жана агымдар жана газ керектөө (эгерде санарип газ эсептегич электр эсептегичке туташкан болсо) кирет. Колдонмо аркылуу бул баалуулуктарды смартфонуңузда реалдуу убакытта окууга болот.

Бул акыркы эсептегичтер болушу керек болгон DSMR (Dutch Smart Meter Requirements) протоколуна ылайык келген бельгиялык же голландиялык санариптик эсептегич үчүн иштейт. Эгерде сиз башка жерде жашасаңыз, тилекке каршы, сиздин эсептегич башка протоколду колдонушу мүмкүн. Ошондуктан мен бул Instructable бир аз регионалдык чектелген деп корком.

Биз эсептегичтин P1-портун колдонобуз, ал RJ11/RJ12 кабелин кабыл алат, эл оозунда телефон кабели катары белгилүү. Эсептегичтин орнотуучусу P1 портун иштеткенин текшериңиз. Мисалы, Бельгиядагы Флувиус үчүн бул көрсөтмөлөрдү аткарыңыз.

Дайындарды иштетүү жана интернетке жүктөө үчүн, биз ESP8266 колдонобуз, ал орнотулган wifi менен арзан микрочип. Анын баасы болгону 2 доллар. Мындан тышкары, аны Arduino IDE аркылуу программаласа болот. Биз маалыматты Thingspeak булутунда сактайбыз, ал эң көп төрт каналга бекер. Бул долбоор үчүн биз бир гана каналды колдонобуз. Маалыматтар IoT ThingSpeak сыяктуу тиркеме аркылуу смартфонуңузда көрсөтүлүшү мүмкүн.

Бөлүктөр:

  • Бир ESP8266, nodemcu v2 сыяктуу. Nodemcu v3 стандарттуу нан үчүн өтө кенен экенин эске алыңыз, ошондуктан мен v2ди жакшы көрөм.
  • Микро USBден USB кабели.
  • USB кубаттагыч.
  • Бир BC547b NPN транзистору.
  • Эки 10k каршылыгы жана 1k каршылыгы.
  • Бир RJ12 бурамалуу терминал туташтыргычы.
  • Нан тактасы.
  • Өткөргүч зымдар.
  • Кошумча: бир 1nF конденсатор.

Жалпысынан, бул AliExpress же ушул сыяктуу 15 EUR сыяктуу бир нерсеге турат. Смета резисторлор, транзисторлор жана зымдар сыяктуу кээ бир компоненттер бул долбоорго муктаж болгондон алда канча көп санда келгенин эске алат. Ошентип, эгерде сизде мурунтан эле комплект бар болсо, ал арзаныраак болот.

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'дерине кошот. Кийинки менюда Куралдар - Такта - Такта менеджери esp8266 жамааты тарабынан esp8266 орнотот.
  • Үчүнчүдөн, ESP8266га эң жакын тактаны тандаңыз. Менин учурда мен NodeMCU v1.0 (ESP 12-E Module) тандадым.
  • Акырында Куралдар астынан тандаңыз - Flash Size, 4M (1M SPIFFS) сыяктуу SPIFFS камтыган өлчөм. Бул долбоордо биз күнүмдүк энергия баалуулуктарын сактоо үчүн SPIFFSти (SPI Flash File System) колдонобуз, ошондуктан ESP8266 кубатын жоготсо, ал тургай кайра программаланган учурда да жоголбойт.

Эми бизде ESP8266ны программалоо үчүн баары бар! Биз чыныгы кодду кийинки кадамда талкуулайбыз. Алгач Thingspeak эсебин түзөбүз.

2 -кадам: Thingspeak эсебин жана каналын түзүү

Https://thingspeak.com/ дарегине өтүп, каттоо эсебин түзүңүз. Сиз киргенден кийин канал түзүү үчүн Жаңы канал баскычын басыңыз. Каналдын жөндөөлөрүндө атын жана сүрөттөмөсүн каалагандай толтуруңуз. Андан кийин биз каналдын талааларына ат беребиз жана аларды оң жактагы белгилөө кутучаларын чыкылдатуу менен активдештиребиз. Эгерде сиз менин кодумду өзгөрүүсүз колдонгон болсоңуз, анда талаалар төмөнкүдөй:

  • 1 -талаа: бүгүн эң жогорку керектөө (кВтс)
  • 2-талаа: бүгүн эң жогорку керектөө (кВтс)
  • 3 -талаа: эң жогорку инъекция бүгүн (кВтс)
  • 4-талаа: чокудан жогорку саюу бүгүн (кВтс)
  • 5 -талаа: учурдагы керектөө (W)
  • 6 -талаа: учурдагы сайма (W)
  • 7 -талаа: бүгүнкү күндө газ керектөө (м3)

Бул жерде чоку жана чоку электр энергиясынын тарифин билдирет. 1 жана 2 -талааларда керектөө бүгүнкү күндө электр энергиясынын таза керектөөсүн билдирет: бүгүн түн ортосунан тартып тарифтик мезгилде электр энергиясын керектөө минус электр энергиясын (күн батареялары тарабынан чыгарылган) бүгүн тарифтик мезгилде түн ортосунан баштап минимум нөлгө барабар. Акыркысы, эгерде керектөөдөн көбүрөөк инъекция болгон болсо, анда бүгүн мааниси нөлгө барабар. Ошо сыяктуу эле, 3 жана 4 -талаалардагы инъекция электр энергиясынын таза сайылышын билдирет. 5 жана 6 -талаа учурдагы таза керектөөнү жана инъекцияны көрсөтөт. Акыр -аягы, 7 -талаа - түн ортосунан бери газ керектөө.

Келечекте маалымат алуу үчүн, каналдын идентификаторун, API API ачкычтарын жана API баскычтарын жазыңыз, менюну API ачкычтарынан табууга болот.

3 -кадам: Электрондук схеманы куруу

Электрондук схеманы куруу
Электрондук схеманы куруу
Электрондук схеманы куруу
Электрондук схеманы куруу

Биз RJ11 же RJ12 кабелин алган P1 портун колдонуп электр эсептегичти окуйбуз. Айырмасы, RJ12 кабелинде 6 зым бар, ал эми RJ11де 4 гана бар. Бул долбоордо биз ESP8266ны P1 портунан иштетпейбиз, андыктан бизге 4 зым гана керек, ошондуктан RJ11 жасайт.

Мен сүрөттө көрсөтүлгөн RJ12 үзүлүшүн колдондум. Бул бир аз кенен жана менин метрдеги P1 портунун тегерегинде көп орун жок. Ылайыктуу, бирок тыгыз. Же болбосо, RJ11 же RJ12 кабелин колдонуп, башын бир четинен сыйрып алсаңыз болот.

Эгерде сиз үзүлүштү сүрөттөгүдөй кармасаңыз, казыктар оңдон солго номерленет жана төмөнкүдөй мааниге ээ:

  • Pin 1: 5V Электр энергиясы менен камсыздоо
  • Pin 2: Маалымат суроо
  • 3 -пин: Маалымат Ground
  • Pin 4: туташкан жок
  • Pin 5: маалымат линиясы
  • Pin 6: Power жер

Pin 1 жана Pin 6 ESP8266ди иштетүү үчүн колдонулушу мүмкүн, бирок мен муну сынаган жокмун. Сиз 1 -пинти ESP8266нын Винине туташтырышыңыз керек болчу, андыктан коллегиянын ички чыңалуу жөндөгүчү 5Vдан 3.3Vга чейин ESP8266 кабыл алган чыңалууну азайтуу үчүн колдонулат. Аны 3.3V пинге туташтырбаңыз, анткени бул ESP8266га зыян келтириши мүмкүн. Ошондой эле P1 портунан иштөө убакыттын өтүшү менен санариптик эсептегичтин батареясын түгөтөт.

Орнотуучу пин 2 бийик сигналдар секунд сайын маалымат телеграммаларын жөнөтөт. Чыныгы маалыматтар Pin 5 аркылуу заманбап санариптик эсептегич үчүн 115200 бады менен жөнөтүлөт (DSMR 4 жана 5). Сигнал тескери (төмөн 1 жана жогорку 0). Эски түрү үчүн (DSMR 3 жана андан төмөн) чен 9600 байды түзөт. Мындай эсептегич үчүн кийинки кадамдын камтылган кодундагы baud ылдамдыгын өзгөртүү керек: Serial.begin линиясын өзгөртүү (115200); орнотууда ().

NPN транзисторунун ролу эки эсе:

  • ESP8266 аны түшүнө алышы үчүн сигналды артка кайтаруу.
  • P1-порттун 5V логикасынын деңгээлин ESP8266нын RX порту күткөн 3.3Vга өзгөртүү үчүн.

Ошентип, схемада көрсөтүлгөндөй, нан тактасында электрондук схеманы түзүңүз. Конденсатор туруктуулукту жогорулатат, бирок ансыз деле иштейт.

Кийинки кадамда ESP8266 программаланганга чейин RX пин туташтырууну токтотуңуз. Чынында эле, RX пини ESP8266 менен компьютериңиздин ортосунда USB аркылуу байланышуу үчүн дагы керек.

4 -кадам: Кодду жүктөө

Мен кодду GitHubда жеткиликтүү кылдым, бул бир эле файл: P1-Meter-Reader.ino. Жөн гана жүктөп алып, Arduino IDEде ачыңыз. Же болбосо Файл - Жаңы дегенди тандай аласыз жана жөн эле кодду көчүрүп/чаптаңыз.

Файлдын башында толтурушуңуз керек болгон кээ бир маалыматтар бар: WLANдын аты жана сырсөзү, ThingSpeak каналынын Channel ID жана Write API ачкычы.

Код төмөнкүлөрдү аткарат:

  • Ар бир UPDATE_INTERVAL (миллисекундтарда) эсептегичтен маалымат телеграммасын окуйт. Демейки мааниси ар бир 10 секунд. Адатта, эсептегичтен секунд сайын маалымат телеграммасы бар, бирок жыштыкты жогору коюу ESP8266ди ашыкча жүктөйт, андыктан ал веб -серверди иштете албайт.
  • Thingspeak каналына электр энергиясынын маалыматын SEND_INTERVAL сайын жүктөп берет (миллисекундтарда). Демейки мааниси - ар бир мүнөт. Бул жыштык жөнүндө чечим кабыл алуу үчүн, маалыматтарды жөнөтүү бир аз убакытты талап кыларын (адатта, бир нече секунд) жана бекер эсеп үчүн Thingspeak жаңыртуу жыштыгынын чеги бар экенин эске алыңыз. Бул күнүнө болжол менен 8200 билдирүү, ошондуктан Thingspeakти башка эч нерсе үчүн колдонбосоңуз, максималдуу жыштык 10 секундда бир жолу болот.
  • Ал өзгөргөндө газдын маалыматын жүктөйт. Адатта, эсептегич газды керектөө маалыматын ар бир 4 мүнөттө гана жаңыртып турат.
  • Эсептегич башталгандан бери жалпы керектөөнү жана инъекциялык баалуулуктарды эсепке алат. Ошентип, күнүмдүк керектөөнү жана инъекцияны алуу үчүн, код жалпы баалуулуктарды күн сайын түн ортосунда сактайт. Андан кийин бул баалуулуктар учурдагы жалпы баалуулуктардан алынып салынат. Түн жарымындагы маанилер SPIFFSте сакталат (SPI Flash Файл Системасы), эгер ESP8266 кубатын жоготсо же ал кайра программаланган учурда дагы эле сакталат.
  • ESP8266 чакан веб -серверди иштетет. Эгер сиз браузериңизде анын IP дарегин ачсаңыз, анда бардык учурдагы электр жана газ баалуулуктарына сереп аласыз. Бул акыркы телеграммадан жана Thingspeakке жүктөлбөгөн маалыматты камтыйт, мисалы, бир фазага чыңалуу жана ток. Демейки жөндөө IP дареги роутериңиз тарабынан динамикалык түрдө аныкталат. Бирок статикалык IP дарегин колдонуу ыңгайлуу, ал дайыма бирдей. Бул учурда сиз staticIP, шлюз, dns жана субнетти кодго толтуруп, WiFi.config (staticIP, dns, шлюз, субнет) линиясын комментарийлешиңиз керек; connectWifi () функциясында.

Бул өзгөртүүлөрдү киргизгенден кийин, сиз программаны ESP8266га жүктөөгө даярсыз. USB кабели аркылуу ESP8266'ды компьютериңизге туташтырыңыз жана Arduino IDEдеги жебе менен сөлөкөтүн басыңыз. Эгерде сиз ESP8266га туташа албасаңыз, анда COM портун Аспаптар - Порт менюсунан өзгөртүп көрүңүз. Эгерде ал дагы эле иштебесе, анда USB виртуалдык COM порту үчүн драйверди кол менен орнотууга туура келет.

5 -кадам: Тестирлөө

Камтылган программаны жүктөгөндөн кийин, USB'ди сууруп, ESP8266дын RX зымын туташтырыңыз. Эсиңизде болсун, бизге ESP8266нын RX каналы камтылган программаны жүктөө үчүн керек болчу, андыктан аны мурда туташтырган эмеспиз. Эми RJ12 үзүлүшүн санарип метрге туташтырыңыз жана ESP8266ди компьютериңизге кайра туташтырыңыз.

Arduino IDEде, Сериялар Мониторун Tools менюсу аркылуу ачып, анын 115200 bodга коюлганын текшериңиз. Эгерде сиз бадын ылдамдыгын өзгөртүшүңүз керек болсо, балким, ал иштебей туруп, Сериялык Мониторду кайра жаап, кайра ачышыңыз керек болот.

Эми сиз коддун чыгышын сериялык монитордо көрүшүңүз керек. Сиз кандайдыр бир ката билдирүүлөрү бар же жок экенин текшеришиңиз керек. Ошондой эле, сиз телеграммаларды көрө алышыңыз керек. Мен үчүн алар мындай көрүнөт:

/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*кВтс) // Жалпы таза керектөө 1-0: 1.8.2 (000029.666*кВтс) // Чокусунан тышкаркы таза керектөө 1-0: 2.8.1 (000138.634*кВтс) // Жалпы чоку таза инъекция 1-0: 2.8.2 (000042.415*кВтс) // Чокусунан тышкаркы таза инъекция 0-0: 96.14.0 (0001) // Тариф 1: чоку, 2: өчүрүү чокусу 1-0: 1.7.0 (00.000*кВт) // Учурдагы керектөө 1-0: 2.7.0 (00.553*кВт) // Учурдагы инжекция 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*А) // 2-этап ток 1-0: 71.7.0 (004*A) // 3-этап ток 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*кВт) // Максималдуу кубат 1-0: 31.4.0 (999*А) // Максималдуу ток 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*м3) // Газдын убактысынын жалпы керектөөсү! E461 // CRC16 контролдук суммасы

Эгерде туура эмес бир нерсе болсо, анда сизде бирдей тегдер бар же жок экенин текшере аласыз жана, балким, readTelegram функциясындагы телеграммаларды талдоочу кодду өзгөртүүгө туура келет.

Эгер баары иштесе, анда esp8266ны USB кубаттагычынан кубаттай аласыз.

IoT ThingSpeak Monitor тиркемесин смартфонуңузга орнотуңуз, Каналдын идентификаторун толтуруңуз жана API ачкычын окуңуз!

Сунушталууда: