Sommario:
- Passaggio 1: elenco degli articoli
- Passaggio 2: introduzione relativa
- Passaggio 3: collegare il circuito
- Passaggio 4: prepararsi alla compilazione
- Passaggio 5: codice di prova per la porta seriale del sensore DHT22
- Passaggio 6: codice per il progetto
- Passaggio 7: descrizione
Video: Stazione meteo con Arduino UNO: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Creato da: Hazel Yang
Questo progetto è una stazione meteo che utilizza una scheda Arduino UNO per controllare il flusso di dati, un sensore DHT22 per raccogliere i dati e uno schermo OLED per mostrare i dati.
Passaggio 1: elenco degli articoli
1. Schermo: OLED, display da 1,3 SH1106, colore bianco I2C ---- PID: 18283
2. Sensore: sensore di umidità e temperatura digitale DHT22 ---- PID: 7375
3. Collega: Ponticelli ---- PID: 10316 o 10318 o 10312 (dipende dalla lunghezza) oppure è possibile utilizzare un cavo solido 22 AWG ---- PID: 22490
Tagliere ---- PID: 10686 o 10698 o 103142 (dipende dalle dimensioni)
4. Alimentazione: questo cavo può essere collegato solo con una porta USB del computer e il cavo viene utilizzato anche per il trasferimento dei dati tra l'IDE e la scheda Arduino. CAVO USB, DA A A B, M/M, 0,5 M (1,5 FT) ---- PID: 29862
Oppure puoi usarlo per alimentare la scheda: Adattatore AC/DC 5V 2A ---- PID: 10817.
Passaggio 2: introduzione relativa
Introduzione dello schermo: display OLED da 1,3 bianco
1. Puoi trovare il documento che mostra la configurazione di base e le descrizioni:
Introduzione del sensore: sensore di umidità e temperatura DHT22 1. È possibile trovare il documento che mostra le descrizioni:
Passaggio 3: collegare il circuito
Il sensore DHT22 invia i dati seriali al pin 2. Quindi, collega il secondo pin da sinistra, il pin "SDA" dovrebbe essere collegato al pin 2.
Per il display SSH1106, utilizza il pin analogico per trasmettere. Il circuito dello schermo sarà il pin "SCL" su "A5" di Arduino e il pin "SDA" su "A4" di Arduino. Mentre i dati sulla posizione dei pixel vengono trasmessi continuamente, la funzione di visualizzazione nel programma attiva il comando solo una volta ogni volta che legge i dati dal sensore.
Sia il sensore che lo schermo possono utilizzare 3,3 V per alimentare Arduino come ingresso di alimentazione CC. Per alimentare, dobbiamo collegare entrambi i pin "VCC" al "3.3V" di Arduino. E i pin "GND" possono essere semplicemente collegati al pin "GND" sulla scheda Arduino.
Usa il cavo USB da A a B, collega l'Arudino al computer.
Passaggio 4: prepararsi alla compilazione
"u8glib" per lo schermo SSH1106 di Olikraus.
"Libreria di sensori DHT" per il sensore DHT22 di Adafruit. Dovresti scaricare le due librerie: Libreria di sensori DHT22:
U8glib:
E usa "gestisci libreria" in IDE per decomprimerli. Istruzioni online sulla gestione delle librerie:
Passaggio 5: codice di prova per la porta seriale del sensore DHT22
Test coe per la porta seriale del sensore DHT22 (che si trova all'interno della libreria DHT22 >> esempi):
(Puoi saltare questa parte.)
Solo per testare il sensore DHT22 legge i dati normalmente
#includere
#includere
#includere
#includere
#includere
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("Prova DHT22!"));
dht.begin();
}
ciclo vuoto() {
// Attendi qualche secondo tra le misurazioni.
ritardo (2000);
// La lettura della temperatura o dell'umidità richiede circa 250 millisecondi!
// Le letture del sensore possono anche essere "vecchie" fino a 2 secondi (è un sensore molto lento)
float h = dht.readHumidity();
// Legge la temperatura in gradi Celsius (impostazione predefinita)
float t = dht.readTemperature();
// Legge la temperatura come Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Controlla se qualche lettura ha avuto esito negativo ed esci prima (per riprovare).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Impossibile leggere dal sensore DHT!"));
Restituzione;
}
// Calcola l'indice di calore in Fahrenheit (predefinito)
float hif = dht.computeHeatIndex(f, h);
// Calcola l'indice di calore in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Umidità: "));
Serial.print(h);
Serial.print(F("% Temperatura: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Indice di calore: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
// Dopo aver compilato il programma, fare clic su STRUMENTI >> MONITOR SERIALE per controllare i dati.
// Fine del programma di test.
Passaggio 6: codice per il progetto
#includere
#includere
#includere
#includere
#includere
#define DHTPIN 2
#define DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
Sensore DHT (DHTPIN, DHTTYPE);
void draw(void) {
u8g.setFont(u8g_font_unifont);
float h = sensor.readHumidity();
// Legge la temperatura in gradi Celsius (impostazione predefinita)
float t = sensor.readTemperature();
// Controlla se qualche lettura ha avuto esito negativo ed esci prima (per riprovare).
if (isnan(h) || isnan(t)) {
u8g.print("Errore.");
per(;;);
Restituzione;
}
u8g.setPrintPos(4, 10);
u8g.print("Temperatura(C):");
u8g.setPrintPos(4, 25);
u8g.print(t);
u8g.setPrintPos(4, 40);
u8g.print("Umidità(%):");
u8g.setPrintPos(4, 55);
u8g.print(h);
}
void setup(void) {
u8g.setRot180();
Serial.begin(9600);
sensore.begin();
}
ciclo vuoto (vuoto) {
// ciclo di immagini
u8g.firstPage();
fare {
disegno();
} while(u8g.nextPage());
// ricostruisce l'immagine dopo un certo ritardo delay (2000);
}
// Fine del programma principale.
Passaggio 7: descrizione
Quindi, inizializza il circuito dei pin per la scheda Arduino. Perché la libreria dei sensori richiede i dati per dichiarare l'oggetto.
E puoi testare i dati del sensore monitorando i dati di output tramite il pin digitale 2 utilizzando la funzione chiamata "Serial.print()". Poiché la frequenza di trasmissione dei dati è di circa 1 lettura ogni 2 secondi (che è 0,5 Hz), quando programmata nell'IDE di Arduino, è necessario impostare il ritardo all'interno della funzione loop su più di 2 secondi. Quindi c'è un "delay(2000)" all'interno della funzione loop. Ciò garantisce che i dati vengano aggiornati frequentemente. Nella funzione "disegna", prendi i dati dalla porta dati seriale e inseriscili in numeri float utilizzando le funzioni "readHumidity" e "readTemperature".
Stampa l'umidità e la temperatura utilizzando la funzione di stampa nel file "u8glib". È possibile regolare la posizione modificando il numero nella funzione "setPrintPos". La funzione di stampa può mostrare direttamente il testo e i numeri.
Per configurare l'hardware, assegna alla porta seriale un ritardo di 10 secondi. Quindi chiamare la funzione di inizio per il sensore. Secondo il mio circuito, il mio schermo era capovolto. Quindi ho incluso anche una funzione "setRot180" per ruotare il display.
La funzione loop della scheda Arduino è la funzione principale. Continua a chiamare la funzione di disegno per visualizzare il testo e i dati ogni volta che il sensore viene aggiornato.
Lo schermo si presenta così:
Puoi scollegare Arduino UNO dal tuo computer e alimentarlo utilizzando un adattatore di alimentazione da 5 V CC collegato al suo jack di alimentazione da 2,1 mm. Memorizza il programma all'interno della sua unità e può eseguire di nuovo il programma continuamente dopo essere stato alimentato.
Consigliato:
Stazione meteo WIFI con Magicbit (Arduino): 6 passaggi
Stazione meteorologica WIFI con Magicbit (Arduino): questo tutorial mostra come costruire una stazione meteorologica da Magicbit utilizzando Arduino che può ottenere dettagli dal tuo smartphone
Stazione meteo fai-da-te e stazione sensore WiFi: 7 passaggi (con immagini)
Stazione meteo fai-da-te e stazione sensore WiFi: in questo progetto ti mostrerò come creare una stazione meteo insieme a una stazione sensore WiFi. La stazione sensore misura i dati di temperatura e umidità locali e li invia, tramite WiFi, alla stazione meteorologica. La stazione meteorologica visualizza quindi t
Stazione meteo Arduino con BMP280-DHT11 - Temperatura, umidità e pressione: 8 passaggi
Arduino Weather Station Using BMP280-DHT11 - Temperatura, Umidità e Pressione: In questo tutorial impareremo come realizzare una stazione meteo che visualizzerà TEMPERATURA, UMIDITÀ E PRESSIONE sul Display LCD TFT 7735Guarda un video dimostrativo
Mini stazione meteo Arduino UNO: 5 passaggi
Mini stazione meteorologica Arduino UNO: questa è la prima generazione della mia mini stazione meteorologica basata su Arduino con connessione wi-fi, che è in grado di pubblicare dati pubblicamente online utilizzando la piattaforma ThingSpeak. La stazione meteorologica raccoglie i seguenti dati relativi al tempo e ambiente
Stazione meteo WiFi ESP32 con sensore BME280: 7 passaggi (con immagini)
Stazione meteo WiFi ESP32 con un sensore BME280: cari amici benvenuti in un altro tutorial! In questo tutorial costruiremo un progetto di stazione meteorologica abilitata al WiFi! Useremo per la prima volta il nuovo, impressionante chip ESP32 insieme a un display Nextion. In questo video andiamo