Projekty Arduino – Stacja meteo, czyli pierwsze funkcjonalne urządzenie

10 marca 2019

Gdy znamy już podstawy działania platformy Arduino, potrafimy lutować i co najważniejsze chcemy zbudować, nasze pierwsze działające urządzenie warto zacząć od czegoś prostego. Dobrym projektem na początek jest stacja meteo. Teoretycznie możemy stworzyć urządzenie, które będzie przetwarzać takie informacje jak wilgotność oraz temperatura powietrza, ciśnienie atmosferyczne. Dodatkowo może podawać informacje o opadach deszczu, czy też prędkości i kierunku wiatru.

Aby zbyt nie utrudniać całego,  zadania skupimy się na dwóch pierwszych elementach, czyli pomiarze temperatury oraz wilgotności powietrza w pomieszczeniu, oraz pomiarze temperatury poza domem.

Wszystkie pomiary będziemy mogli odczytać na wyświetlaczu LCD.

Elementy potrzebne do budowy urządzenia.

Do budowy urządzenia potrzebne będzie nam kilka narzędzi oraz elementów elektronicznych, jeśli chodzi o same narzędzia, to z pewnością masz je pod ręką, bo są to:

-lutownica oraz cyna

-śrubokręt do przykręcenia kilku śrubek

-narzędzie do ściągania izolacji z przewodów, może być to nóż, lub automatyczny ściągacz izolacji

-cążki do obcinania kabli

-śrubki wraz z kołkami rozporowymi, abyśmy całe urządzenie mogli przykręcić do ściany.

Jeśli chodzi o elementy elektroniczne, to potrzebujemy:

-Arduino Pro Mini

-stabilizator napięcia 5 V L7805CV

-czujnik DHT11

-czujnik DS18B20 w obudowie wodoodpornej, lub bez obudowy, ale tutaj musimy dobrze zabezpieczyć czujnik przed wilgocią, bo będzie znajdował się poza domem

-wyświetlacz LCD 16 × 2 z konwerterem I2C

-listwy goldpin męskie i żeńskie

-gniazdo DC 2.1 / 5.5 mm

-płytka drukowana uniwersalna, taka o wymiarach 5x7cm powinna w zupełności wystarczyć

-trochę kabli żeńsko-żeńskich, męsko-żeńskich oraz przewodów, które będziemy mogli wykorzystać do połączeń na płytce uniwersalnej. Osobiście często kupuje skrętkę LAN i z niej pozyskuje kable do lutowania.

Ostatnim elementem jest obudowa drukowana w 3D, do wykonania projektu użyłem programu Fusion360, sam obiekt wydrukowałem z białego materiału PET-G.

Budowa prototypu na płytce stykowej, czyli pierwszy krok do sukcesu

Jednym z ważniejszych kroków podczas budowy samego urządzenia jest budowa prototypu. Prototyp tworzymy głównie dlatego, aby sprawdzić funkcjonalność całości, oraz pozbyć się błędów, które mogłyby sprawiać problemy w gotowym instrumencie.

Już tutaj warto zastanowić się, do jakich pinów podłączone będą poszczególne komponenty oraz skąd będziemy czerpać zasilanie.

Nasza stacja meteo będzie zasilona za pomocą zasilacza podającego 12 V. Dlatego też, aby ustabilizować zasilanie będziemy, musieli użyć stabilizatora napięcia, który obniży podawane napięcie do 5 V, czyli napięcia, na którym pracuje Arduino. Cały schemat połączeń pokaże oczywiście na grafice.

Cały układ może wyglądać na skomplikowany, ale taki nie jest. Istnieje tylko parę kwestii, na które powinniśmy zwrócić uwagę. Pierwsza z nich, to fakt, że w jednym, jak i drugim czujniku szynę danych mostkujemy z VCC za pomocą rezystora 4.7kOHM lub innego o podobnej wartości.

Musimy też pamiętać o  prawidłowym podłączeniu stabilizatora napięcia, dopiero z jego wyjścia możemy podłączyć zasilanie na płytce stykowej, jeśli podłączymy do płytki napięcie z gniazda DC. To możemy uszkodzić każdy z układów, ponieważ wszystkie pracują na logice 5 V. Gdy zbudowaliśmy już układ, możemy przejść do napisania programu.

Stacja meteo program

Na samym początku musimy wgrać biblioteki do obsługi czujników oraz wyświetlacza.

1- Biblioteka wyświetlacza na I2C – https://bit.ly/1Nkj9IT

2- Biblioteka czujnika DS18B20 – https://bit.ly/2EkOmNI oraz https://bit.ly/2M2eyMf

3- Biblioteka czujnika DHT11 – https://bit.ly/2wkBpvV

