Cześć z tej strony Jakub,
Chciałbym przedstawić ci mój projekt sterownika do akwarium dla mojego żółwia. Pomysł na sam sterownik, zrodził się podczas znalezienia w skrzynce z modułami moduł esp8266. Stwierdziłem że, warto go więc wykorzystać do akwarium mojego żółwia.
Uwaga projekt wykorzystuje niebezpieczne dla życia napięcie 220v
Zamów płytkę drukowaną na www.pcbway.com
Potrzebne materiały:
- moduł esp8266 moduł
- (opcjonalnie) podstawka do modułu podstawka
- przekaźnik 2 kanałowy przekaźnik
- zasilacz 5v lub ładowarka min 200mAh np. taki choć ten jest za duży zasilacz
- przetwornica step down przetwornica lub lm317 stabilizator 3.3v
- klika przewodów męsko-żeńskie żeńsko-żeńskie
- kabel zasilający z wtykiem (wymontowany np. z starego zasilacza atx)
- przełącznik np. przełącznik
- wtyk lub dwa wtyki gniazdka sieciowego
- jakaś obudowa (w moim przypadku plastikowa obudowa szynowa)
- kondensator 1000 UF, kilka rezystorów
- kostki elektryczne, opaski termokurczliwe, przewody sieciowe
Budowa:
W obudowie wycinamy otwory na gniazdo sieciowe od atx, przełącznik oraz kable z wtyczkami sieciowymi (w moim przypadku żarówka podłączona jest na kablu na stałe, kabel od pompki podłączam do wtyczki).
Schemat:
lub jak kto woli…
Na początek nie mogłem znaleźć z programie symbolu żarówki więc użyłem diody, uwaga nie podłączaj diody pod napięcie sieciowe. Podłączenie jest dość proste na początku do gniazda napięcia 5-12v podłączamy napięcie, przechodzi przez włącznik i trafia na stabilizator 3.3v dla esp8266 oraz bezpośrednio do zasilania modułu przekaźników. Piny modułu przekaźnika podłączamy kolejno pod piny GPIO12 i GPIO5. Pamiętaj aby podczas normalnej pracy pin RESET był podłączony do zasilania, w innym wypadku układ sam może się zresetować. Do przekaźników podłączamy wybrane przez nas urządzenia (w moim przypadku pompka i lampka wodoodporna). W razie gdy moduł nie działał by poprawnie, dolutuj kondensator 1000uF do modułu, powinno pomóc.
Programowanie:
Podczas programowania zewrzyj pin GPIO15 oraz GPIO0 do masy oraz zresetuj płytkę, stykając pin RESET do masy na chwilę. Następnie przez dzielnik napięcia podłącz TX programatora do RX modułu (tak jak na schemacie, dzielnik składa się z rezystorów 10kOhm i 4,7kOhm).
Uwy = Uwe * (R1 / (R1 + R2))
Uwy = 5 * (10000 / (10000 + 4700)) = 3,40136054v = 3,4v
RX programatora podłącz do TX modułu.
Na początek do modułu musimy wgrać specjalny “program”, w moim przypadku NODEMCU. Do pobrania tutaj. Podłącz płytkę programatora według instrukcji opisanych wyżej. Następnie otwórz program NODEMCU FLASHER i wybierz port do którego podłączona jest płytka.
Po wybraniu portu wgraj program, dioda na module zacznie migać. Po wgraniu dioda zgaśnie.
Teraz czas na stworzenie aplikacji, no tak nie do końca… Na telefon pobieramy darmową aplikację Blynk. Blynk to aplikacja umożliwiająca proste tworzenie aplikacji na telefon działających z modułami ESP oraz wieloma innymi, aplikacja daje nam wiele opcji do wykorzystania, np. suwaki, przyciski, akcelerometr, joysticki, wskaźniki i wiele innych ciekawych funkcji. Jedyny minus to “punkty”, na start dostajemy 2,000 punktów każdy kolejny element odejmuje punkty, można je jednak dokupić choć na razie ich liczba jest wystarczająca dla tego projektu. Po pobraniu rejestrujemy i tworzymy nowy projekt klikając na opcje “New Project”.
Wpisujemy nazwę projektu oraz w “Choose device” wybieramy moduł ESP8266. Aby stworzyć projekt wciskamy Create. Projekt po stworzeniu jest pusty, naciskamy w dowolne miejsce na szarym tle. Wysunie nam się menu z różnymi opcjami oraz stan “baterii z punktami” wybieramy “Button” potrzebne nam będą dwa. Aby skonfigurować przycisk, naciśnij na niego. Możesz wybrać nazwę przycisku pin oraz co ma zrobić stan niski lub wysoki oraz tryb przycisku w tym projekcie ustaw przycisk na Switch . Po skonfigurowaniu przycisków (w moim przypadku na pinach GPIO12 i GPIO5) naciskamy na trójkąt. Nasz aplikacja jest stworzona.
Teraz wgrajmy program do esp8266, w tym celu otwórz program arduino i przejdź w zakładkę szkic > dołącz bibliotekę > zarządzaj bibliotekami następnie w oknie wyszukiwania wpisz “Blynk”.
Następnie przejdź w zakładkę plik > preferencje i w “dodatkowe adresy URL do menadżera płytek” wklejamy ten link: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Ostatnią czynnością jest wybranie płytki, w tym celu wejdź w narzędzia > płytka > Generic Esp8266 Module
Teraz wreszcie możemy wgrać program.
Oto kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> char auth[] = "tu wpisz klucz"; // klucz możesz wziąć wchodząc w aplikacji blynk w swój projekt, naciśnij znaczek,nakrętki kod znajduję się w zakładce auth tokens możesz go skopiować lub wysłać sobie na e-mail char ssid[] = "tu wpisz nazwe swojej sieci wifi"; char pass[] = "tu wpisz hasło swojej sieci"; void setup() { Serial.begin(11520); Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); } |
Następnie zewrzyj pin GPIO15 oraz GPIO0 do masy oraz zresetuj płytkę, stykając pin RESET do masy na chwilę. I podłącz programator według instrukcji wyżej, po tych czynnościach wgraj program.
Gotowe!
Teraz włącz sterownik oraz aplikacje.
Przyciski możesz także ustawić jako widżet, ja sam korzystam z tej opcji ( nie muszę specjalnie uruchamiać aplikacji ).
Plusy i minusy projektu:
Plusy:
-sterowanie w każdym miejscu w Polsce(nie testowałem jeszcze w innych krajach, ale podejrzewam, że też będzie działać).
-wygodne sterowanie z poziomu ekranu głównego telefonu
-niski koszt urządzenia
-możliwość rozbudowy w nowe funkcje
-urządzenie zabiera jedno gniazdko sieciowe, zamiast dwóch oddzielnych do pompki i lampki
-stabilne
-szybki start po wyłączeniu urządzenia (ok.10 s)
Minusy:
-brak rozbudowanych funkcji (np. temperatura wody itp.)
-urządzenie uzależnione jest od telefonu
Podsumowanie:
Projekt moim zdaniem jest udany i spełnia swoją rolę, jeśli jesteś spostrzegawczy zobaczyłeś, że jest to wersja 1. Zamierzam w przyszłości rozbudować ten projekt o różne ciekawe i przydatne opcje, takie jak:
-temperatura (podgląd na telefonie i wyświetlaczu lcd)
-wyświetlacz lcd do wyświetlania informacji
-przyciski do sterowania peryferiami na obudowie
-podświetlenie led z regulacją jasności
-przypomnienia o karmieniu lub karmnik automatyczny
Jest co do roboty, z góry przepraszam za błędy ortograficzne. Starałem się opisać wszystko staranie i jak najbardziej zrozumiale, nie wiem jak wam się spodoba jest to mój pierwszy artykuł na majsterkowo. Wszelkie rzeczy do poprawki proszę pisać w komentarzu (jeśli masz ochotę i czas).W razie problemów proszę pisać w komentarzach, chętnie pomogę.
Z góry dziękuje,
Cześć!
W diagramie z przekaźnikami masz błąd. Zobacz że sterowanie cewką w przekaźniku nie spowoduje zwarcia układu i uruchomienia zasilania na pompie i lampie. Podłącz zielone połączenie do bocznego wyprowadzenia i będzie ok :)
Ok, dzięki Radek już poprawiam :)
Myślałem że będziesz żółwiem sterował przez telefon.
KamilK dobry pomysł, ale nie jestem pewien czy żółw był by zadowolony z tego projektu ;)
Zawsze w takich projektach brakuje mi na samym początku tekstu krótkiego wstępu opisującego problem i rozwiązanie jakie się zastosuje by go rozwiązać. Tutaj na przykładzie żółwia – nie każdy go ma i naprawdę nie wiadomo czego on potrzebuje…