Агуулгын хүснэгт:

ESP8266 + Micropython + Domoticz дээрх ус алдалтын мэдрэгч: 16 алхам (зурагтай)
ESP8266 + Micropython + Domoticz дээрх ус алдалтын мэдрэгч: 16 алхам (зурагтай)

Видео: ESP8266 + Micropython + Domoticz дээрх ус алдалтын мэдрэгч: 16 алхам (зурагтай)

Видео: ESP8266 + Micropython + Domoticz дээрх ус алдалтын мэдрэгч: 16 алхам (зурагтай)
Видео: leak detection 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 Lineer Regulator Power Supply modu

Батерейгаас хүчдэлийг ESP8266 -ийн зөвшөөрөгдөх хэмжээнд хүртэл бууруулахын тулд бидэнд энэ модуль хэрэгтэй. Мэдээллийн хүснэгтийн дагуу 3V -аас 3.6V хүртэл оролт байх ёстой. Энэ модуль нь бидэнд 3.3V хүчдэл өгдөг.

3. Батерей. Би 3, 7V 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 эсвэл Линукс дээрх энгийн компьютер)

Алхам 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 -ийг туршиж үзсэн гэж хэлэх болно. Тэгээд би Пушовертой хамт үлдсэн. Яагаад гэдгийг сүүлд нь хэлье.

Мэдэгдэл хэрхэн ажилладаг талаар хэдэн үг хэлье. Та Pushbullet, Pushover эсвэл ашиглахыг хүссэн бусад хуудсан дээр данстай байх шаардлагатай. Мөн танд гар утас эсвэл компьютер дээр апп хэрэгтэй болно.

API түлхүүрийг аваад дээрх хуудсан дээр оруулна уу. Та "Туршилт" дээр дарж мэдэгдлийг шалгаж болно. Хэрэв API түлхүүр зөв бол та гар утсандаа туршилтын мэдэгдэл хүлээн авах ёстой.

Мэдрэгч усыг мэдэрмэгц ESP асааж, Domoticz сервер рүү JSON форматаар хүсэлт илгээдэг. Хэрэв үйл явдлыг өдөөх (гар утсанд мэдэгдэл илгээх) нөхцөл хангагдсан бол Domoticz мэдэгдэл илгээдэг.

Хожим нь би "үйл явдал" руу буцах болно.

Алхам 7: Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах

Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах
Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах
Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах
Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах
Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах
Харилцааг тоног төхөөрөмжийн төхөөрөмжид тохируулах

Та төхөөрөмжүүдийг хянах эсвэл мэдрэгчийг уншихын тулд Domoticz програмыг ашиглахаасаа өмнө тоног төхөөрөмжийн төхөөрөмжүүдтэй холбоо тогтоох ёстой. Тоног төхөөрөмж нэмэхийн тулд Тохиргоо | Тоног төхөөрөмжийг сонгоно уу. Тохирох тоног төхөөрөмжийг нэмж оруулах хүртэл төхөөрөмжүүд гарч ирэхгүй.

Domoticz аппликейшн нь олон тоног төхөөрөмжийн төхөөрөмжүүдийг дэмждэг. Манай тохиолдолд үерийн мэдрэгчийг уншихын тулд бид тоног төхөөрөмжийн жагсаалтаас "дамми" гэж нэрлэгддэг тоног төхөөрөмжийг нэмэх хэрэгтэй.

Тоног төхөөрөмжийг нэмэхэд бүх тодорхойлсон тоног төхөөрөмжийн тоймыг харуулах болно. Тоног төхөөрөмжийг идэвхгүй болгох эсвэл устгах боломжтой.

Шинэ тоног төхөөрөмж жагсаалтад байх ёстой бөгөөд "Виртуал мэдрэгч үүсгэх" товчлуур байх ёстой.

Энэ товчлуур дээр дарж Sensor Type "Alert" -г сонгоно уу. Одоо бид төхөөрөмжийг Domoticz дээр нэмж идэвхжүүлэх хэрэгтэй.

Алхам 8: Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү

Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү
Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү
Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү
Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү
Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү
Идэвхтэй болохын тулд Domoticz дахь төхөөрөмжийг нэмнэ үү

"IDX" доорх дугаарыг анхаарна уу. Энэ бол энэ төхөөрөмжийн өвөрмөц лавлагаа бөгөөд бидэнд дараа нь Python скриптээр дамжуулан мэдэгдэл авах шаардлагатай болно. Энэ тохиолдолд IDX дугаар нь 1 байна.

Зүүн талд байгаа ногоон сумыг дарж төхөөрөмжийг идэвхжүүлнэ үү (доорх зураг дээр цэнхэр өнгөтэй байна, учир нь төхөөрөмж идэвхжсэн).

Төхөөрөмжийн нэрийг оруулаад "Нэмэх" дээр дарна уу.

"Utilities" цэс рүү очоод таны төхөөрөмжийг тэнд жагсаах ёстой.

Одоо бид мэдрэгчийнхээ хувьд "event" програмчлах хэрэгтэй. Энэ нь мэдрэгчээс мессеж ирсэн тохиолдолд юу хийхээ сервер рүү хэлэх ёстой гэсэн үг юм. Энэ бол миний хувьд хамгийн хэцүү газар гэж хэлье:).

Алхам 9: Ийм байдлаар ажиллахгүй байна …

Ийм байдлаар ажиллахгүй байна …
Ийм байдлаар ажиллахгүй байна …

Би үйл явдлыг / төхөөрөмж / хуудсан дээр програмчлахыг оролдож эхэллээ. Доорх нь минийх биш, гэхдээ тайлбарлахад зүгээр байна.

Хэрэв та хэд хэдэн шалгах хайрцгийг шалгаад энэ нь ажиллах болно гэдэгт итгэж байгаа бол та буруу бодож байна:) Ийм байдлаар ажиллахгүй байна. Энд энэ онцлог хараахан дуусаагүй байна гэж бодож байна. Энэ бол нээлттэй эхийн програм хангамж гэдгийг битгий мартаарай. Хэдэн цагийн дараа би шийдлийг олсон. Бид "Тохиргоо" цэснээс "Үйл явдал" -ыг ашиглах хэрэгтэй.

"Үйл явдал" дээр дарсны дараа та өөрийн үйл явдлыг үүсгэж болно. Та үүнийг Python эсвэл LUA дээр код бичих эсвэл "Blockly" гэж нэрлэж болно. Би Blockly ашиглахаар шийдсэн. Серверийг хүссэн зүйлээ хийхийг албадах хоёр арга бий.

Алхам 10: Үйл явдлыг зөв зохион байгуулах 1

Үйл явдлыг зөв зохион байгуулах 1
Үйл явдлыг зөв зохион байгуулах 1

1. Гадны файлыг "Үйл явдал" -аар дамжуулан "Скрипт эхлүүлэх" гэсэн Blockly мессеж ашиглан ажиллуулна уу.

Энэ нь 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 / Script гэх мэт. Энэ хавтсанд очоод тэнд тушаалын мөрийг ажиллуулна уу. Төрөл: 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

За, одоо бид микропитон скриптүүдийг ESP8266 дээр байршуулахад бэлэн боллоо.

Үүний тулд би Adafruit MicroPython Tool (ampy) ашиглаж байна.

Гэхдээ өнөө үед Эсплорер гэж нэрлэгддэг өөр сонголт бий. Энэ бол 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, та гар утсандаа мэдэгдэл хүлээн авах ёстой.

Та үйл явцыг "Тохиргоо"/"Бүртгэл" хэсэгт хянах боломжтой.

Вуа лиа!:) Энэ нь ажилладаг. Одоо бид доорх блок диаграмын дагуу бүх эд ангиудыг угсрах ажлыг үргэлжлүүлж болно.

Алхам 14: Блок диаграм

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

Энэ диаграмын талаар хэлэх зүйл алга. Маш энгийн. S1 унтраалгаар тэжээлээ солино уу. "Ус мэдрэгч" тээглүүрийг богиносгох хүртэл төхөөрөмж унтраалттай байна. Дараа нь "Пололу самбар" асаж, хүчдэлийн хөрвүүлэгчид хүч өгдөг. HT7333 чип дээр суурилсан энэхүү цахилгаан модуль нь хүчдэлийг ESP8266 -ийн тогтвортой 3.3V болгон хувиргадаг. Дараа нь ESP асааж, Domoticz сервер рүү мессеж илгээдэг.

Алхам 15: Үр дүн ба дүгнэлт

Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт
Үр дүн ба дүгнэлт

Энэ нь ажилладаг. Мэдэгдэл илгээхэд 10 хүртэл секунд зарцуулагдсан: WiFi сүлжээнд холбогдох, мэдэгдэл илгээх, утсандаа сэрүүлгийн мессеж авах.

Хэрэв би ус илрүүлсэн бол мэдрэгчийг 30 -аад тутамд дохиолол илгээх програмчлагдсан. Мэдрэгч нь батерейг цэнэггүй болтол 5-6 хүртэл мэдэгдэл илгээх боломжтой. Ийм төхөөрөмжийг усны түвшинг тодорхойлоход ашиглаж болно. Миний сайжруулахыг хүсч буй зүйл.

1. Үүнийг илүү хурдан ажиллуулахын тулд. Би хэд хэдэн ESP-ийг шууд холбох боломжийг олгодог ESP-Now технологийг ашиглахыг хичээх болно гэж бодож байна. Энэ тохиолдолд холболтын явцад цахилгаан зарцуулалт маш бага бөгөөд илүү хурдан болдог. Тиймээс нэг ESP -ийг бусад ESP -ийг холбох төв болгон ашиглах явдал юм.

2. Батерейны түвшний дохиоллыг хэрэгжүүлэх. Сэрүүлгийн мессеж илгээх хангалттай хүч байгаа эсэхийг та одоо мэдэхгүй байна. Энэ мэдрэгчийн дараагийн үе шатанд батерейны цэнэгийг шалгах тусгай товчлуур байх болно гэж би бодож байна.

Хэрэглэгч товчлуур дарах ёстой бөгөөд зайны түвшинг харуулна.

Зөвлөмж болгож буй: