Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Zrobiłem "inteligentne" terrarium/wiwarium jako projekt szkolny.
ElectroTerra jest obsługiwany przez Raspberry Pi, który obsługuje stronę internetową i przechowuje dane zebrane z czujników w bazie danych MariaDB.
Strona pokazuje temperaturę i wilgotność względną z czujników oraz umożliwia sterowanie wentylatorem i taśmą LED. Ten pasek może również działać automatycznie z czujnikiem LDR.
Zakładam praktyczną znajomość obsługi Raspberry Pi, Arduino, MariaDB (Mysql) oraz okablowania płytek stykowych.
Kieszonkowe dzieci
Zrobiłem listę materiałów, dzięki czemu można znaleźć wszystko, co potrzebne do tego projektu.
Krok 1: Konfiguracja Raspberry Pi
Najpierw musisz skonfigurować podstawy Raspberry Pi:
Użyłem połączenia ssh do sterowania Pi za pomocą laptopa:
Do kodowania użyłem Visual Studio Code z rozszerzeniem ssh:
Aby udostępnić stronę internetową w swojej sieci prywatnej, możesz sprawdzić tę instrukcję od kroku 1 - 3: https://www.instructables.com/id/Host-your-website-on-Raspberry-pi/ Nie ma dodatkowej wersji zabezpieczeń w tym projekcie, więc uważaj na ujawnienie go w Internecie.
Krok 2: Tworzenie obwodu elektronicznego
W schemacie fritzowania możesz zobaczyć każdy potrzebny element w tym projekcie. Czujnik temperatury 1-przewodowy można zastąpić wbudowanym czujnikiem temperatury DHT22.
Arduino jest zasilane przez Pi za pomocą kabla USB.
Krok 3: Arduino + programowanie
Ponieważ funkcje w bibliotekach Arduino dla DHT22 i sterownika taśmy LED są bardzo rozbudowane, postanowiłem dodać Arduino do tych części.
Dlatego potrzebujesz Arduino IDE.
Pamiętaj, aby zaimportować te biblioteki:
- Biblioteka DHT:
- RGBdriver: w repozytorium github electroterra
Krok 4: Testowanie czujników i elementów wykonawczych na Pi
W repozytorium Github znajdują się pliki testowe dla poszczególnych komponentów.
Są to klasy: mcp.py (pokrywający dane analogowe z LDR) pcf.py (komunikujące dane I2C) oraz pcf_lcd.py (interfejs z LCD).
Krok 5: Baza danych
Utwórz bazę danych electroterra na Mysql worckbench za pomocą pliku zrzutu (final_dump_electroterra.sql w repozytorium Github) z danymi testowymi.
Wystąpił problem ze zgodnością przy użyciu kreatora "Forward Engineer to Database" w Mysql Workbench. Pamiętaj, aby usunąć parametr VISIBLE z instrukcji sql, ponieważ nie działa to w MariaDB.
Krok 6: Frontend
Kod HTML, CSS i Javascript można znaleźć w repozytorium Github. Należy je umieścić w katalogu, w którym będzie hostowana witryna. Projekt jest zoptymalizowany do użytku mobilnego i został przetestowany na najnowszych stabilnych wersjach Chrome, Firefox i Edge.
Krok 7: Backend
Kod app.py, datarepository.py i Database.py musi znajdować się w katalogu domowym użytkownika Pi. Aby Pi uruchomić plik automatycznie przy ponownym uruchomieniu, skorzystaj z tych instrukcji:
Kod znajdziesz w repozytorium github:
Krok 8: Łączenie rzeczy
Ta konfiguracja jest dowodem koncepcji.
Wentylator mocuje się za pomocą gorącego kleju. W listwie wentylacyjnej wywiercono dodatkowe otwory na okablowanie.
Następne było pudełko do przechowywania części elektronicznych. Zastosowano proste plastikowe pudełko. Rozważ dodanie listwy wentylacyjnej w przypadku przegrzania.
Krok 9: Testowanie
Włącz Raspberry Pi i zasilacze.
Przejdź do adresu IP pokazanego na wyświetlaczu LCD.
Dzięki temu możesz monitorować dane i sterować elementami wykonawczymi.