Spisu treści:

Automatyczna doniczka na rośliny - Mały ogród: 13 kroków (ze zdjęciami)
Automatyczna doniczka na rośliny - Mały ogród: 13 kroków (ze zdjęciami)

Wideo: Automatyczna doniczka na rośliny - Mały ogród: 13 kroków (ze zdjęciami)

Wideo: Automatyczna doniczka na rośliny - Mały ogród: 13 kroków (ze zdjęciami)
Wideo: Zrób To Sama (DIY) odc. nr 3 Ogród w szkle - Szybkie Metamorfozy 2024, Czerwiec
Anonim
Automatyczna doniczka - Little Garden
Automatyczna doniczka - Little Garden

Jestem studentem multimediów i technologii komunikacyjnych w Howest Kortrijk. Aby wykonać nasze ostatnie zadanie, musieliśmy opracować wybrany przez nas projekt IoT.

Rozglądając się za pomysłami, postanowiłem zrobić coś przydatnego dla mojej mamy, która uwielbia hodować rośliny i zaczęłam pracować nad automatyczną doniczką.

Główne zadania tej automatycznej doniczki Little Garden to:

  • Zmierz

    • Temperatura
    • Natężenie światła
    • Wilgotność
    • Wilgotność gleby

Zapisz pomiary w bazie danych

Popraw warunki wzrostu roślin, jeśli pewna wartość jest zbyt niska

Pozwól, aby urządzenie było monitorowane i zarządzane przez stronę internetową

Nie każdy krok musi iść do celu. Wiele z tego, co się dzieje, może być twoimi osobistymi preferencjami lub można je poprawić. Ta konfiguracja została stworzona w taki sposób, aby części można było później odzyskać, więc możesz podejść do swojej iteracji w inny sposób, aby była bardziej trwała

Krok 1: Materiały eksploatacyjne

Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci
Kieszonkowe dzieci

Większość materiałów do tego projektu nie jest trudna do zdobycia, chociaż w moim przypadku pracowałem z dużą ilością materiałów pochodzących z recyklingu. Musiałem też zapewnić sobie później możliwość odzyskania niektórych materiałów.

Komponenty podstawowe:

  • Raspberry Pi 4 model B
  • Zasilacz Raspberry Pi
  • T-szewc Raspberry Pi
  • Karta microSD o pojemności 16 GB
  • Zasilanie płytki do krojenia chleba 3,3V i 5V
  • Deska do krojenia chleba
  • Zasilanie 12V

Czujniki:

  • DHT11: czujnik wilgotności i temperatury
  • BH1750: Czujnik natężenia światła
  • Czujnik wilgotności gleby
  • MCP3008

Komponenty siłownika:

  • Pompa wodna 220 V
  • Taśma LED 12V
  • Moduł przekaźnikowy Velleman
  • WSKAZÓWKA 50: Tranzystor NPN
  • Wyświetlacz 16X2 LCD-moduł
  • PCF8574a

Rezystory:

  • Rezystory 3 x 330 Ohm
  • Rezystor 1x5 k Ohm
  • Rezystory 2 x 10 kΩ
  • Rezystor 1 x 1 k Ohm
  • Rezystor potencjometryczny 1x10 k

Materiały:

  • Prefabrykowana szklarnia/doniczka
  • Skrzynka przyłączeniowa
  • Plastikowa butelka na wodę
  • Krętliki
  • Przewody połączeniowe + zwykły przewód
  • Śruby
  • Cyna lutownicza + rurki termokurczliwe
  • Dwustronna taśma klejąca
  • Farba

Narzędzia:

  • Pistolet na klej
  • Wiertarka
  • Ostrze piły
  • Lutownica
  • Nóż do tektury
  • Pędzel

Fajną rzeczą w tym projekcie jest to, że można go rozszerzyć lub uprościć, dodając/usuwając komponenty i nieznacznie poprawiając kod. Na przykład, zastępując pompę 220 V pompą 12 V, możesz usunąć zasilacz z urządzenia.

Krok 2: Schemat spiekania

Schemat spiekania
Schemat spiekania
Schemat spiekania
Schemat spiekania

Płytka stykowa i schematy elektryczne urządzenia pokazano powyżej. Tutaj możesz zobaczyć, jak wszystkie komponenty są ze sobą połączone.

Ogólne wyjaśnienie działania komponentów:

  • DHT11 mierzy wilgotność powietrza w % i temperaturę w °C. Komunikacja z nim jest obsługiwana przez bu I2C.
  • BH1750 mierzy natężenie światła w luksach. Komunikacja jest obsługiwana przez magistralę I2C
  • Czujnik wilgotności gleby generuje sygnał cyfrowy, który jest konwertowany przez MCP3008 na czytelny sygnał cyfrowy dla Raspberry Pi
  • Moduł LCD 16x2 wyświetla adresy IP z Pi, jeden po drugim. Jest podłączony do PCF8574a, który odbiera sygnał z Raspberry Pi, który konwertuje go na szereg sygnałów dla pinów bitowych wyświetlacza. Piny E i RS z LCD są podłączone bezpośrednio do Pi. Rezystor potencjometryczny określa jasność ekranu.
  • Pompa wody jest podłączona do przekaźnika, który znajduje się między nią a zasilaniem/gniazdem 220V. Raspberry Pi może wysłać sygnał do przekaźnika, aby zamknąć obwód elektryczny i włączyć pompę.
  • Taśma LED jest podłączona do zasilacza 12V i TIP 50 (tranzystor NPN), który przełącza prąd elektryczny. Rezystor 1k Ohm służy do ograniczenia mocy pobieranej z Raspberry Pi, w przeciwnym razie byłby bardzo chrupiący.

Krok 3: Przygotuj Raspberry Pi

Przygotuj Raspberry Pi
Przygotuj Raspberry Pi

Jeśli jeszcze go nie masz, musisz umieścić jeden z obrazów Raspberry Pi OS na karcie SD. Nie polecam używania Lite, ponieważ powodowało to problemy na początku. Następnie będziesz musiał upewnić się, że Twoje Pi jest aktualne, używając następujących poleceń, gdy Pi jest połączone z Internetem:

  1. aktualizacja sudo apt-get
  2. sudo apt-get upgrade

Następnie możesz włączyć lub zainstalować pakiety, aby projekt działał, za pomocą raspi-config lub poleceń.

  • SPI
  • I2C
  • MySQL: następny krok
  • SocketIO: pip install flask-socketio

Po zakończeniu konfiguracji możesz dodać potrzebne pliki napisane w html, CSS, Javascript i Python. Cały mój kod można znaleźć w moim repozytorium github.

Krok 4: Model bazy danych - MySQL

Model bazy danych - MySQL
Model bazy danych - MySQL

Powyżej możesz zobaczyć diagram ERD, który jest hostowany przez MariaDB. Polecam postępować zgodnie z tym przewodnikiem instalacji MariaDB, nie tylko w celu zainstalowania MariaDB, ale także w celu upewnienia się, że Twoje Pi jest chronione.

Dla osób, które chciałyby zrozumieć, baza danych działa w następujący sposób:

Pomiary i przełączniki siłownika są przechowywane jako wiersze w tabeli Metingen.

  • metingId = identyfikator wiersza pomiaru/przełączania
  • deviceId = identyfikator urządzenia odpowiedzialnego za ten wiersz w tabeli
  • wararde = wartość pomiaru czujnika lub przełącznika siłownika
    • czujnik: wartość pomiaru w odpowiednich jednostkach
    • siłowniki: 0 = WYŁ i 1 = WŁ
  • commentaar = komentarze używane do dodawania dodatkowych informacji, takich jak błędy
  • datum = data i godzina wykonania pomiaru/przełączenia

Ustawienia urządzenia są przechowywane w Ustawieniach.

  • settingId = identyfikator tego wiersza i wartość ustawienia
  • deviceID = identyfikator odpowiedniego urządzenia/czujnika
  • wararde = wartość ustawienia
  • type = rodzaj ustawienia, maksymalna czy minimalna?

Wreszcie tabela Urządzenia zawiera informacje o czujnikach i aktuatorach.

  • deviceId = identyfikator urządzenia w tej tabeli
  • naam = nazwa urządzenia/komponentu
  • marka = marka
  • prijs = cena składnika
  • beschrijving = podsumowanie składnika
  • eenheid = jednostka mierzonych wartości
  • typeDevice = określa, czy komponent jest czujnikiem czy aktuatorem

Krok 5: Frontend: Konfiguracja serwera WWW

Frontend: konfiguracja serwera WWW
Frontend: konfiguracja serwera WWW

Pi będzie wymagać zainstalowania serwera WWW Apache w celu uruchomienia serwera WWW dla tego urządzenia. Można to zrobić za pomocą następującego polecenia:

sudo apt-get zainstaluj apache2.

Gdy to zrobisz, możesz przejść do folderu: /var/www/html. Tutaj będziesz musiał umieścić cały kod frontendu. Następnie możesz uzyskać dostęp do strony internetowej, przechodząc do adresu IP.

Krok 6: Backend

Aby uruchomić backend, musisz uruchomić plik app.py, ręcznie lub tworząc dla niego usługę na Pi, aby uruchamiał się automatycznie.

Jak możesz zauważyć, jest sporo plików. Oddzieliłem kod tak bardzo, jak mogłem, aby mieć jasny przegląd i organizację kodu.

Krótkie wyjaśnienie:

app.py: Główny plik, w którym połączona jest baza danych, kod sprzętu i kod zaplecza

config.py: plik konfiguracyjny dla databaseRepositories

Repozytoria: Aby uzyskać dostęp do repozytorium danych

  • Pomocnik

    • devices_id: klasy pomagające zidentyfikować informacje o urządzeniu w bazie danych
    • lcd: do uruchomienia PCF i LCD
    • Siłowniki: zajęcia z obsługi siłowników
    • Czujniki: zajęcia z obsługi czujników

Krok 7: Umieszczenie taśmy LED

Umieszczanie taśmy LED
Umieszczanie taśmy LED

Odciąłem kawałek taśmy LED i przykleiłem go do górnej części skrzynki szklarniowej. Pasek, którego użyłem, można przyciąć w wielu pozycjach i ponownie połączyć, dzięki czemu można umieścić wiele pasków, a następnie połączyć je ponownie za pomocą przewodów, co pozwoli na oświetlenie większej ilości miejsca.

Krok 8: Umieszczenie probówek

Umieszczanie rur
Umieszczanie rur

Lampy można było ustawić na kilka sposobów, ale w moim przypadku przymocowałem je z boku dna, trzymając je jak najdalej od reszty elektroniki i pozwalając wodzie po prostu spływać w brud.

Krok 9: Umieszczanie wyświetlacza LCD

Umieszczanie LCD
Umieszczanie LCD

Wyciąłem brzeszczotem w pokrywie puszki połączeniowej otwór na tyle duży, by mógł się przez niego przeniknąć wyświetlacz, ale na tyle mały, by płytka pozostała za nim. Następnie został przymocowany do wieczka za pomocą skosów.

Wyświetlacz LCD wyświetla adresy IP Raspberry Pi, dzięki czemu można dowiedzieć się, jakiego adresu możesz użyć do surfowania po stronie.

Krok 10: Umieszczenie czujników i podłączenie taśmy LED

Umieszczenie czujników i podłączenie taśmy LED
Umieszczenie czujników i podłączenie taśmy LED
Umieszczenie czujników i podłączenie taśmy LED
Umieszczenie czujników i podłączenie taśmy LED

Korzystając ze schematów fritzowania, przylutowałem połączenia między przewodami i umieściłem oporniki wewnątrz przewodów, używając do ich izolacji rurek termokurczliwych.

W bokach pokrywy i spodzie szklarni wycięto otwory do mocowania krętlików, przez które przeciągnąłem przewody do czujników i taśmy LED.

Pogrupowałem przewody według funkcji. Napięcie przewodów i samych rurek termokurczliwych utrzymywało czujniki. Musiałem tylko użyć kleju na przewodach dla DHT11, ponieważ to się rozszerzyło.

Krok 11: Okablowanie Pi

Okablowanie Pi
Okablowanie Pi
Okablowanie Pi
Okablowanie Pi
Okablowanie Pi
Okablowanie Pi

Wyciąłem otwory z boku puszki połączeniowej, aby umożliwić późniejsze przejście przewodów.

Następnie umieściłem płytkę stykową (z T-cobblerem, PCF8574a, MCP3008, regulowaną rezystancją i TIP50), przekaźnik i Raspberry Pi na dole puszki połączeniowej, która została przykryta dwustronną taśmą klejącą. Zasilacz nie mieścił się na płytce stykowej, więc musiałem go odłożyć na bok i za pomocą przewodów połączeniowych podłączyć go do płytki stykowej.

Na koniec przeciągnąłem przewody adaptera, czujnika i siłownika przez otwory łączące przewody z płytką stykową, Raspberry Pi i innymi podzespołami. Przewód pompy został rozcięty, abym mógł umieścić końcówki wewnątrz przekaźnika, aby mógł służyć jako przełącznik.

Krok 12: Przygotowanie pojemnika na wodę

Robienie pojemnika na wodę
Robienie pojemnika na wodę

Pojemnik na wodę wykonałem z plastikowej butelki o pojemności 1l, wycinając górną część nożem do kartonów i malując go dla lepszego wyglądu. Następnie w środku umieszczono pompę wodną. Z powodu zasady naczyń połączonych woda może potencjalnie samodzielnie przepływać przez rury, ale trzymanie rury w górze rozwiązuje problem.

Krok 13: Wynik końcowy

Ostateczny wynik
Ostateczny wynik
Ostateczny wynik
Ostateczny wynik

Moment, na który czekałeś. Teraz możesz umieścić brud i nasiona w pudełku szklarni i pozwolić urządzeniu przejąć kontrolę. Możesz monitorować stan urządzenia ze strony internetowej i ustawiać optymalne wartości dla warunków oświetleniowych i glebowych.

Polecam najpierw ręcznie podlać glebę, ponieważ niektóre zabrudzenia mogą początkowo być dość suche. Niektóre pompy również wydają się nawadniać dość powoli, ale musisz być bardzo ostrożny, ponieważ napełniają się szybciej, niż można by się spodziewać. Nasycenie powyżej 80% może sprawić, że ziemia będzie bardzo rozmoczona. I upewnij się, że czujnik wilgotności gleby jest wystarczająco głęboki.

Zalecana: