Spisu treści:
- Krok 1: Materiały eksploatacyjne
- Krok 2: Schemat spiekania
- Krok 3: Przygotuj Raspberry Pi
- Krok 4: Model bazy danych - MySQL
- Krok 5: Frontend: Konfiguracja serwera WWW
- Krok 6: Backend
- Krok 7: Umieszczenie taśmy LED
- Krok 8: Umieszczenie probówek
- Krok 9: Umieszczanie wyświetlacza LCD
- Krok 10: Umieszczenie czujników i podłączenie taśmy LED
- Krok 11: Okablowanie Pi
- Krok 12: Przygotowanie pojemnika na wodę
- Krok 13: Wynik końcowy
Wideo: Automatyczna doniczka na rośliny - Mały ogród: 13 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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
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
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
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:
- aktualizacja sudo apt-get
- 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
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
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
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
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
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
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
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ę
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
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:
Inteligentny ogród IoT: 10 kroków (ze zdjęciami)
Inteligentny ogród IoT: Jeśli jesteś podobny do mnie, lubisz świeże owoce i warzywa na talerzu, ale nie masz wystarczająco dużo czasu, aby utrzymać przyzwoity ogród. Ta instrukcja pokaże Ci, jak zbudować inteligentny ogród IoT (nazywam go: Zielona Straż), który podle
Automatyczna doniczka Smart Plant - (DIY, wydruk 3D, Arduino, samonawadnianie, projekt): 23 kroki (ze zdjęciami)
Automatyczna doniczka Smart Plant - (DIY, 3D Print, Arduino, Self Watering, Project): Witam,Czasami, gdy wyjeżdżamy z domu na kilka dni lub jesteśmy naprawdę zajęci, rośliny domowe (niesprawiedliwie) cierpią, ponieważ nie są podlewane, gdy są potrzebuję tego. To jest moje rozwiązanie. To Smart Plant Pot, który zawiera: Wbudowany zbiornik na wodę. Senso
DIY konfigurowalna doniczka do samodzielnego podlewania (druk 3D): 14 kroków (ze zdjęciami)
DIY Konfigurowalna doniczka do samodzielnego podlewania (druk 3D): Ten projekt został w całości wykonany w TinkerCAD. Jest to bardzo łatwy proces tworzenia konfigurowalnej donicy z prostym obrazem! Donica jest również samonawadniająca.W tym projekcie będziesz używać TinkerCAD, to darmowe oprogramowanie CAD, które jest bardzo łatwe w użyciu
FEDORA 1.0, inteligentna doniczka: 8 kroków (ze zdjęciami)
FEDORA 1.0, inteligentna doniczka: FEDORA lub Flower Environment Decorating Organic Result Analyzer to inteligentna doniczka do ogrodnictwa w pomieszczeniach. FEDORA to nie tylko doniczka, może pełnić funkcję budzika, bezprzewodowego odtwarzacza muzyki i małego przyjaciela robota. Główną cechą
Podlewanie rośliny za pomocą Arduino: 5 kroków (ze zdjęciami)
Podlewanie rośliny za pomocą Arduino: Czy masz roślinę doniczkową, którą lubisz, ale zapomnij o podlewaniu jej zbyt często? Ten instruktaż wyjaśni, jak stworzyć system nawadniania roślin zasilany przez Arduino i jak nadać roślinie nieco więcej osobowości. Po wykonaniu tej instrukcji