Съдържание:

Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz: 16 стъпки (със снимки)
Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz: 16 стъпки (със снимки)

Видео: Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz: 16 стъпки (със снимки)

Видео: Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz: 16 стъпки (със снимки)
Видео: Умный дом - как это работает? Сети передачи данных и взаимодействие устройств 2024, Юли
Anonim
Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz
Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz
Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz
Сензор за изтичане на вода на ESP8266 + Micropython + Domoticz

Преди време съпругата ми ме помоли да направя сензор за изтичане на вода. Страхуваше се, че маркучът в котелното може да пропусне и водата да залее новоположения дървен под. И аз като истински инженер се заех да направя такъв сензор.

От моя 15 -годишен опит като медицински инженер знам, че най -лесният начин за откриване на вода е метални щифтове, късо съединени с вода. Принципът на действие на най -простите сензори е, че водата трябва да къси два (или повече) метални щифта и веднага щом се случи, се задейства алармата.

Стъпка 1: Хардуер

Хардуер
Хардуер

За този проект се нуждаем от:

1. Модул ESP8266 - 01

2. HT7333 3.3V MS Линейно регулаторно захранване с ниско отпадане модул модул

Нуждаем се от този модул, за да намалим напрежението от батерията до приемливото ниво за ESP8266. Според листа с данни трябва да има вход 3V до 3.6V. Този модул ни дава 3.3V.

3. Батерия. Използвам 3, 7V литиево-йонна батерия 400mAh. Всъщност можете да използвате всеки друг подходящ източник на захранване. Батерията 18650 също е добър избор. Когато избирате батерия, имайте предвид, че ESP "изяжда" около 200mA, докато се свързва с WiFi мрежа, и около 60mA се използва, когато платката качва данни на сървъра.

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 IDLE, който обикновено се инсталира с Python. Използвам Pycharm / Atom или Anaconda Spyder на малинов Pi

5. Domoticz сървър, инсталиран на Raspberry Pi (или обикновен компютър под 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: Регулирайте настройките на приложението

Регулирайте настройките на приложението
Регулирайте настройките на приложението
Регулирайте настройките на приложението
Регулирайте настройките на приложението

Има различни настройки на приложението, които могат да бъдат зададени чрез Setup | Меню с настройки.

Менюто Настройки с различни раздели ви позволява да въведете лични параметри, необходими за по -добро функциониране на системата. След като въведете данни в полетата, трябва да ги запишете, като натиснете червения бутон „Прилагане на настройките“. След това действие всички полета за парола, които бяха празни при първия достъп, ще се появят с дълъг низ от звездички, дори и да не са били използвани.

След като сте направили основната настройка на страницата „Система“, щракнете върху „Известия“. Тук трябва да коригираме какви известия ще използваме.

Стъпка 6: Известия за настройка

Известия за настройка
Известия за настройка

Известията могат да се изпращат например, когато е натиснат превключвател, консумацията на електроенергия е твърде висока, температурата е висока и за много други опции.

В нашия случай известията трябва да се изпращат веднага щом водата бъде открита от сензора. Така че просто включете тези, които искате да използвате. Също така обикновено се нуждаете от API ключ, за да работи известието. Като бягам малко напред, ще кажа, че опитах Pushover, Pushsafer и Pushbullet. И останах с Pushover. По -късно ще кажа защо.

Няколко думи за това как работят известията. Трябва да имате акаунт на Pushbullet, Pushover или други страници, които искате да използвате. Също така ще ви трябва приложение на вашия мобилен телефон или компютър.

Вземете API ключ и го поставете на страницата по -горе. Можете да тествате известието, като кликнете върху „Тест“. Ако API ключът е правилен, трябва да получите тестови известия на мобилния си телефон.

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

По -късно ще се върна към "събития".

Стъпка 7: Настройте комуникацията с хардуерни устройства

Настройка на комуникацията с хардуерни устройства
Настройка на комуникацията с хардуерни устройства
Настройка на комуникацията с хардуерни устройства
Настройка на комуникацията с хардуерни устройства
Настройка на комуникацията с хардуерни устройства
Настройка на комуникацията с хардуерни устройства

Преди да можете да използвате приложението Domoticz за управление на устройства или сензори за четене, трябва да настроите комуникацията към хардуерни устройства. Изберете Настройка | Хардуер, за да добавите хардуер. Устройствата няма да се покажат, докато не бъде добавен подходящият хардуер.

Приложението Domoticz поддържа много хардуерни устройства по рождение. В нашия случай, за да прочетете нашия сензор за наводнение, трябва да добавим така наречения „Dummy“хардуер от списъка с хардуер.

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

Новият хардуер трябва да е в списъка и трябва да има бутон „Създаване на виртуални сензори“.

Щракнете върху този бутон и изберете Sensor Type "Alert". Сега трябва да добавим устройството в Domoticz, за да стане активно.

Стъпка 8: Добавете устройството в Domoticz, за да станете активни

Добавете устройството в Domoticz, за да станете активни
Добавете устройството в Domoticz, за да станете активни
Добавете устройството в Domoticz, за да станете активни
Добавете устройството в Domoticz, за да станете активни
Добавете устройството в Domoticz, за да станете активни
Добавете устройството в Domoticz, за да станете активни

Моля, обърнете внимание на номера под „IDX“. Това е уникалната препратка към това устройство и имаме нужда от нея по -късно в нашия скрипт на Python, за да адресираме известието. В този случай IDX номерът е 1.

Активирайте устройството, като щракнете върху зелена стрелка вляво (на моята снимка по -долу е синя, поради включеното устройство).

Попълнете името на устройството и кликнете върху „добавяне“.

Придвижете се до меню „Помощни програми“и вашето устройство трябва да бъде посочено там.

Сега трябва да програмираме „събитие“за нашия сензор. Това означава, че трябва да кажем на сървъра какво да правим в случай, че има съобщение от сензора. И това беше, да речем, най -трудното място за мен:).

Стъпка 9: Не работи по този начин …

Не работи по този начин…
Не работи по този начин…

Започнах, като се опитах да програмирам събитие на / device / page. Това долу не е мое, но е добре да илюстрирам.

Ако смятате, че ще поставите отметка в някои квадратчета и ще работи, грешите:) Не работи по този начин. Предполагам, че тази функция тук все още не е завършена. Не забравяйте - това е софтуер с отворен код. Добре, след няколко часа намерих решението. Трябва да използваме „Събития“от падащото меню „Настройка“.

След като щракнете върху „Събития“, можете да създадете свое собствено събитие. Можете да го направите, като купите писане на код в Python или LUA, или просто като използвате нещо, наречено „Blockly“. Избрах да използвам Blockly. Има два начина да принудите сървъра да прави каквото искате.

Стъпка 10: Изградете събитие по правилен начин 1

Изградете събитието по правилен начин 1
Изградете събитието по правилен начин 1

1. Изпълнете външен файл чрез „Събития“, като използвате съобщение Blockly „Старт на скрипта“

Това работи перфектно за мен на Windows машина. Но не успях с това на Raspbian на моя Raspberry Pi. Подозирам, че има проблем с разрешенията.

Стъпка 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 порта.

Ако имате същия конвертор като мен, тогава сам по себе си трябва да смените превключвателя в положение "Prog". Намерете къде е инсталиран esptool (обикновено някъде като C: / Program Files (x86) Python36-32 / Scripts. Отидете в тази папка, стартирайте командния ред там. Тип: python esptool.exe --port 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: / път към вашия файл

Натиснете "enter". След няколко секунди трябва да видите празен команден ред. Това означава, че файлът е качен. Можете да проверите списъка с файлове на ESP чрез команда ampy:

ampy -порт COM5 ls

От моя опит е по -добре да качите main.py, след като сте качили всички необходими файлове. така е, тъй като веднага след като качите main.py - модулът ESP8266 ще се рестартира и ще започне да изпълнява файла main.py. Така че в този случай, ако се опитате да качите друг файл, понякога процесът на качване ще бъде неуспешен. Но това не означава, че всичко е загубено:), просто опитайте втори път и ще успеете (отново от моя опит).

Всички файлове за този проект са достъпни от тук:

Стъпка 13: Свържете се с вашата WiFi мрежа. Получаване на известие

Свържете се с вашата WiFi мрежа. Получаване на известие
Свържете се с вашата WiFi мрежа. Получаване на известие
Свържете се с вашата WiFi мрежа. Получаване на известие
Свържете се с вашата WiFi мрежа. Получаване на известие

ако всичко е наред, рестартирайте модула, като поставите отново TTL конвертора в USB порт на вашия компютър.

След стартиране на ESP намерете нова WiFi мрежа, наречена "Wifimanager". Свържете се към него с вашия компютър или телефон, след това отидете на IP адрес 192.168.4.1.. Тук можете да свържете вашия ESP към локална WiFi мрежа. Изберете WiFi мрежа, която ще използвате, въведете парола, натиснете „Submit“.

Ако всичко е правилно, ще видите съобщение „ESP успешно свързан към мрежата XXXX“. Вашият ESP сега е свързан към вашата WiFi мрежа и е готов. Веднага след като се свърже с WiFi, той ще се свърже със сървъра на Domoticz. Късо трябва да получите известие на мобилния си телефон.

Можете да проследите процеса в "Настройка"/"Дневник".

Виа лиа!:) Работи. Сега можем да пристъпим към сглобяването на всички части заедно, съгласно блок -схемата по -долу.

Стъпка 14: Блокова диаграма

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

Няма какво толкова да се каже за тази диаграма. Много просто. Превключете захранването с превключвател S1. Устройството стои в изключено състояние, докато водата не къса щифтовете "сензор за вода". След това "Pololu board" се включва и дава захранване на преобразувателя на напрежение. Този захранващ модул, базиран на чип HT7333, преобразува напрежението в стабилни 3.3V за ESP8266. След това ESP се включва и изпраща съобщение до сървъра на Domoticz.

Стъпка 15: Резултати и заключения

Резултат и заключения
Резултат и заключения
Резултат и заключения
Резултат и заключения
Резултат и заключения
Резултат и заключения
Резултат и заключения
Резултат и заключения

Работи. Изпращането на известие отне до 10 секунди: връзка с WiFi, изпращане на известие, получаване на алармено съобщение до телефона ви.

Програмирал съм сензора да изпраща аларми на всеки 30 секунди, ако е открита вода. Сензорът може да изпраща до 5 - 6 известия, докато батерията се разреди. Такова устройство може да се използва и за определяне на нивото на водата. Какво бих искал да подобря.

1. За да работи по -бързо. Мисля, че ще се опитам да използвам технологията ESP-Now, която ми позволява да свържа директно няколко ESP. В този случай консумацията на енергия по време на връзка е много ниска и е по -бърза. Така че идеята е да използвате един ESP като хъб за свързване на други ESP.

2. Включете аларма за нивото на батерията. Сега не можете да знаете дали има достатъчно мощност за изпращане на алармено съобщение или не. Мисля, че в следващото поколение на този сензор ще има специален бутон за тестване на зареждането на батерията.

Потребителят ще трябва да натисне бутон и ще се покаже нивото на батерията.

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