Spisu treści:

Automatyzacja szklarni: 11 kroków
Automatyzacja szklarni: 11 kroków

Wideo: Automatyzacja szklarni: 11 kroków

Wideo: Automatyzacja szklarni: 11 kroków
Wideo: Mocna SZKLARNIA / TUNEL z Poliwęglanu na lata ! ! ! - jak zmontować szklarnie z Poliwęglanu ? 2024, Lipiec
Anonim
Automatyka szklarni
Automatyka szklarni

Automatyka szklarniowa to projekt, w którym trzy parametry szklarni, tj. Wilgotność gleby, Temperatura i Wilgotność są monitorowane przez użytkownika zdalnie za pomocą przeglądarki internetowej.

Krok 1: Wymagane komponenty

Wymagane komponenty
Wymagane komponenty
Wymagane komponenty
Wymagane komponenty
Wymagane komponenty
Wymagane komponenty

Niektóre niezbędne elementy są wymienione poniżej

1. Raspberry PI Model B

2. Płyta rozwojowa NodeMCU

3. Moduł Wifi ESP8266

4. Czujnik wilgoci

5. Czujnik temperatury i wilgotności DHT11

6. Przekaźnik jednokanałowy 5 V

7. Zatapialna pompa wodna 5 V

8. Deska do chleba

9. Moduł zasilania płyty chlebowej

Krok 2: Język i protokół

Język i protokół
Język i protokół
Język i protokół
Język i protokół
Język i protokół
Język i protokół
  • Język C jest używany dla mikrokontrolerów.
  • Komunikaty MQTT: MQTT to skrót od MQ Telemetry Transport. Jest to niezwykle prosty i lekki protokół przesyłania wiadomości typu publikuj/subskrybuj, zaprojektowany dla urządzeń z ograniczeniami oraz sieci o niskiej przepustowości, dużych opóźnieniach lub zawodnych. Zasady projektowania mają na celu zminimalizowanie przepustowości sieci i wymagań dotyczących zasobów urządzenia, przy jednoczesnym dążeniu do zapewnienia niezawodności i pewnego stopnia pewności dostarczania. Zasady te okazują się również sprawiać, że protokół jest idealny dla wyłaniającego się świata połączonych urządzeń typu „machine-to-machine” (M2M) lub „Internet of Things” oraz dla aplikacji mobilnych, w których przepustowość i moc baterii są na wagę złota.
  • Program w języku Python służy do automatyzacji przepływu wody i łączności z bazą danych.

Krok 3: Eclipse Mosquitto Broker MQTT

Eclipse Mosquitto Broker MQTT
Eclipse Mosquitto Broker MQTT

Tutaj użyłem Mosquitto MQTT Broker do łatwej komunikacji wiadomości między węzłami.

Eclipse Mosquitto to broker komunikatów typu open source (na licencji EPL/EDL), który implementuje protokół MQTT w wersjach 5.0, 3.1.1 i 3.1. Mosquitto jest lekki i nadaje się do użytku na wszystkich urządzeniach, od komputerów jednopłytowych o małej mocy po pełne serwery.

Protokół MQTT zapewnia uproszczoną metodę przesyłania wiadomości przy użyciu modelu publikowania/subskrybowania. Dzięki temu nadaje się do przesyłania wiadomości w Internecie rzeczy, takich jak czujniki o niskim poborze mocy lub urządzenia mobilne, takie jak telefony, komputery wbudowane lub mikrokontrolery.

Projekt Mosquitto dostarcza również bibliotekę C do implementacji klientów MQTT oraz bardzo popularnych klientów MQTT wiersza poleceń mosquitto_pub i mosquitto_sub.

Krok 4: Przepływ danych w całym projekcie

Na powyższym obrazku węzły są

  1. WęzełMCU
  2. Malina PI
  3. ESP8266

NodeMCU to część czujnikowa zielonego domu, a ESP8266 to część uruchamiająca, która dostarcza wodę, gdy ziemia potrzebuje wody zgodnie z czujnikami.

Raspberry PI zawiera Mosquitto Broker i klienta Pythona, który subskrybuje wiadomości przychodzące od MQTT Broker i przechowuje dane na serwerze SQL.

Krok 5: Połączenie czujników z NodeMCU

Połączenie czujników z NodeMCU
Połączenie czujników z NodeMCU

Czujnik temperatury i wilgotności DHT11 oraz czujnik wilgotności wody mogą pracować przy napięciu 3,3 V.

NodeMCU nie może zapewnić więcej niż 3,3 wolta. Dzięki temu czujniki mogą być bezpośrednio połączone z płytką mikrokontrolera NodeMCU.

Krok 6: Podłączanie zatapialnej pompy wodnej z ESP8266

Połączenie zatapialnej pompy wodnej z ESP8266
Połączenie zatapialnej pompy wodnej z ESP8266
Połączenie zatapialnej pompy wodnej z ESP8266
Połączenie zatapialnej pompy wodnej z ESP8266

Zatapialna pompa wodna służy do dostarczania wody w razie potrzeby.

Pompa wody potrzebuje do pracy zasilania 5 V.

Do podłączenia silnika potrzebny jest przekaźnik jednokanałowy. Gdy pin GPIO2 ESP8266 jest aktywowany, przekaźnik włącza się i automatycznie dostarcza wodę za pomocą zanurzalnej pompy wodnej.

Tutaj zewnętrzne zasilanie jest dostarczane do płyty ESP8266, przekaźnika i zatapialnej pompy wodnej.

Moje kompletne połączenie sprzętowe znajduje się na powyższym obrazku.

Krok 7: Instalacja Mosquitto Broker i uruchomienie programu Python w Raspberry Pi

Poniżej przedstawiono kroki instalacji brokera Mosquitto w Raspberry PI

Otwórz terminal i wpisz następujące polecenia

sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa

aktualizacja sudo apt-get

sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

Powinien automatycznie uruchomić komara.

Aby zatrzymać i uruchomić usługę, której potrzebowałem

usługa sudo zatrzymuje komary

usługa sudo uruchamia komara

Większość stron, które odkryłem, używa tego formatu.

sudo /etc/init.d/mosquitto stop

Krok 8: Jak działa MQTT?

Jak działa MQTT?
Jak działa MQTT?

MQTT to jeden z najczęściej używanych protokołów w projektach IoT. Oznacza transport telemetrii kolejkowania wiadomości.

Ponadto został zaprojektowany jako lekki protokół przesyłania wiadomości, który wykorzystuje operacje publikowania/subskrybowania do wymiany danych między klientami a serwerem. Co więcej, jego mały rozmiar, niskie zużycie energii, zminimalizowane pakiety danych i łatwość implementacji sprawiają, że protokół ten jest idealny dla świata „maszyna-maszyna” lub „internetu rzeczy”.

Jak każdy inny protokół internetowy, MQTT opiera się na klientach i serwerze. Podobnie serwer to facet, który jest odpowiedzialny za obsługę żądań klienta o odbieranie lub wysyłanie danych między sobą. Serwer MQTT nazywa się brokerem, a klienci to po prostu podłączone urządzenia. Tak więc:

* Gdy urządzenie (klient) chce przesłać dane do brokera, nazywamy tę operację „publikacją”.

* Gdy urządzenie (klient) chce otrzymać dane od brokera, nazywamy tę operację „subskrypcją”.

Krok 9: Programowanie NodeMCU i ESP8266

Poniżej znajduje się kod źródłowy dla płyty mikrokontrolera NodeMCU i ESP8266

Krok 10: Projektowanie strony internetowej i łączenie się z bazą danych SQL

Strona internetowa została zaprojektowana w języku HTML, CSS i PHP.

PHP służy do wyodrębniania odczytów czujników z bazy danych i wyświetlania ich na stronie HTML.

Sercem tego projektu jest program Python.

Prace, które wykonuje program Pythona, są następujące.

  1. Zapisuje się do tematu, w którym czujnik wysyła odczyty czujnika.
  2. Publikuje polecenie włączenia/wyłączenia pompy wodnej do brokera MQTT.
  3. Przechowuje odczyt czujnika w bazie danych SQL.

Tutaj w moim przypadku program python i baza danych SQL są obecne w laptopie. Strona internetowa działająca na lokalnym hoście.

Poniżej znajduje się kod źródłowy mojego programu Pythona.

Krok 11: Zakończ pracę

Kompletna praca
Kompletna praca

Poniżej przedstawiono kroki, w których proces przebiega.

  1. NodeMCU działa jako część czujnikowa i odczytuje temperaturę, wilgotność i poziom wilgotności gleby.
  2. Wysyła odczyty do brokera MQTT z tematem „Temat 1”
  3. W laptopie uruchomiony program python i subskrybuje temat "Temat 1" z brokerem MQTT.
  4. Gdy NodeMCU wysyła odczyty, broker Mosquitto MQTT natychmiast wysyła dane do programu Pythona.
  5. Następnie program Python oblicza, czy w Zielonym Domu jest potrzebna woda. Następnie zapisuje odczyty w bazie danych SQL.
  6. Jeśli woda jest potrzebna w Zielonym Domu, program pytona publikuje komunikat o włączeniu/wyłączeniu pompy wodnej do brokera Mosquitto MQTT z tematem „Temat 2”
  7. ESP8266 działa jako siłownik. Zapisuje się w temacie "Temat 2", w którym program python publikuje wiadomość. Gdy program Pythona opublikuje jakąkolwiek wiadomość, wiadomość natychmiast zostanie przeniesiona do ESP8266. Zgodnie z komunikatem on/off włączał/wyłączał zatapialną pompę wody.
  8. Ostatnia faza wyświetlania odczytów na żywo na stronie internetowej. Strona internetowa pobiera dane z bazy SQL, w której program python przechowuje dane bezpośrednio i wyświetla odczyty na stronie.

Zalecana: