Spisu treści:

Czujnik temperatury i wilgotności Arduino: 7 kroków
Czujnik temperatury i wilgotności Arduino: 7 kroków

Wideo: Czujnik temperatury i wilgotności Arduino: 7 kroków

Wideo: Czujnik temperatury i wilgotności Arduino: 7 kroków
Wideo: Kurs Arduino #4: DHT11/DHT22 - Czujnik temperatury i wilgotności + Stacja pogodowa 2024, Lipiec
Anonim

Przez ThundertronicsObserwuj Więcej autora:

PIC16F877A Przetwornik analogowo-cyfrowy (ADC)
PIC16F877A Przetwornik analogowo-cyfrowy (ADC)
PIC16F877A Przetwornik analogowo-cyfrowy (ADC)
PIC16F877A Przetwornik analogowo-cyfrowy (ADC)
Interfejs LCD z mikrokontrolerem PIC16F877A
Interfejs LCD z mikrokontrolerem PIC16F877A
Interfejs LCD z mikrokontrolerem PIC16F877A
Interfejs LCD z mikrokontrolerem PIC16F877A
DIY modułowy zasilacz stołowy
DIY modułowy zasilacz stołowy
DIY modułowy zasilacz stołowy
DIY modułowy zasilacz stołowy

W tym samouczku wyjaśnię wykonanie czujnika temperatury i wilgotności za pomocą płytki Arduino pro mini z czujnikiem DHT11 (lub DHT22).

Krok 1: Obejrzyj wideo

Ważne jest, aby najpierw obejrzeć film przed przejściem do następnego kroku. Film wyjaśnia wszystko i pokazuje, jak to się robi. Jednak w tym poście napiszę więcej danych technicznych i szczegółów.

www.youtube.com/watch?v=56LKl7Xd770

Krok 2: Potrzebne części

Części potrzebne do tego projektu to:

1-płytka Arduino pro mini (lub dowolne Arduino).

2- czujnik temperatury i wilgotności DHT11 (lub DHT22).

3- wyświetlacz LCD 16x2.

4- Wybrana obudowa, najlepiej taka sama jak ta użyta w filmie.

Potencjometr 5- 10K.

6- Zaciski śrubowe.

7- Rezystory o różnych wartościach.

Bateria 8-9V.

podczas gdy potrzebne narzędzia to:

1- wiertarka ręczna jak Dremil.

2 różne końcówki do wiertła, ponieważ będziemy używać końcówek wygładzających i końcówek tnących.

3- pomocne dłonie.

plus zwykłe narzędzia elektroniczne, takie jak multimetr i tak dalej.

Krok 3: Projekt schematyczny

Schematyczny projekt
Schematyczny projekt

W tym projekcie zdecydowałem się zrobić dla niego płytkę drukowaną zamiast samemu ją okablować. Więc użyłem narzędzia online EasyEDA do pracy, co było miłym doświadczeniem.

To jest strona projektu na stronie easyEDA:

Wyjaśnienie schematu jest następujące:

1- Użyłem 6-pinowego adaptera ICSP do zaprogramowania Arduino pro mini, ponieważ nie ma go na pokładzie. to jest J2 na schemacie.

2- R2 to 100 omów i ustawia jasność wyświetlacza LCD. Zasadniczo możesz postawić większy opór niż 100R, jeśli chcesz, aby podświetlenie LCD było przyciemnione. Albo jeszcze lepiej, uzyskaj potencjometr, który będzie działał jako zmienna rezystancja szeregowa.

3- JP1 to po prostu złącze, które ma ładną powierzchnię PCB. Nigdy nie wkładałem rzeczywistego terminala, ale zamiast tego przylutowałem przewody. Rób co chcesz.

4- U2 to zaciski do podłączenia akumulatora. Tutaj wolę ładne zaciski śrubowe, aby uzyskać stabilne połączenie. Możesz przylutować przewody, ale pamiętaj, aby umieścić wystarczająco dużo lutu, aby połączenie było wystarczająco solidne, aby wytrzymać wszelkie wstrząsy.

5- LCD1 jest komponentem LCD w easyEDA. Posiada podstawowe połączenie z Arduino pro mini. Upewnij się, że styki tutaj są identyczne z tymi w oprogramowaniu.

6- RV1 to potencjometr 10K do ustawiania kontrastu LCD. Powinno być używane tylko raz i to po pierwszym włączeniu wyświetlacza LCD.

Krok 4: Projektowanie PCB

Projektowanie PCB
Projektowanie PCB
Projektowanie PCB
Projektowanie PCB

Po skończeniu projektu schematu i zrozumieniu, co to wszystko znaczy, nadszedł czas na wykonanie do niego płytki drukowanej.

Powinieneś nacisnąć "Konwertuj na PCB" w EasyEDA, aby utworzyć PCB w edytorze PCB. Następnie zacznij umieszczać części i wykonywać trasy jak zwykle. Sugeruję jednak nigdy nie używać automatycznego routera.

Użyłem wielu przelotek, aby przejść od górnej do dolnej warstwy, ponieważ jest tak mało miejsca.

Krok 5: Wyprodukuj PCB

Teraz projekt PCB jest gotowy. Sprawdziliśmy wszystko i nie znaleźliśmy żadnego problemu. Musimy przesłać pliki projektowe (gerbery) do wybranej przez nas firmy produkującej PCB, aby mogła to zrobić za nas.

Moją wybraną firmą jest JLCPCB. Są najlepsze do takich projektów i prototypowania i oferują tylko 2$ ceny za całe 10 sztuk Twojego projektu!

Czyli teraz klikamy (….) i wybieramy JLCPCB. Jesteśmy kierowani na stronę JLCPCB, ponieważ są to partnerzy EasyEDA. Teraz wypełnij wszystko i złóż zamówienie. Teraz poczekaj, aż dotrą płytki PCB.

Warto wspomnieć, że JLCPCB ma nie tylko powiązany z nimi EasyEDA, ale także duży sklep z komponentami! Zaletą jest to, że zarówno zamówienie PCB, jak i zamówienie komponentów są wysyłane razem! Tak, nie trzeba czekać, aż 2 paczki dotrą osobno, ale zamiast tego są one połączone w jedną paczkę. Gorąco polecam korzystanie z tego.

Krok 6: Montaż

Mamy teraz samych AWK ze wszystkim. Czas zebrać wszystko razem.

Najpierw musimy przylutować elektronikę według schematu. To łatwe zadanie dla tego projektu.

Po zakończeniu lutowania wytnij teraz niezbędne otwory w plastikowej obudowie, a następnie zamocuj płytkę PCB z innymi elementami wewnątrz za pomocą pistoletu do klejenia na gorąco.

Powinieneś teraz użyć potencjometru do regulacji kontrastu wyświetlacza LCD, podczas doboru wymaganego rezystora dla jasności ja wybrałem 100R.

Krok 7: Kod

Kod tego projektu jest dołączony do tego kroku, a wyjaśnienie jest następujące:

// dołącz kod biblioteki:#include #include "DHT.h" // ustaw pin DHT #define DHTPIN 2

Dołącz niezbędne biblioteki i zdefiniuj pin 2 Arduino pro mini jako pin danych czujnika. Pamiętaj, aby zainstalować te biblioteki, jeśli ich nie masz.

// zainicjuj bibliotekę numerami pinów interfejsu LiquidCrystal lcd(9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);

Teraz zainicjalizuj bibliotekę LCD tymi pinami zgodnie z samym schematem. Użyj również biblioteki DHT i wybierz DHT11 jako czujnik do użycia, więc jeśli masz DHT22, powinieneś go zmienić.

Ostatnia linia mówi, że mamy czujnik DHT11, a jego pin danych znajduje się na pinie „DHTPIN”, który jest pinem 2, jak zdefiniowaliśmy wcześniej.

void setup() { // ustawienie liczby kolumn i wierszy wyświetlacza LCD: lcd.begin(16, 2); dht.początek(); lcd.setCursor(0, 0); lcd.print("Temperatura i"); lcd.setCursor(0, 1); lcd.print("czujnik wilgotności"); opóźnienie(3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("THUNDERTRONICS"); lcd.setCursor(0, 1); lcd.print("Hossam Moghrabi"); opóźnienie(3000); }

Teraz czas na konfigurację! a oto co się dzieje:

LCD ma rozmiar 16 na 2.

Uruchom polecenie DHT, aby uzyskać wartości.

Wydrukuj "Czujnik temperatury i wilgotności" w 2 wierszach.

Opóźnij 3 sekundy.

Wyraźny wyświetlacz

Wydrukuj „THUNDERTRONICS” w pierwszym wierszu, a następnie wydrukuj „Hossam Moghrabi” w drugim wierszu.

Opóźnij 3 sekundy.

^Zrobiłem to jako ekran powitalny, który trwa około 6 sekund przed wyświetleniem wartości.

void loop() { //odczytaj wilgotność int h = dht.readHumidity(); //odczytaj temperaturę w c int t = dht.odczytajTemperatura(); if (isnan(h) || isnan(t)) { lcd.print("BŁĄD"); powrót; }

Teraz jesteśmy w naszej wiecznej pętli, która będzie się powtarzać.

Przechowuj odczyty wilgotności wewnątrz zmiennej „h”, a odczyty temperatury wewnątrz zmiennej „t”.

Następnie mamy instrukcję if. To zasadniczo zwraca komunikat o błędzie, gdy wystąpi błąd. Zostaw to bez zmiany.

Teraz mamy wszystkie potrzebne nam wartości.

lcd.setCursor(0, 0); lcd.print("Temp. = "); lcd.print(t); lcd.print(" "); lcd.print((char)223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Wilgotność = "); lcd.print(h); lcd.print (" %"); // lcd.print("Hossam Moghrabi"); opóźnienie (2000);

Na koniec wyświetlamy te wartości na wyświetlaczu LCD. Możesz to zmienić tak, jak chcesz, ponieważ jest to po prostu drukowanie wartości wewnątrz zmiennych „h” i „t”. Ustawienie opóźnienia 2 sekund jest trochę opcjonalne, ale nie przyniesie wiele korzyści, jeśli zrobisz to szybciej, ponieważ sam czujnik nie jest tak szybki, a nawet jeśli tak, to i tak wartości fizyczne nigdy nie zmieniają się tak szybko. Tak więc 2 sekundy to bardzo, bardzo szybko!

To jest to!

Zalecana: