Spisu treści:

Czujnik WIFI MQTT/Google Home Flood/Water z ESP-01: 7 kroków
Czujnik WIFI MQTT/Google Home Flood/Water z ESP-01: 7 kroków

Wideo: Czujnik WIFI MQTT/Google Home Flood/Water z ESP-01: 7 kroków

Wideo: Czujnik WIFI MQTT/Google Home Flood/Water z ESP-01: 7 kroków
Wideo: Zigbee датчик задымления - тестируем бюджетный вариант для Tuya Smart и Home Assistant 2024, Listopad
Anonim
MQTT / Google Home Flood / Czujnik WIFI z ESP-01
MQTT / Google Home Flood / Czujnik WIFI z ESP-01

W tej instrukcji pokażę, jak zbudować czujnik zalania / wody wifi przy minimalnych kosztach. Cały projekt kosztuje mnie mniej niż 8 dolarów za części, które kupuję w serwisie eBay i moje istniejące części zamienne.

W tym projekcie użyjemy ESP-01, aby zapewnić Wifi i klienta MQTT do wykrywania obecności wody i opcjonalnie użyjemy bezpośrednio podłączonego głośnika/brzęczyka, aby zapewnić zlokalizowany alarm.

Moim konkretnym zastosowaniem w projekcie jest wykrywanie zalania/wody w studni pompy ściekowej, w przypadku awarii pompy ściekowej. Gdy woda zostanie wykryta przez 2 otwarte przewody, wyśle wiadomość do brokera MQTT. Broker MQTT następnie przekazuje wiadomość do NodeRED. Po otrzymaniu wiadomości MQTT, NodeRED wyśle ogłoszenie do wielu urządzeń Google Home, a także opcjonalnie wyśle wiadomość na telefon komórkowy/przeglądarkę za pomocą pushbullet

Teraz oczywiście ten projekt będzie działał tylko wtedy, gdy domowa elektryczność jest WŁĄCZONA. W następnej instrukcji zintegruję obwód podtrzymania bateryjnego. Ale jeśli zrobisz zasilacz w ten sam sposób, co ja, możesz po prostu podłączyć power-bank USB do podtrzymania bateryjnego. Jeśli masz powerbank, który umożliwia jednoczesne ładowanie i dostarczanie energii, to wszystko jest gotowe.

Używam RaspberryPi ZeroW do hostowania serwera Mosquitto MQTT i NodeRED. Działa od ponad roku bez żadnych problemów.

Referencje:Raspberry Pi:https://www.switchdoc.com/2016/02/tutorial-installi…Zainstaluj NodeRED na Raspberry Pi:

Krok 1: Części, których będziesz potrzebować

Części, których będziesz potrzebować
Części, których będziesz potrzebować
Części, których będziesz potrzebować
Części, których będziesz potrzebować
Części, których będziesz potrzebować
Części, których będziesz potrzebować

Lista części:

(1) ESP-01

(2) Rezystor 10K ohm

(1) generyczny tranzystor NPN małego sygnału (użyłem 2N3904)

(2) długie przewody

(1) ogólny zasilacz 5 V (ten obwód wymaga mniej niż 300 mA prądu)

(1) Moduł regulatora 3,3 V AMS1117

(1) Adapter Micro-USB na DIP Złącze żeńskie Konwerter PCB Zestaw do samodzielnego montażu

(1) Kabel USB-A do MicroUSB.

(1) 8-pinowe gniazdo IC - można pominąć, jeśli chcesz przylutować ESP-01 bezpośrednio do płytki drukowanej. Wytnij plastikowe mostki, które tworzą szczelinę między rzędami, a następnie sklej 2 rzędy razem, patrz zdjęcie.

(1) Mała obudowa do projektu

Poniżej znajdują się opcjonalne części, jeśli potrzebujesz zlokalizowanego alarmu za pomocą głośnika/brzęczyka

