Мазмұны:

ESP8266 + Micropython + Domoticz бойынша су ағу датчигі: 16 қадам (суреттермен)
ESP8266 + Micropython + Domoticz бойынша су ағу датчигі: 16 қадам (суреттермен)

Бейне: ESP8266 + Micropython + Domoticz бойынша су ағу датчигі: 16 қадам (суреттермен)

Бейне: ESP8266 + Micropython + Domoticz бойынша су ағу датчигі: 16 қадам (суреттермен)
Бейне: Water leakage sensor on ESP8266 + micropython + Domoticz 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 Lineear Regulator Қуат беру модулі

Бізге бұл модуль батареядан кернеуді ESP8266 үшін қолайлы деңгейге дейін төмендету үшін қажет. Деректер кестесіне сәйкес 3В -тан 3.6В -ге дейін кіріс болуы керек. Бұл модуль бізге 3,3 В береді.

3. Батарея. Мен 3, 7В Li-ion 400mAh батареясын қолданамын. Іс жүзінде сіз кез келген басқа қолайлы қуат көзін пайдалана аласыз. 18650 батареясы да жақсы таңдау. Батареяны таңдағанда, ESP WiFi желісіне қосылған 200 мА шамасында «жейді», ал тақта деректерді серверге жүктегенде шамамен 60 мА пайдаланылатынын есте сақтаңыз.

4. TP4056 Lipo аккумуляторлық зарядтау тақтасы.

5. Pololu мини батырмасы Қуат қосқышы Өте қызықты кішкентай тақта. Бұл ESP модулін су анықталған кезде ғана ауыстыруға мүмкіндік береді. ESP қосулы тұрудың қажеті жоқ. Сондықтан батарея зарядын үнемдеуге жақсы.

6. Тұрғын үй7. Қос микро қосқыш ON-OFF. Бір желі құрылғыны қосуға қызмет етеді. Екінші желі тестілеуге арналған - ол сусыз тізбекті қысқартады, бұл құрылғының жұмыс істейтінін немесе жұмыс жасамайтынын бізге хабарлау үшін.

8. Raspberry Pi шағын компьютері

Мен Raspberry Pi Zero қолданамын. Бұл Domoticz серверін іске қосу үшін жеткілікті қуатты.

2 -қадам: Бағдарламалық қамтамасыз ету

Компьютерде:

1. модульдерді өшіру және микробағдарламаны өшіру үшін esptool орнатылған

2. Ampy бағдарламасы орнатылды, сіздің бағдарламаңызды жыпылықтау үшін

3 Python 3.6 немесе одан жоғары нұсқасы ұсынылады

4. Сізге қажет кез келген код редакторы. Ең қарапайым - әдетте Python көмегімен орнатылатын Python IDLE. Мен таңқурай Pi -де Pycharm / Atom немесе Anaconda Spyder қолданамын

5. Raspberry Pi -де орнатылған Domoticz сервері (немесе Windows немесе Linux жүйесіндегі қарапайым компьютер)

3 -қадам: Raspberry Pi дайындаңыз - Domoticz орнатыңыз

Сонымен, RPi алыңыз және Domoticz серверін іске қосатын операциялық жүйені орнатыңыз.

Сіз бұл нұсқауларды орындауға болады.

Мен мұнда Raspbian Stretch -ті жұмыс үстелі арқылы қолданамын:

Келесі қадам - 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 -ті қолданып көргенімді айтамын. Мен Пушоверде қалдым. Неге екенін кейінірек айтамын.

Хабарландырулар қалай жұмыс істейтіні туралы бірнеше сөз. Сізде 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 -қадам: ол осылай жұмыс істемейді …

Бұл осылай жұмыс істемейді …
Бұл осылай жұмыс істемейді …

Мен оқиғаны / құрылғыда / бетте бағдарламалауды бастадым. Бұл төмендегі менікі емес, бірақ суреттеу дұрыс.

Егер сіз қандай да бір құсбелгі қойылатынына сенсеңіз және ол жұмыс істейді, сіз қателесіз:) Бұлай жұмыс істемейді. Менің ойымша, бұл функция бұл жерде әлі аяқталған жоқ. Ұмытпаңыз - бұл ашық бағдарламалық жасақтама. Жақсы, бірнеше сағаттан кейін мен шешімді таптым. Біз «Орнату» ашылмалы мәзірінен «Оқиғаларды» пайдалануымыз керек.

«Оқиғалар» түймесін басқаннан кейін сіз өзіңіздің жеке оқиғаңызды жасай аласыз. Сіз Python немесе LUA -да код жазуды сатып ала аласыз немесе «Blockly» деп аталатын нәрсені қолдана аласыз. Мен Blockly пайдалануды таңдадым. Серверді қалаған нәрсені жасауға мәжбүрлеудің екі әдісі бар.

10 -қадам: Оқиғаны дұрыс жолмен құру 1

Оқиғаны дұрыс жолмен құру 1
Оқиғаны дұрыс жолмен құру 1

1. Сыртқы файлды «Оқиғалар» арқылы, «Бастау сценарийі» блокты хабарламасын пайдаланып орындаңыз.

Бұл мен үшін Windows машинасында жақсы жұмыс істейді. Бірақ мен бұған Raspberry Pi -де Raspbian -да қол жеткізе алмадым. Мен рұқсаттармен байланысты мәселе бар деп ойлаймын.

11 -қадам: Оқиғаны дұрыс жолмен құру 2

Оқиғаны дұрыс жолмен құру 2
Оқиғаны дұрыс жолмен құру 2

2. «Хабарламаны тақырыппен жіберу» хабарын қолданыңыз. Ол Raspbian тілінде жұмыс істейді. Бұл опция Pushsafe және Pushover хабарландыруларын жіберуді қолдайды.

Бірінші әдісті қолданудың артықшылығы - оның икемділігі. Сіз дисплейде, дыбыстарда және т.б бейнеленетін белгішені таңдай аласыз. Менің «оқиғам» жоғарыдағы суретте көрсетілген.

Әрі қарай, 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 орнатылған портты Басқару тақтасы - Жүйе - Құрылғы менеджері арқылы тексеруге болады.

Микробағдарламаны орнатыңыз (мен оны мына жерден алдым: https://micropython.org/download#esp8266) теру арқылы:

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

Жақсы, енді біз микропитон сценарийлерін 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 желісіне қосылған және дайын. Wi -Fi желісіне қосылғаннан кейін ол Domoticz серверіне қосылады. Shorty сізге ұялы телефонға хабарлама алу керек.

Процесті «Орнату»/«Журнал» бөлімінен бақылай аласыз.

Вуа лия!:) Ол істейді. Енді біз төмендегі блок -схемаға сәйкес барлық бөлшектерді жинауға кірісе аламыз.

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

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

Бұл диаграмма туралы айтуға көп нәрсе жоқ. Өте қарапайым. S1 қосқышының көмегімен қуатты қосыңыз. Құрылғы «Су сенсоры» түйреуіштері қысылғанша суық күйде қалады. Содан кейін «Пололу тақтасы» қосылады және кернеу түрлендіргішіне қуат береді. HT7333 микросхемасына негізделген бұл қуат модулі кернеуді ESP8266 үшін тұрақты 3.3В -қа түрлендіреді. Келесі ESP қосылады және Domoticz серверіне хабарлама жібереді.

15 -қадам: Нәтиже мен қорытынды

Нәтиже мен қорытынды
Нәтиже мен қорытынды
Нәтиже мен қорытынды
Нәтиже мен қорытынды
Нәтиже мен қорытынды
Нәтиже мен қорытынды
Нәтиже мен қорытынды
Нәтиже мен қорытынды

Ол істейді. Хабарламаны жіберу 10 секундқа дейін созылды: WiFi желісіне қосылу, хабарландыру жіберу, телефонға дабыл хабарын алу.

Мен сенсорды 30 секунд сайын дабыл жіберуге бағдарламаладым, егер су анықталса. Сенсор батарея заряды таусылғанша 5-6 хабарландыру жібере алады. Мұндай құрылғыны су деңгейін анықтау үшін де қолдануға болады. Мен жақсартқым келетін нәрсе.

1. Оны тезірек жұмыс жасау үшін. Мен ESP-Now технологиясын қолдануға тырысамын деп ойлаймын, бұл маған бірнеше ESP-ті тікелей қосуға мүмкіндік береді. Бұл жағдайда қосылу кезінде қуат тұтыну өте төмен және ол тезірек болады. Сонымен, идея - басқа ESP қосу үшін хаб сияқты бір ESP пайдалану.

2. Батарея деңгейінің дабылын енгізіңіз. Енді сіз дабыл хабарын жіберуге немесе жібермеуге жеткілікті күш бар екенін білмейсіз. Менің ойымша, бұл сенсордың келесі буынында батарея зарядын тексеруге арналған арнайы түйме болады.

Пайдаланушы түймені басуы керек және батарея деңгейі көрсетіледі.

Ұсынылған: