Sommario:
- Passaggio 1: guarda il video
- Passaggio 2: parti necessarie
- Passaggio 3: progettazione schematica
- Passaggio 4: progettazione PCB
- Passaggio 5: fabbricare il PCB
- Passaggio 6: assemblaggio
- Passaggio 7: codice
Video: Sensore di temperatura e umidità Arduino: 7 passaggi
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-10 13:47
Di ThundertronicsSegui di più dell'autore:
In questo tutorial, spiegherò la realizzazione di un sensore di temperatura e umidità utilizzando la mini scheda Arduino pro con sensore DHT11 (o DHT22).
Passaggio 1: guarda il video
È importante vedere il video prima di passare al passaggio successivo. Il video spiega tutto e mostra come si fa. Tuttavia, in questo post, scriverò più dati tecnici e dettagli.
www.youtube.com/watch?v=56LKl7Xd770
Passaggio 2: parti necessarie
Le parti necessarie per questo progetto sono:
1- Mini scheda Arduino pro (o qualsiasi Arduino).
2- Sensore di temperatura e umidità DHT11 (o DHT22).
3- Display LCD 16x2.
4- Un allegato a tua scelta, preferibilmente uguale a quello utilizzato nel video.
5-Potenziometro 10K.
6- Morsetti a vite.
7- Resistori di diverso valore.
Batteria 8-9V.
mentre gli strumenti necessari sono:
1- trapano a mano come un Dremil.
2- punte diverse per il trapano, poiché utilizzeremo punte per levigare e punte da taglio.
3- aiutando le mani.
inoltre, i soliti strumenti elettronici come il multimetro e così via.
Passaggio 3: progettazione schematica
In questo progetto, ho scelto di realizzare un PCB invece di cablarlo da solo. Quindi ho usato lo strumento online EasyEDA per il lavoro che è stata una bella esperienza.
Questa è la pagina del progetto sul sito easyEDA:
La spiegazione dello schema è la seguente:
1- Ho usato un adattatore ICSP a 6 pin per programmare Arduino pro mini poiché non ne viene fornito uno a bordo. è J2 allo schema.
2- R2 è 100 Ohm e imposta la luminosità del display LCD. Fondamentalmente, potresti mettere più resistenza di 100R se vuoi che la retroilluminazione LCD sia più debole. O meglio ancora, fai in modo che un potenziometro agisca come una resistenza in serie variabile.
3- JP1 è solo un connettore che ha un bell'ingombro sul PCB. Non ho mai messo un vero terminale ma invece ho saldato i fili. Fai come vuoi.
4- U2 sono i terminali di collegamento della batteria. Qui, preferisco dei bei terminali a vite per ottenere una connessione stabile. Potresti saldare i fili, ma assicurati di mettere abbastanza saldatura per rendere la connessione abbastanza solida da resistere a qualsiasi scossa.
5- LCD1 è il componente LCD in easyEDA. Ha la connessione di base ad Arduino pro mini. Assicurati che i pin qui siano identici a quelli del software.
6- RV1 è un potenziometro da 10K per impostare il contrasto LCD. Dovrebbe essere usato solo una volta ed è la prima volta che accendi il display LCD.
Passaggio 4: progettazione PCB
Dopo aver terminato la progettazione schematica e aver capito cosa significa tutto, ora è il momento di creare un PCB per questo.
Dovresti premere "Converti in PCB" in EasyEDA per creare il PCB nell'editor PCB. Quindi, inizia a posizionare le parti e ad eseguire il routing come al solito. Suggerisco di non usare mai l'auto-router però.
Ho usato molti vias per spostarmi dal livello superiore a quello inferiore poiché lo spazio è così piccolo.
Passaggio 5: fabbricare il PCB
Ora, il design del PCB è finito. Abbiamo controllato tutto e nessun problema riscontrato. Dobbiamo inviare i file di progettazione (i gerber) alla società di fabbricazione di PCB di nostra scelta in modo che possa farlo per noi.
La mia azienda preferita è JLCPCB. Sono i migliori per tali progetti e prototipazione e offrono solo 2 $ di prezzo per 10 pezzi interi del tuo design!
Quindi, ora facciamo clic su (….) e scegliamo JLCPCB. Siamo indirizzati al sito Web JLCPCB poiché sono partner di EasyEDA. Ora compila tutto e fai l'ordine. Ora aspetta solo che arrivino i PCB.
Vale la pena ricordare che JLCPCB non solo ha EasyEDA associato a loro, ma ha anche un grande negozio di componenti! Il vantaggio qui è ottenere sia l'ordine PCB che l'ordine dei componenti spediti insieme! Sì, non è necessario attendere l'arrivo di 2 pacchi separatamente, ma vengono invece combinati in un unico pacco. Consiglio vivamente di utilizzare questo.
Passaggio 6: assemblaggio
Abbiamo solo i PCB con tutto ora. È tempo di assemblare tutto insieme.
Innanzitutto, dobbiamo saldare l'elettronica secondo lo schema. È un compito facile per questo progetto.
Dopo aver terminato la saldatura, ora tagliare i fori necessari nell'involucro di plastica, quindi fissare il PCB con altri componenti bene all'interno utilizzando una pistola per colla a caldo.
Ora dovresti usare il potenziometro per regolare il contrasto del display LCD, mentre scegliendo la valvola di resistenza necessaria per la luminosità, ho scelto 100R.
Passaggio 7: codice
Il codice per questo progetto è allegato a questo passaggio e la spiegazione è la seguente:
// includi il codice della libreria:#include #include "DHT.h" // imposta il Pin DHT #define DHTPIN 2
Includere le librerie necessarie e definire il pin 2 di Arduino pro mini come pin dati per il sensore. Assicurati di installare queste librerie se non le hai.
// inizializza la libreria con i numeri dei pin di interfaccia LiquidCrystal lcd(9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);
Ora inizializza la libreria LCD con questi pin secondo lo schema stesso. Usa anche la libreria DHT e scegli DHT11 come sensore da usare, quindi se hai DHT22 dovresti cambiarlo.
L'ultima riga dice che abbiamo il sensore DHT11 e il suo pin dati è sul pin "DHTPIN", che è il pin 2 come lo abbiamo definito in precedenza.
void setup() { // imposta il numero di colonne e righe del display LCD: lcd.begin(16, 2); dht.begin(); lcd.setCursor(0, 0); lcd.print("Temperatura e"); lcd.setCursor(0, 1); lcd.print("sensore di umidità"); ritardo (3000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("THUNDERTRONICS"); lcd.setCursor(0, 1); lcd.print("Hossam Moghrabi"); ritardo (3000); }
Ora è il momento della configurazione! ed ecco cosa sta succedendo:
LCD è di tipo 16 per 2.
Avvia il comando DHT per ottenere i valori.
Stampare "Sensore di temperatura e umidità" sulle 2 righe.
Ritardo 3 secondi.
Display chiaro
Stampa "THUNDERTRONICS" sulla prima riga, quindi stampa "Hossam Moghrabi" sulla 2a riga.
Ritardo 3 secondi.
^L'ho fatto come schermata di benvenuto che dura circa 6 secondi circa prima che vengano visualizzati i valori.
void loop() { // leggi l'umidità int h = dht.readHumidity(); //legge la temperatura in c int t = dht.readTemperature(); if (isnan(h) || isnan(t)) { lcd.print("ERRORE"); Restituzione; }
Ora siamo all'interno del nostro ciclo eterno che continuerà a ripetersi.
Memorizza le letture di umidità all'interno della variabile "h" e le letture di temperatura all'interno della variabile "t".
Successivamente, abbiamo un'istruzione if. Questo è fondamentalmente restituisce un messaggio di errore quando c'è un errore. Lascialo senza cambiarlo.
Ora abbiamo tutti i valori di cui abbiamo bisogno.
lcd.setCursor(0, 0); lcd.print("Temp. = "); lcd.print(t); lcd.print(" "); lcd.print((carattere)223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Umidità = "); lcd.print(h); lcd.print ("%"); // lcd.print("Hossam Moghrabi"); ritardo (2000);
Infine, mostriamo questi valori sul display LCD. Puoi cambiarlo nel modo desiderato perché sta semplicemente stampando i valori all'interno delle variabili "h" e "t". Mettere un ritardo di 2 secondi è un po' facoltativo, ma non trarrai molto beneficio dal farlo più velocemente poiché il sensore stesso non è così veloce e anche se lo è, i valori fisici non cambiano mai così velocemente. Quindi 2 secondi sono molto molto veloci per il lavoro!
Questo è tutto!