Omówienie programu podzielimy na dwa etapy, jeden omówi wszystko, co dzieje się do funkcji loop (), a drugi samą funkcję loop (). Spowodowane jest to tym, że sam program jest dosyć spory.

Jeśli chodzi o tę sekcję, to myślę, że cały program jest jasny. Na początku deklarujemy jakie biblioteki będą używane w programie, następnie definiujemy podłączenie czujnika DS18B20.

Określamy adres wyświetlacza oraz jego wielkość. W samym void setup () uruchamiamy czujnik DS18B20, wyświetlacz i jego podświetlenie, oraz określamy, do jakiego pinu podłączony został czujnik DHT11.

Ostatnim elementem jest wyświetlenie napisu początkowego na wyświetlaczu, został on umieszczony w sekcji setup. Ze względu na to, że ma wyświetlić się tylko raz, podczas uruchamiania urządzenia.

Stacja meteo – dalsza części kodu

Już na samym początku sekcji loop widzimy linijkę kodu, która może wydawać nam się dziwna, ale już spieszę z wyjaśnieniami. Czujnik DHT11 lubi czasem wysłać błędne dane.

Mają one wartość 0 i można je łatwo wyeliminować za pomocą tej linijki kodu. Dzięki czemu program zaczeka, aż czujnik poda poprawne dane, z reguły trwa to krócej niż sekundę.

Po pobraniu danych z DS18B20 tworzymy zmienne typu float, przechowuje ona liczby. Gdy stworzymy zmienne, możemy przejść do wyświetlania danych.

Na wyświetlaczu, całość jest na tyle prosta i zrozumiała, że tłumaczenie jest zbędne, w razie kłopotów odsyłam do poradnika o wyświetlaczach. Pora teraz na wgranie programu do Arduino i sprawdzenie, czy całość działa!

Lutownice w dłoń, jesteśmy coraz bliżej mety!

Gdy prototyp jest w pełni sprawny czy możemy przejść do lutowania. Nie będzie go zbyt dużo, ale warto ten temat poruszyć, na początek najlepiej przyciąć goldpiny męskie i żeńskie na odpowiednią długość.

Potem umiejscowić całość w płytce i ocenić rozplanowanie przestrzeni na niej. Miejsca, w których przylutowałem te goldpiny, są wybrane przeze mnie i nie muszą stanowić wzorca. Połączenia na płytce powinny pokrywać się z tymi na płytce stykowej.

Jeśli już ulokowaliśmy goldpiny na płytce, a ich położenie nam odpowiada, to możemy przejść do przylutowania ich. U mnie płytka wygląda w ten sposób, od razu przylutowałem też stabilizator napięcia.

Stacja meteo — podłączanie i lutowanie

Gdy przylutowaliśmy podstawowe elementy, możemy przejść do połączenia tego, co znajduje się na płytce. W prawym dolnym rogu znajduje się listwa do podpięcia wyświetlacza. Jest ona opcjonalna, podłączyłem do niej tylko zasilanie, ponieważ w Pro Mini wyprowadzenie magistrali i2C. To dosyć problematyczne, ponieważ nie można go wyprowadzić z pinów, które mamy doprowadzone na płytkę, lecz z górnej warstwy samego Arduino. Oczywiście nic nie stoi na przeszkodzie, aby wyprowadzić je przewodem na płytkę, ale wygodniejszym rozwiązaniem jest doprowadzenie przewodu bezpośrednio do wyświetlacza. Następnie możemy przylutować rezystory i przewody. Ja do tego użyłem przewodów ze skrętki.

Teraz zostało nam przylutowanie przewodów zakończonych żeńskimi goldpinami do czujników, przylutowanie gniazda DC do przewodów. Przewody lutujemy do stabilizatora napięcia.

Musimy pamiętać o tym, że stabilizator łączymy z gniazdem według polaryzacji zasilacza. Gdy wtyczka zasilacza ma GND na zewnątrz (a z reguły tak jest), to zewnętrzny pin lutujemy do środkowego pinu stabilizatora. Jest to pin GND, dlatego analogicznie postępujemy tak z pinem od VCC. Gdy skończyliśmy lutowanie, możemy włożyć Pro Mini do gold pinów, podłączyć wyświetlacz i uruchomić urządzenie, aby sprawdzić, czy całość działa.

Jeśli tak, to możemy przejść do zamocowania całości w obudowie i w miejscu, w którym urządzenie będzie pracowało. Po osadzeniu stacji meteo w obudowie możemy umocować ją do ściany i cieszyć się w pełni działającym aparatem, które sami wykonaliśmy!

Produkty użyte w poradniku stacja meteo:

Projekt obudowy do wydruku: link do Google Drive

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *