Оглавление:

Датчик утечки воды на ESP8266 + Micropython + Domoticz: 16 шагов (с изображениями)
Датчик утечки воды на ESP8266 + Micropython + Domoticz: 16 шагов (с изображениями)

Видео: Датчик утечки воды на ESP8266 + Micropython + Domoticz: 16 шагов (с изображениями)

Видео: Датчик утечки воды на ESP8266 + Micropython + Domoticz: 16 шагов (с изображениями)
Видео: Детектор воды/утечек Arduino UNO 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 уровня. Согласно таблице данных, входное напряжение должно составлять от 3 до 3,6 В. Этот модуль дает нам 3,3 В.

3. Аккумулятор. Я использую литий-ионный аккумулятор 3,7 В, 400 мАч. Фактически вы можете использовать любой другой подходящий источник питания. Аккумулятор 18650 тоже хороший выбор. При выборе аккумулятора имейте в виду, что ESP «съедает» около 200 мА при подключении к сети Wi-Fi, и около 60 мА используется, когда плата загружает данные на сервер.

4. Плата зарядки аккумулятора TP4056 Lipo.

5. Pololu mini кнопочный выключатель питания. Очень интересная миниатюрная плата. Это позволяло переключать модуль ESP только при обнаружении воды. Вам не нужно держать ESP включенным. Так что это хорошо для экономии заряда батареи.

6. Жилье7. Двойной микровыключатель ВКЛ-ВЫКЛ. Одна линия служит для включения устройства. Вторая строка предназначена для тестирования - замыкает цепь без воды, просто чтобы мы знали, работает устройство или нет.

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

Я использую Raspberry Pi Zero. Он достаточно мощный для запуска сервера Domoticz.

Шаг 2: Программное обеспечение

На вашем ПК:

1. Установлен esptool, для стирания модулей и прошивки прошивки

2. Установлен Ampy, для прошивки вашей программы

3 Рекомендуется Python 3.6 или выше

4. Любой редактор кода, какой захотите. Самый простой - Python IDLE, который обычно устанавливается вместе с Python. Я использую Pycharm / Atom или Anaconda Spyder на Raspberry Pi

5. Сервер Domoticz установлен на Raspberry Pi (или обычном ПК под 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: Настройте параметры приложения

Настройте параметры приложения
Настройте параметры приложения
Настройте параметры приложения
Настройте параметры приложения

Существуют различные настройки приложения, которые можно установить через Setup | Меню настроек.

Меню настроек с различными вкладками позволяет вам вводить личные параметры, необходимые для лучшего функционирования системы. После ввода данных в поля их необходимо сохранить, нажав красную кнопку «Применить настройки». После этого действия все поля пароля, которые были пустыми при первом доступе, будут отмечены длинной цепочкой звездочек, даже если они не использовались.

После того, как вы выполнили основную настройку на странице «Система», нажмите «Уведомления». Здесь нам нужно настроить, какие уведомления мы собираемся использовать.

Шаг 6: настройка уведомлений

Уведомления о настройке
Уведомления о настройке

Уведомления могут быть отправлены, например, при нажатии переключателя, слишком высоком потреблении электроэнергии, слишком высокой температуре и многих других опциях.

В нашем случае уведомления должны быть отправлены, как только датчик обнаружит воду. Так что просто включите те, которые хотите использовать. Также обычно вам нужен ключ API для работы уведомления. Забегая немного вперед, скажу, что пробовал Pushover, Pushsafer и Pushbullet. И я остался с Pushover. Позже я расскажу почему.

Несколько слов о том, как работают уведомления. Вам необходимо иметь учетную запись на Pushbullet, Pushover или других страницах, которые вы хотите использовать. Также вам понадобится приложение на мобильный телефон или компьютер.

Получите ключ API и вставьте его на страницу выше. Вы можете проверить уведомление, нажав «Проверить». Если ключ API правильный, вы должны получить тестовые уведомления на свой мобильный телефон.

Как только датчик обнаруживает воду, ESP включается и отправляет запрос на сервер Domoticz в формате JSON. Затем, если выполнены условия для запуска события (отправка уведомления на ваш мобильный телефон), Domoticz отправляет уведомление.

Позже я вернусь к «событиям».

Шаг 7: Настройте связь с аппаратными устройствами

Настройте связь с аппаратными устройствами
Настройте связь с аппаратными устройствами
Настройте связь с аппаратными устройствами
Настройте связь с аппаратными устройствами
Настройте связь с аппаратными устройствами
Настройте связь с аппаратными устройствами

Прежде чем вы сможете использовать приложение Domoticz для управления устройствами или считывания данных с датчиков, вы должны настроить связь с аппаратными устройствами. Выберите «Настройка | Оборудование», чтобы добавить оборудование. Устройства не будут отображаться, пока не будет добавлено соответствующее оборудование.

Приложение Domoticz изначально поддерживает многие аппаратные устройства. В нашем случае, чтобы считать наш датчик наводнения, нам нужно добавить так называемое «пустое» оборудование из списка оборудования.

При добавлении оборудования будет показан обзор всего определенного оборудования. Оборудование можно отключить или удалить.

Новое оборудование должно быть в списке и должна быть кнопка «Создать виртуальные датчики».

Нажмите эту кнопку и выберите Тип датчика «Оповещение». Теперь нам нужно добавить устройство в 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. Но у меня не получилось с этим на 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 Модуль адаптера Wi-Fi USB к ESP8266 ESP-01 с драйвером 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 --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 здесь. Итак, переведите переключатель ТТЛ-преобразователя в положение «UART». Нам потребуется загрузить файлы:

  • wifimgr.py - менеджер Wi-Fi для подключения к сети Wi-Fi
  • main.py - наш основной скрипт

В командной строке введите: ampy --port COM5 поместите C: / путь к вашему файлу

Хит "войти". Через несколько секунд вы должны увидеть пустую командную строку. Это означает, что файл загружен. Вы можете проверить список файлов на ESP с помощью команды ampy:

ampy --port COM5 ls

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

Все файлы для этого проекта доступны здесь:

Шаг 13: Подключитесь к вашей сети Wi-Fi. Получить уведомление

Подключитесь к вашей сети Wi-Fi. Получить уведомление
Подключитесь к вашей сети Wi-Fi. Получить уведомление
Подключитесь к вашей сети Wi-Fi. Получить уведомление
Подключитесь к вашей сети Wi-Fi. Получить уведомление

Если все в порядке, перезапустите модуль, повторно вставив TTL-преобразователь в USB-порт вашего ПК.

После запуска ESP найдите новую сеть Wi-Fi под названием «Wifimanager». Подключитесь к нему с помощью ПК или телефона, затем перейдите к IP-адресу 192.168.4.1.. Здесь вы можете подключить ESP к локальной сети Wi-Fi. Выберите сеть Wi-Fi, которую вы собираетесь использовать, введите пароль и нажмите «Отправить».

Если все верно, вы увидите сообщение «ESP успешно подключено к сети XXXX». Теперь ваш ESP подключен к вашей сети Wi-Fi и готов. Как только он подключится к Wi-Fi, он подключится к серверу Domoticz. Короче, вы должны получить уведомление на свой мобильный телефон.

Вы можете отслеживать процесс в «Настройка» / «Журнал».

Vua lia!:) Оно работает. Теперь можно приступить к сборке всех деталей вместе, согласно блок-схеме ниже.

Шаг 14: Блок-схема

Блок-схема
Блок-схема

Об этой диаграмме особо нечего сказать. Очень простой. Переключите питание переключателем S1. Устройство стоит в выключенном состоянии до тех пор, пока вода не закоротит контакты «Датчик воды». Затем включается плата Pololu и подает питание на преобразователь напряжения. Этот модуль питания, основанный на микросхеме HT7333, преобразует напряжение в стабильное 3,3 В для ESP8266. Затем включается ESP и отправляет сообщение на сервер Domoticz.

Шаг 15: результат и выводы

Результат и выводы
Результат и выводы
Результат и выводы
Результат и выводы
Результат и выводы
Результат и выводы
Результат и выводы
Результат и выводы

Оно работает. Отправка уведомления заняла до 10 секунд: подключение к Wi-Fi, отправка уведомления, получение сообщения о тревоге на телефон.

Я запрограммировал датчик на отправку сигналов тревоги каждые 30 секунд, если обнаружена вода. Датчик может отправлять до 5-6 уведомлений, пока аккумулятор не разрядится. Такой прибор можно использовать и для определения уровня воды. Что хотелось бы улучшить.

1. Чтобы он работал быстрее. Думаю, я попробую использовать технологию ESP-Now, которая позволяет мне напрямую подключать несколько ESP. В этом случае энергопотребление при подключении очень низкое и происходит быстрее. Таким образом, идея состоит в том, чтобы использовать один ESP в качестве концентратора для подключения других ESP.

2. Реализовать сигнализацию уровня заряда батареи. Теперь вы не можете знать, достаточно ли мощности для отправки тревожного сообщения. Думаю, в следующем поколении этого сенсора будет специальная кнопка для проверки заряда аккумулятора.

Пользователь должен будет нажать кнопку, и уровень заряда батареи будет показан.

Рекомендуемые: