Мазмуну:

ESP8266 боюнча суу агуу сенсору + Micropython + Domoticz: 16 кадам (Сүрөттөр менен)
ESP8266 боюнча суу агуу сенсору + Micropython + Domoticz: 16 кадам (Сүрөттөр менен)

Video: ESP8266 боюнча суу агуу сенсору + Micropython + Domoticz: 16 кадам (Сүрөттөр менен)

Video: ESP8266 боюнча суу агуу сенсору + Micropython + Domoticz: 16 кадам (Сүрөттөр менен)
Video: ESP8266 #2. Точка доступа с вебсервером. 2024, Июль
Anonim
ESP8266 + Micropython + Domoticz боюнча суу агуу сенсору
ESP8266 + Micropython + Domoticz боюнча суу агуу сенсору
ESP8266 + Micropython + Domoticz боюнча суу агуу сенсору
ESP8266 + Micropython + Domoticz боюнча суу агуу сенсору

Бир канча убакыт мурун аялым менден суу агуучу сенсор жасоону суранган. Ал казандагы түтүктүн агып кетишинен коркуп, жаңы салынган жыгач полун суу каптап кетет. Мен чыныгы инженер катары мындай сенсорду алгам.

Медициналык инженер болуп иштеген 15 жылдык тажрыйбамдан улам, сууну табуунун эң оңой жолу - суу менен кысылган темир казыктар экенин билем. Эң жөнөкөй сенсорлордун иштөө принциби - суу эки (же андан көп) темир казыктарды кыскартууга тийиш жана ал боло баштаганда эле сигнализация иштейт.

1 -кадам: Аппараттык

Аппараттык
Аппараттык

Бул долбоор үчүн бизге керек:

1. ESP8266 - 01 модулу

2. HT7333 3.3V MS Low Dropout Linear Regulator Power Supply modu

Бизге бул модуль батареядан ESP8266 үчүн алгылыктуу деңгээлге чейин чыңалуусун азайтуу үчүн керек. Маалыматтар барагына ылайык 3Vдан 3.6Vга чейин кирүү болушу керек. Бул модуль бизге 3.3V берет.

3. Battery. I 3, 7V Li-ion 400mAh батарейканы колдонуп жатам. Чынында, сиз башка ылайыктуу энергия булагын колдоно аласыз. 18650 батарейкасы дагы жакшы чечим. Батарейканы тандап жатканда, ESPтин WiFi тармагына туташкан 200мАга жакын "жеп" турганын, ал эми такта серверге маалыматтарды жүктөп жатканда 60мАга жакын колдонуларын эске алыңыз.

4. TP4056 Lipo батарейкасын кубаттоочу такта.

5. Pololu мини баскычтар Power Switch абдан кызыктуу кичинекей такта. Бул суу табылганда гана ESP модулун которууга мүмкүнчүлүк берет. ESPти күйгүзүүнүн кажети жок. Ошентип, батарейканын зарядын үнөмдөө үчүн жакшы.

6. Турак жай7. Double micro-switch ON-OFF. Бир линия аппаратты күйгүзүү үчүн кызмат кылат. Экинчи линия тестирлөө үчүн - бул суусуз схеманы кыскартат, бизге түзмөктүн иштеп жаткандыгын же иштебей турганын билдирүү үчүн.

8. Raspberry Pi микро компьютери

Мен Raspberry Pi Zero колдонуп жатам. Бул Domoticz серверин иштетүү үчүн жетиштүү күчтүү.

2 -кадам: Программалык камсыздоо

Сиздин компьютериңизде:

1. esptool орнотулган, модулдарды жана жаркылдаган микробдорду тазалоо үчүн

2. Ampy орнотулган, программаңызды жаркыратуу үчүн

3 Python 3.6 же андан жогору сунушталат

4. Каалаган код редактору. Жөнөкөй - Python IDLE, адатта Python менен орнотулат. Мен Pycharm / Atom же Anaconda Spyder On Raspberry Pi колдонуп жатам

5. Raspberry Piде орнотулган Domoticz сервери (же жалпы Windows же Linuxтун алдында)

3 -кадам: Raspberry Pi даярдаңыз - Domoticz орнотуңуз

Ошентип, RPiңизди алып, Domoticz серверин иштетүүгө ылайыктуу операциялык тутумду орнотуңуз.

Бул көрсөтмөлөрдү аткарсаңыз болот.

Мен бул жерден Raspbian Stretchти Desktop менен колдонуп жатам:

Кийинки кадам - Domoticz серверин компьютериңизге орнотуу. Сиз бул жерде же бул жерде көрсөтмөлөрдү колдоно аласыз:). Коркпоңуз, анчалык деле кыйын эмес. Албетте, сиз терминалда иштешиңиз керек:

curl -L install.domoticz.com | sudo bash

Жана бул:) аздыр -көптүр. Domoticz орнотуу

Эми биздин сервер даяр, биз ага каалаган веб -браузерден, анын ичинде планшеттен төмөнкү URLди киргизип кире алабыз: https:// IP_domoticz: 8080

4 -кадам: Domoticz орнотуу

Domoticz орнотуу
Domoticz орнотуу

Эми биздин сервер даяр, биз ага каалаган веб -браузерден, анын ичинде планшеттен төмөнкү URLди киргизип кире алабыз: https:// IP_domoticz: 8080

5 -кадам: Колдонмонун жөндөөлөрүн тууралаңыз

Колдонмо жөндөөлөрүн тууралаңыз
Колдонмо жөндөөлөрүн тууралаңыз
Колдонмо жөндөөлөрүн тууралаңыз
Колдонмо жөндөөлөрүн тууралаңыз

Ар кандай колдонмо орнотуулары бар, аларды Орнотуу | аркылуу орнотсо болот Орнотуулар менюсу.

Ар кандай өтмөктөр менен Орнотуу менюсу системанын жакшыраак иштеши үчүн керектүү болгон жеке параметрлерди киргизүүгө мүмкүндүк берет. Талаага маалыматтарды киргизгенден кийин, "Орнотууларды колдонуу" кызыл кнопкасын басуу менен аларды сактоо керек. Бул аракеттен кийин, биринчи кирүүдө бош болгон Сырсөздүн бардык талаалары, эгер алар колдонулбаса да, узун жылдызчалар менен пайда болот.

"Система" барагындагы негизги орнотууну жасагандан кийин, "Билдирмелерди" чыкылдатыңыз. Бул жерде биз кандай билдирүүлөрдү колдоно тургандыгыбызды тууралашыбыз керек.

6 -кадам: Эскертмелерди орнотуу

Эскертмелерди орнотуу
Эскертмелерди орнотуу

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

Биздин учурда, билдирмелер сенсор аркылуу суу табылганда дароо жөнөтүлүшү керек. Андыктан жөн гана аларды күйгүзүңүз, сиз колдонгуңуз келет. Ошондой эле, адатта, иштөө үчүн билдирүү үчүн API ачкычы керек. Бир аз алдыга чуркап, мен Pushover, Pushsafer жана Pushbulletти сынап көргөнүмдү айтам. Мен Pushover менен калдым. Эмнеге экенин кийинчерээк айтам.

Билдирмелер кантип иштээри жөнүндө бир нече сөз. Pushbullet, Pushover же сиз колдонгуңуз келген башка барактарда каттоо эсебиңиз болушу керек. Ошондой эле сизге уюлдук телефонуңузга же компьютериңизге тиркеме керек болот.

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

Сенсор сууну сезгенде, ESP күйгүзүлөт жана Domoticz серверине JSON форматында суроо жөнөтөт. Окуяны баштоо шарттары аткарылгандан кийин (сизге уюлдук телефонго билдирүү жөнөтүү), Domoticz билдирүүнү жөнөтөт.

Кийинчерээк "окуяларга" кайтып келем.

7 -кадам: Байланышты Аппараттык Түзмөккө Орнотуу

Байланышты Аппараттык Түзмөккө Орнотуу
Байланышты Аппараттык Түзмөккө Орнотуу
Байланышты Аппараттык Түзмөккө Орнотуу
Байланышты Аппараттык Түзмөккө Орнотуу
Байланышты Аппараттык Түзмөккө Орнотуу
Байланышты Аппараттык Түзмөккө Орнотуу

Domoticz тиркемесин түзмөктөрдү башкаруу же сенсорлорду окуудан мурун, аппараттык түзмөктөргө байланышты орнотушуңуз керек. Аппаратты кошуу үчүн Орнотууну | Аппаратты тандаңыз. Тийиштүү жабдыктар кошулмайынча, түзмөктөр көрүнбөйт.

Domoticz тиркемеси көптөгөн аппараттык жабдууларды жергиликтүү түрдө колдойт. Биздин учурда, сел сенсорун окуу үчүн, жабдыктардын тизмесинен "муляж" деп аталган жабдыкты кошуу керек.

Аппаратты кошкондо, бардык аныкталган жабдуулардын жалпы көрүнүшү көрсөтүлөт. Аппараттык өчүрүлүшү же өчүрүлүшү мүмкүн.

Жаңы жабдыктар тизмеде болушу керек жана "Виртуалдык сенсорлорду түзүү" баскычы болушу керек.

Бул баскычты чыкылдатыңыз жана "Alert" сенсорунун түрүн тандаңыз. Эми биз активдүү болуу үчүн Domoticzдеги аппаратты кошушубуз керек.

8 -кадам: активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз

Активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз
Активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз
Активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз
Активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз
Активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз
Активдүү болуу үчүн Domoticzдеги түзмөктү кошуңуз

Сураныч, "IDX" астындагы номерге көңүл буруңуз. Бул бул түзмөккө уникалдуу шилтеме жана бизге билдирүүнү чечүү үчүн кийинчерээк биздин Python скриптинде керек. Бул учурда IDX номери 1.

Түзмөктү иштетүү үчүн сол жактагы жашыл жебени чыкылдатыңыз (менин астымдагы сүрөттө көк, анткени аппарат иштетилген).

Түзмөктүн атын толтуруп, "кошуу" баскычын чыкылдатыңыз.

Менюга өтүңүз "Утилиталар" жана сиздин түзмөк ошол жерде тизмелениши керек.

Эми сенсорубуз үчүн "окуяны" программалаш керек. Бул серверге айтуубуз керек дегенди билдирет, эгерде ал сенсордон билдирүү алган болсо, эмне кылуу керек.

9 -кадам: Бул жол менен иштебейт …

Бул жол менен иштебейт…
Бул жол менен иштебейт…

Мен окуяны / device / баракчасына программалоого аракет кылуу менен баштадым. Бул төмөндөгү меники эмес, бирок мисал келтирүү туура.

Эгер сиз кээ бир белгилөө кутучаларын текшерип, ал иштээрине ишенсеңиз, анда жаңылдыңыз:) Бул мындай иштебейт. Бул жерде бул функция азырынча бүтө элек деп ойлойм. Унутпаңыз - бул ачык булак программасы. Ок, бир нече сааттан кийин мен чечимди таптым. Биз "Орнотуу" ачылуучу менюсунан "Окуяларды" колдонушубуз керек.

"Окуяларды" чыкылдатуу менен сиз өзүңүздүн иш -чараңызды түзө аласыз. Сиз муну Python же LUAда же "Blockly" деп аталган нерсени колдонуу менен жаза аласыз. Мен Blockly колдонууну чечтим. Серверди каалаган нерсеңизди жасоонун эки жолу бар.

10 -кадам: Иш -чараны туура жол менен куруңуз 1

Иш -чараны туура жол менен куруңуз 1
Иш -чараны туура жол менен куруңуз 1

1. Тышкы файлды "Окуялар" аркылуу, Блоклуу билдирүүнү колдонуу менен "Сценарийди башта"

Бул мен үчүн Windows машинасында эң сонун иштейт. Бирок мен Raspberry Piдеги Raspbian менен ийгиликке жете алган жокмун. Мен уруксаттар менен көйгөй бар деп шектенип жатам.

11 -кадам: Окуяны туура жол менен куруу 2

Окуяны туура жол менен куруңуз 2
Окуяны туура жол менен куруңуз 2

2. "Тема менен билдирүү жөнөтүү" билдирүүсүн колдонуңуз. Бул Raspbian боюнча иштейт. Бул параметр Pushsafe жана Pushover билдирмелерин жөнөтүүнү колдойт.

1 -жолду колдонуунун артыкчылыгы, ал ийкемдүүрөөк. Сиз дисплейде көрсөтүлө турган сөлөкөттү тандай аласыз, үндөр ж.б. Менин "окуям" жогорудагы сүрөттө көрсөтүлгөн.

Андан кийин, ESP модулун программалайлы.

12-кадам: ESP8266-01 модулун программалоо

Программалоо ESP8266-01 модулу
Программалоо ESP8266-01 модулу

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

Бул үчүн биз esptool колдонобуз. Андан көрө, биз программаны өчүрүү үчүн модулубузду компьютерге туташтырышыбыз керек. Бул үчүн сизге TTL конвертери + бир нече кошумча компоненттер керек. Бирок андан да оңой жол бар:). Жөн гана aliexpress же ebay USB аркылуу ESP8266 ESP-01 Wi-Fi адаптер модулуна/ CH340G драйверине сатып алыңыз.

ESP8266 модулун сүрөттө көрсөтүлгөндөй TTL конвертерине сайыңыз жана аны USB портуна туташтырыңыз.

Эгерде сизде меникиндей эле конвертер болсо, анда сиз өзүңүздүн которгучту "Прог" абалына алмаштырышыңыз керек. Esptool орнотулган жерди табыңыз (адатта бир жерде C: / Program Files (x86) Python36-32 / Scripts сыяктуу. Бул папкага өтүңүз, ошол жерден буйрук көрсөтмөсүн иштетиңиз. Түрү: python esptool.exe-COM5 erase_flash

Албетте, туура портту тандаңыз. Менин учурда бул COM5. ESP орнотулган портту Control Panel - System - Device manager текшере аласыз.

Программаны орнотуңуз (мен аны бул жерден алдым: https://micropython.org/download#esp8266) терүү менен:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size = аныктоо 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

Макул, эми биз micropython скрипттерин ESP8266ге жүктөөгө даярбыз.

Мен бул үчүн Adafruit MicroPython Tool (ampy) колдонуп жатам.

Бирок азыркы учурда Esplorer деп аталган дагы бир вариант бар. Бул ESP модулдарына файлдарды жүктөөгө мүмкүндүк берген колдонуучу интерфейси бар колдонмо.

Бул жерден ampy орнотуу боюнча нускамаларды таба аласыз. Ошентип, TTL алмаштыргычты "UART" абалына коюңуз. Биз файлдарды жүктөшүбүз керек:

  • wifimgr.py - wifi тармагына туташуу үчүн wifi менеджери
  • main.py - биздин негизги сценарий

Буйрук сабында: ampy --port COM5 файлына C: / жолун коюңуз

"Кирүү" баскычын басыңыз. Бир нече секунддан кийин бош буйрук сабын көрүшүңүз керек. Бул файл жүктөлгөнүн билдирет. Сиз ESP файлдарынын тизмесин ampy буйругу менен текшере аласыз:

ampy -порт COM5 ls

Менин тажрыйбам боюнча, бардык керектүү файлдарды жүктөгөндөн кийин main.py жүктөө жакшы. main.py жүктөлөөр замат ушундай болот - ESP8266 модулу кайра жүктөлүп, main.py файлын иштете баштайт. Демек, бул учурда сиз башка файлды жүктөөгө аракет кылсаңыз, кээде жүктөө процесси ишке ашпай калат. Бирок бул баары жоголду дегенди билдирбейт:), экинчи жолу аракет кылсаңыз, ийгиликке жетесиз (дагы, менин тажрыйбамдан).

Бул долбоордун бардык файлдары бул жерден жеткиликтүү:

13 -кадам: WiFi тармагыңызга туташыңыз. Эскертме алуу

WiFi тармагыңызга туташыңыз. Эскертме алуу
WiFi тармагыңызга туташыңыз. Эскертме алуу
WiFi тармагыңызга туташыңыз. Эскертме алуу
WiFi тармагыңызга туташыңыз. Эскертме алуу

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

ESP башталгандан кийин, "Wifimanager" деп аталган жаңы WiFi тармагын табыңыз. Ага компьютериңиз же телефонуңуз менен туташыңыз, андан кийин 192.168.4.1 IP дарегине өтүңүз.. Бул жерде сиз ESPти жергиликтүү WiFi тармагына туташтыра аласыз. Колдонула турган WiFi тармагын тандап, сырсөздү терип, "Тапшыруу" баскычын басыңыз.

Эгерде баары туура болсо, сиз "ESP XXXX тармагына ийгиликтүү туташты" деген билдирүүнү көрөсүз. Сиздин ESP азыр WiFi тармагыңызга туташкан жана даяр. WiFiга туташкандан кийин ал Domoticz серверине туташат. Shorty сиз уюлдук телефонуңузга билдирүү алышыңыз керек.

Сиз процессти "Орнотууда"/"Журналда" көзөмөлдөй аласыз.

Vua lia!:) Ал иштейт. Эми биз төмөндөгү блок -схемага ылайык, бардык тетиктерди чогултууга кирише алабыз.

14 -кадам: Блок диаграммасы

Блок диаграммасы
Блок диаграммасы

Бул диаграмма жөнүндө айта турган көп нерсе жок. Абдан жөнөкөй. S1 которгуч менен кубатты которуңуз. Түзмөк "Суу сенсорунун" казыктары кысылганга чейин өчүк абалда турат. Андан кийин "Пололу тактасы" күйүп, чыңалуу алмаштыргычына күч берет. HT7333 чипине негизделген бул күч модулу чыңалууну ESP8266 үчүн туруктуу 3.3Vга айландырат. Кийинки ESP күйгүзүлөт жана Domoticz серверине билдирүү жөнөтөт.

15 -кадам: Жыйынтык жана корутунду

Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар
Жыйынтык жана Жыйынтыктар

Ал иштейт. Билдирүүнү жөнөтүү 10 секундга чейин созулду: WiFi менен туташуу, билдирүү жөнөтүү, телефонуңузга сигналды алуу.

Мен сенсорду 30 -жылдары, эгерде суу аныкталса, ойготкучтарды жөнөтүүгө программалап койгом. Батарейкасы бүткөнчө сенсор 5-6 билдирүү жөнөтө алат. Мындай аппарат суунун деңгээлин аныктоо үчүн да колдонулушу мүмкүн. Мен эмнени жакшырткым келет.

1. Тезирээк иштеши үчүн. Мен ESP-Now технологиясын колдонууга аракет кылам деп ойлойм, ал мага бир нече ESPти түз туташтырууга мүмкүндүк берет. Бул учурда туташуу учурунда электр энергиясын керектөө өтө төмөн жана ал тезирээк болот. Ошентип, идея бир ESPти башка ESPтерди туташтыруу үчүн хаб сыяктуу колдонуу.

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

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

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