(1) Ogólny tranzystor PNP, wybierz zgodnie z wymaganiami głośnika / brzęczyka / mocy. W moim przypadku używam 2N2907, ponieważ mój głośnik ma tylko 0,3 W (8 omów), zapewniłby wystarczającą moc do napędzania głośnika. Możesz wybrać większy tranzystor i głośnik, jeśli chcesz głośniejszy dźwięk.

(1) Głośnik, patrz uwaga dotycząca tranzystora PNP powyżej

(1) Rezystor 100-110 omów

Krok 2: Schemat obwodu

Schemat obwodu
Schemat obwodu

Pierwszym krokiem byłoby stworzenie obwodu pokazanego na schemacie.

Zasilacz 3.3VDC zbudowałem wykorzystując starą ładowarkę do telefonów komórkowych 5V sprzężoną z regulatorem AMS1117 3.3VDC. Do gniazda ESP-01 używam standardowego 8-pinowego gniazda IC i wycinam plastikowe mostki, które tworzą szczelinę między rzędami, a następnie sklejam 2 rzędy.

Obwód, który zaprojektowałem, ma wykrywać obecność wody między dwoma przewodami. Gdy woda dotrze do końcówek obu przewodów, wytworzy rezystancję około 10K do 20K omów. Następnie szeregowo z 10 kiloomami R1, dostarcza niewielki prąd do podstawy Q1, powodując nasycenie Q1, przytrzymując GPIO-2 do masy. R1 jest niezbędny do zapewnienia ochrony Q1 na wypadek przypadkowego zwarcia na przewodach czujnikowych.

R2 to rezystor podciągający, aby umożliwić ESP-01 rozruch z pamięci flash.

Teraz dla opcjonalnego głośnika/brzęczyka, jeśli potrzebujesz tylko ESP-01 do mówienia MQTT i nie chcesz wdrażać tego zlokalizowanego alarmu, możesz usunąć R2, Q2, Głośnik i umieścić rezystor podciągający 10K między GPIO-0 i VCC.

Jeśli nie czujesz potrzeby używania żeńskiego adaptera Micro-USB na DIP, możesz przylutować przewody między 5V PS a modułem regulatora 3.3V. Wolę używać żeńskiego adaptera MicroUSB, więc mogę użyć dowolnej ogólnej ładowarki do telefonu komórkowego i kabla MicroUSB.

Krok 3: Budowanie obwodu

Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu

Przylutuj wszystkie komponenty i części do PCB zgodnie ze schematem obwodu na poprzedniej stronie i przytnij PCB na wymiar.

Umieść płytkę PCB w obudowie, która pasowałaby do płytki drukowanej i opcjonalnego głośnika. W moim przypadku wszystkie części zmieściłyby się do małej puszki na telefon, choć muszę trochę podgrzać pokrywę, żeby powstała wybrzuszenie, żeby zmieścił się moduł ESP-01.

Krok 4: Flashowanie ESP-01

W tym kroku sflashujemy ESP-01 ze szkicem arduino. Jeśli nigdy nie flashowałeś modułu ESP-01, możesz postępować zgodnie z moimi instrukcjami, aby zacząć:

Mój szkic można znaleźć na mojej stronie github:

W szkicu musisz co najmniej zmienić następujące informacje dotyczące Twojej sieci domowej/konfiguracji:

#define MQTT_SERVER "10.0.0.30"const char* ssid1 = "SSID";const char* password1 = "MójHasło";const char* ssid2 = "SSID1";const char* hasło2 = "MójHasło";

W mojej sieci domowej mam 2 różne punkty dostępowe, które nadają 2 różne identyfikatory SSID, a ten szkic umożliwiłby redundancję, łącząc się z następnym identyfikatorem SSID, jeśli komunikacja z bieżącym AP zostanie utracona. Jeśli masz tylko jeden identyfikator SSID, wypełnij ssid1 i ssid2 tą samą wartością.

Po dokonaniu modyfikacji prześlij szkic do ESP-01 i podłącz ESP-01 do płyty interfejsu.

Krok 5: Uruchom test

Aby sprawdzić, czy nasz projekt działa, najprościej byłoby monitorować komunikaty MQTT w sieci. Aby to zrobić, musisz otworzyć sesję SSH do brokera mosquitto i wydać następujące polecenie:

mosquitto_sub -v -t '#'

Powyższe polecenie pozwoliłoby nam zobaczyć wszystkie wiadomości MQTT przychodzące do brokera.

Teraz włącz nasz obwód, a jeśli wszystko działa, za kilka sekund powinieneś przynajmniej zobaczyć następujący komunikat MQTT:

stat/SumpWaterSensor/LWT Online

Teraz przetestuj czujnik wody, zanurzając 2 przewody czujnikowe w kubku z wodą, a powinieneś zobaczyć ten komunikat:

Tele/SumpWaterSensor WET

A jeśli wyciągniesz przewody z wody, powinieneś zobaczyć ten komunikat:

Tele/SumpWaterSensor DRY

Jeśli widzisz te wiadomości, Twój projekt jest sukcesem.

W szkicu zawarłem również kilka przydatnych tematów MQTT, z których możesz skorzystać:

"stat/SumpWaterSensorInfo": ta wiadomość jest wysyłana co minutę, aby zapewnić dostępność i inne informacje.

"cmnd/SumpWaterSensorInfo": ESP-01 wyśle informacje, jeśli otrzyma ten temat z wartością '1' (ascii=49)

"cmnd/SumpWaterSensorCPUrestart": ESP-01 uruchomi się ponownie, jeśli otrzyma ten temat z wartością '1' (ascii=49)

"cmnd/SumpWaterSensorBeep": ESP-01 uruchomi głośnik, jeśli otrzyma ten temat z wartością '1' (ascii=49)

"cmnd/SumpWaterSensorBeepFreq": Ustawia częstotliwość alarmu głośnika, domyślnie = 900 (Hz)

"cmnd/SumpWaterSensorDebug": Włącz i ustaw poziom debugowania szeregowego (domyślnie 0 - brak debugowania)

Krok 6: Zamontuj czujnik

Zamontuj czujnik
Zamontuj czujnik
Zamontuj czujnik
Zamontuj czujnik

W mojej aplikacji chcę monitorować poziom wody w studni pompy ściekowej i powiadamiać mnie, jeśli woda sięga powyżej wyłącznika pływakowego pompy ściekowej, co oznacza, że moja pompa nie działa. Poprowadziłem przewody i za pomocą opasek do drutu przymocowałem go wzdłuż rury spustowej.

Krok 7: Ostateczny dotyk

Ostatni dotyk
Ostatni dotyk

Teraz, gdy projekt już działa i jesteśmy w stanie opublikować wiadomość MQTT do brokera, następnym krokiem jest zastanowienie się, co z tym zrobić.

W moim projekcie używam Node-RED do słuchania/subskrybowania tematu MQTT "tele/SumpWaterSensor" i informowania kilku głośników Google Home, jeśli zostanie wykryta woda. Oprócz tego połączyłem również przepływ z węzłem pushbullet, aby wysłać powiadomienie na mój telefon z Androidem.

Stworzyłem również webowy interfejs, aby zobaczyć stan czujnika (włączony/offline, czas pracy itp.). Czasami widziałem, że wyłącza się kilka razy w ciągu tygodnia, ze statystyk, wiele razy jest to spowodowane rozłączeniem ESP-01 z Wi-Fi lub MQTT. Ale nie martw się, mój szkic zawiera procedurę ponownego uruchomienia ESP-01, jeśli nadal nie udaje się połączyć z brokerem WIFI i/lub MQTT.

Obraz na tym etapie pokazuje przepływ Węzeł-CZERWONY, aby to osiągnąć. Możesz również wkleić przepływ z mojej strony github do swojego Node-RED:

Ogłoszenie domowe Google to tylko jeden przykład tego projektu, ale myślę, że jest najbardziej użyteczny i praktyczny. Zawsze możesz połączyć się z innym słuchaczem MQTT, a nawet użyć IFTTT do sterowania innymi urządzeniami po wykryciu wody.

Baw się dobrze…

Zalecana: