Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ten blog pokaże, jak zrobić system automatyki domowej, który uruchomi alarm, gdy temperatura przekroczy zaprogramowaną wartość progową. Będzie nadal wyświetlać aktualną temperaturę pomieszczenia na ekranie LCD i wymagane działanie (np. Zmniejsz temperaturę), gdy temperatura osiągnie wartość większą niż wartość progowa. W tym samouczku używam czujnika temperatury AD22100, który jest produkowany przez Analog Devices i AG-1005G Buzzer. AD22100 to napięciowy czujnik temperatury wyjściowej z kondycjonowaniem sygnału
Krok 1: Części
Potrzebujesz tych części ze sobą, zanim zaczniesz działać niezniszczalny
1. Płytka Arduino UNO
2. Wyświetlacz LCD (16x2)
3. Brzęczyk - 2 piny (AC-1005G)
4. Czujnik temperatury - 3 piny (AD22100)
Krok 2: Połączenie różnych części z Arduino UNO
Połączenie LCD z płytą Arduino UNO
LCD RS Pin (Pin 4) z pinem 7 płyty Arduino
Pin włączania LCD (Pin 6) z pinem 8 płyty Arduino
LCD D4 Pin (Pin 11) z Pinem 9 płytki Arduino
LCD D5 Pin (Pin 12) z Pinem 10 płytki Arduino
LCD D6 Pin (Pin 13) z Pinem 11 płytki Arduino
LCD D7 Pin (Pin 14) z Pinem 12 płytki Arduino
Dodaj potencjometr 10 KΩ do +5v (Pot Pin 1) i GND (Pot Pin 3), Podłącz środkowy styk garnka (styk garnka 2) do styku LCD V0 (styk 3).
LCD VDD Pin (Pin 2) i LCD A Pin (Pin 15) z +5V na płytce Arduino.
LCD VSS Pin (Pin 1) i LCD K Pin (Pin 16) z GND na płytce Arduino.
Połączenie czujnika temperatury AD22100 z płytką Arduino UNO
Pin 1 (V+) AD22100 powinien być podłączony do +5 V na płytce Arduino.
Pin 2 (Vo) AD22100 powinien być podłączony do Pin A1 na płytce Arduino.
Pin 3 (GND) AD22100 powinien być podłączony do GND na płycie Arduino
Brzęczyk (AC-1005G) Połączenie z płytką Arduino UNO
Pin 6 wyjście PWM płytki Arduino należy podłączyć do wejścia +ve Buzzera.
GND płytki Arduino należy połączyć z -ve wejściem Buzzera
Krok 3: Kody Arduino
Skompiluj go i prześlij na płytkę Arduino i obejrzyj demo systemu automatyki domowej
//Program zaczyna się tutaj
wewn wart;
int tempPin = A1;
wew brzęczyk = 6;
#include LiquidCrystal lcd (7, 8, 9, 10, 11, 12);
pusta konfiguracja () {
// umieść tutaj swój kod instalacyjny, aby uruchomić raz:
lcd.początek(16, 2);
lcd.clear();
Serial.początek(9600);
pinMode(brzęczyk, WYJŚCIE);
}
void loop() {// umieść tutaj swój główny kod, aby uruchamiać się wielokrotnie:
val = analogRead (tempPin);//AD22100 jest podłączony do styku A1
/*
*Dla 25C val wynosi 900, co oznacza
* 900 odpowiada 1,9375 v
* Funkcja transferu to (V+/5)*(1,375 + 22,5 mv/degC * 25 degC), * Przeczytaj arkusz danych AD22100
*/
cela zmiennoprzecinkowa = ((((1,9375/900) * wart) – 1,375)/22,5)*1000;
pływak farh = (cel*9)/5 + 32;
Serial.print(val);
Serial.println();
Serial.print("TEMPRATURA = ");
Serial.print(cel);Serial.print(„*C”);
Serial.println();
jeśli (cel > 26){
ton (brzęczyk, 1000);
lcd.clear();
lcd.print("Temperatura powyżej progu");
lcd.setCursor(0, 1);
lcd.print("Obniż temperaturę");
}
w przeciwnym razie
{brak dźwięku (brzęczyk);
lcd.clear();
lcd.print("Temperatura pod kontrolą");
lcd.setCursor(0, 1);
lcd.print(“Temp= “);
lcd.print(cel);
lcd.print(„degC”);
}
opóźnienie (500);
}
//Program kończy się tutaj
Krok 4: Szczegółowe zrozumienie programu
Postaram się wyjaśnić kilka sekcji kodu.
Funkcje związane z instrukcją If/else
Jeśli temperatura jest większa niż wartość progowa, wysyłam sygnał do brzęczyka, aby uruchomić alarm i wyświetlam na LCD, aby obniżyć temperaturę poniżej sekcji kodu
jeśli (cel > 26)
{ton(brzęczyk, 1000);
lcd.clear();
lcd.print("Temperatura powyżej progu");
lcd.setCursor(0, 1);
lcd.print("Obniż temperaturę");
}
Jeśli nie, to wysyłanie aktualnej wartości temp na LCD i wyświetlanie, że temp jest pod kontrolą.
w przeciwnym razie
{brak dźwięku (brzęczyk);
lcd.clear();
lcd.print("Temperatura pod kontrolą");
lcd.setCursor(0, 1);
lcd.print(“Temp= “);
lcd.print(cel);
lcd.print(„degC”);
}
Funkcje związane z Buzzerem
tone(buzzer, 1000) - ta funkcja wyśle sygnał 1 khz do pinu o nazwie buzzer, który jest zdefiniowany jako Pin 6, a brzęczyk magnetyczny jest podłączony do Pinu 6.noTone(buzzer) - zatrzyma wysyłanie sygnału 1 khz. W związku z tym dzwonienie ustanie
Funkcje związane z czujnikiem temperatury
Konwersja wartości analogowej odczytu temperatury na wartość w stopniach C odbywa się za pomocą funkcji transferu, którą można znaleźć w arkuszu danych AD22100, jak opisano poniżej.
Vout = (V+/5 V) × (1,375 V + 22,5 mV/°C × TA) i ta sama wartość jest drukowana na wyświetlaczu LCD.
Krok 5: Demo instrukcji
Po skompilowaniu programu i przesłaniu go na płytkę Arduino UNO
spróbujmy zwiększyć temperaturę mierzoną przez czujnik temperatury AD22100 i ciesz się systemem automatyki domowej.
Aby podnieść temperaturę czujnika dotykam go lutownicą dostępną w laboratorium.
Możesz obejrzeć demo tutaj..
Demo systemu automatyki domowej