Sommario:
- Passaggio 1: cosa ti servirà:
- Passaggio 2: collega Arduino a DHT11
- Passaggio 3: scarica l'IDE Arduino
- Passaggio 4: collega Arduino al computer
- Passaggio 5: caricare la libreria
- Passaggio 6: ottenere il codice Arduino
- Passaggio 7: caricare il codice su Arduino
- Passaggio 8: download e installazione dell'elaborazione
- Passaggio 9: elaborazione del codice
- Passaggio 10: elaborazione dei file di codice
- Passaggio 11: carattere in elaborazione
- Passaggio 12: conclusione
- Passaggio 13: risoluzione dei problemi
Video: Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: 13 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Intro: questo è un progetto che utilizza una scheda Arduino, un sensore (DHT11), un computer Windows e un programma di elaborazione (un download gratuito) per visualizzare i dati di temperatura, umidità in forma digitale e grafico a barre, visualizzare ora e data ed eseguire un conteggio il timer durante il programma e la registrazione di tutti i dati in formato.csv alla chiusura del programma.
Ispirazione:
Per prima cosa DEVO dire che sono un principiante assoluto e ho imparato molto da questo progetto. Quindi sto cercando di scrivere questo Instructable per essere letto e compreso da un principiante totale.
Avevo visto vari progetti Arduino per misurare la temperatura e l'umidità ma volevo un programma che:
1) Temperatura e umidità misurate
2) Visualizzato i dati sia in un grafico (ho scelto il grafico a barre) che in formato digitale
3) Ha una funzione orologio
4) Ha un timer "Run Time" per il conteggio in avanti
5) Salva questi dati in un formato file.csv (excel).
Mi sono ispirato ai programmi creati da Sowmith Mandadi, R-B e aaakash3, ma nessuno di questi era esattamente quello che volevo. Così ho imparato a scrivere del codice di base e ho fatto quello che volevo.
Passaggio 1: cosa ti servirà:
Parti e materiali:*Computer: ho utilizzato un computer Windows con sistema operativo Windows 10
(Sono sicuro che Linux o Mac potrebbero essere usati, semplicemente non li ho, quindi non tratterò come usare questi sistemi operativi)
*Scheda Arduino: ho usato una scheda Arduino Uno, ma va bene qualsiasi scheda Arduino con USB
*Cavo USB -Cavo USB A/B -lo stesso del vecchio tipo "cavo stampante" (di solito viene fornito con la scheda Arduino)
* Sensore di temperatura / umidità DHT 11 - economico da $ 4 a 8
(Nota: ci sono 2 versioni in cui ho usato la versione a 3 pin, la versione a 4 pin richiederà l'uso di una breadboard e un resistore da 10K, il 3 pin ha un circuito stampato che include il resistore da 10K) vedere i diagrammi di Fritzing nei passaggi successivi
*Cavi di collegamento
Cavi Dupont (doppia estremità femmina) se si collega a DHT11 a 3 pin senza breadboard
Cavi jumper M/F standard (un'estremità maschio un'estremità femmina) e cavi jumper M/M (entrambe le estremità maschio) per collegare DHT11 a 4 pin - vedere il passaggio 2 per ulteriori informazioni
*Arduino IDE – un programma per scrivere programmi Arduino (chiamati sketch) gratis @
www.arduino.cc/en/Main/Software
*Processing: un programma per scrivere gratuitamente bozzetti di elaborazione @
processing.org/download/
* File "DHTLib" - un file di libreria (questo è un file che va nel programma IDE di Arduino nella cartella chiamata "Library" questo dovrà essere aggiunto allo sketch Arduino prima che Arduino possa leggere i dati dal DHT11 -vedi passaggio 5 per scaricare file e istruzioni
Passaggio 2: collega Arduino a DHT11
Prima determina quale DHT11 hai
Ho usato il 3 pin perché ha già la resistenza da 10K necessaria.
Se hai il pin a 4 avrai bisogno di una resistenza da 10K e di una breadboard
Collega DHT11 alla scheda Arduino. Questo programma richiede che il pin del segnale DHT 11 sia collegato al pin # 7 di Arduino, pin Pos (+) collegato a 5 V su Arduino e Neg (-) a GND su Arduino.
Fare riferimento a Diagrammi e diagrammi di Fritzing
Passaggio 3: scarica l'IDE Arduino
Scarica Arduino IDE e installa sul computer
www.arduino.cc/en/Main/Software
Passaggio 4: collega Arduino al computer
Installa prima l'IDE Arduino che ha i driver per la connessione USB Arduino.
Collega Arduino al computer tramite USB.
Attendi che il computer riconosca la scheda Arduino e installi eventuali driver.
Apri il programma IDE e verifica la connessione seriale.
Se la scheda Arduino non viene visualizzata nella porta Strumenti> (cerchio rosso), chiudi l'IDE e riapri.
*Importante* una volta che l'IDE è aperto e la scheda Arduino è collegata tramite USB. La scheda Arduino deve essere collegata alla porta seriale corretta. Sui computer Windows questo è indicato come porta COM. Per farlo nell'IDE vai su Strumenti>Porta:>Porte seriali. Come mostrato nel diagramma, la porta seriale (cerchio rosso) deve corrispondere alla porta elencata nell'angolo in basso a destra del programma IDE (cerchio giallo).
Passaggio 5: caricare la libreria
Carica la libreria per il DHT11. All'inizio mi confondeva, ma in realtà è abbastanza semplice.
Scarica il file chiamato "DHTLib" e decomprimilo. Copia il file "DHTLib" decompresso.
I riferimenti su questa libreria sono disponibili all'indirizzo:
playground.arduino.cc/Main/DHTLib
(È stato scritto da Rob Tillaart sulla base del lavoro di altri)
Trova la cartella Arduino sul tuo computer e aprila. (Sarà ovunque tu abbia scaricato l'IDE e installato sul computer)
Vedi diagramma
Trova il file chiamato "librerie" e aprilo, quindi incolla la cartella "DHTLib" nel file "librerie". Chiudilo e riavvia l'IDE.
Vedi diagramma
Una volta riaperto l'IDE, puoi verificare che la libreria DHT sia stata installata. Schizzo> Includi libreria.
Vedi diagramma
Nota Facendo clic su DHTLib nella scheda "include library" la libreria verrà inserita nel codice Arduino come "#include dht.h".
Non è necessario farlo perché è già nel codice che scaricherai nel passaggio successivo.
Passaggio 6: ottenere il codice Arduino
Scarica il file Temp_Hum_Instructable.zip e decomprimilo. Apri Temp_Hum_Instructable.ino con l'IDE Arduino.
In alternativa, guarda il seguente codice e copia e incolla o digita esattamente nell'IDE di Arduino:
#includere
dht DHT; #define DHT11PIN 7// imposta il pin 7 per la connessione del segnale DHT11 void setup(){ Serial.begin(9600); //apre serial } void loop() { int chk =DHT.read11(DHT11PIN);//legge DHT11 Serial.print(DHT.temperature, 0);//stampa temp in serial Serial.print(", "); //stampa la virgola in seriale Serial.print(DHT.humidity, 0);//stampa l'umidità in seriale Serial.println();//ritardo ritorno carrello(2000);//attendere 2 secondi }
Quando hai finito dovrebbe assomigliare al diagramma sopra
Passaggio 7: caricare il codice su Arduino
Prima salva lo schizzo in una posizione e con un nome che ricorderai, Esempio: Temp_Hum.
Successivamente è necessario caricare lo schizzo sulla scheda Arduino premendo il pulsante con la freccia rivolta verso destra (carica).
Vedi diagramma
Questo richiederà alcuni secondi; vedrai una barra di avanzamento in basso a destra.
Quindi vedrai: Fatto il caricamento del messaggio in basso a sinistra e il testo bianco nella parte inferiore dell'IDE che ti parla della memoria
Vedi diagramma
Se ricevi un codice di errore (testo arancione nella parte inferiore dell'IDE) dovrebbe essere uno dei seguenti
- La libreria "DHTlib" non è stata copiata correttamente
- La porta COM non è impostata correttamente
- Il sensore non è stato collegato correttamente
- Il codice non è stato caricato correttamente nell'IDE Il testo arancione può essere fatto scorrere e darà un'idea di cosa c'è che non va. Torna indietro e controlla che probabilmente è un semplice errore.
Una volta fatto, guarda attentamente la tua scheda Arduino. Ogni due secondi lampeggerà il piccolo LED vicino alle lettere “TX”. Questo è l'Arduino che invia le informazioni al computer. Per verificarlo, fai clic sul simbolo della piccola lente di ingrandimento nell'angolo in alto a destra dell'IDE.
Vedi diagramma
Questo aprirà il monitor seriale e visualizzerà i dati di temperatura e umidità separati da una virgola. Noterai che i dati della temperatura sono elencati in gradi Celsius. Va bene, convertiremo in Fahrenheit in seguito (o no, se lo desideri).
Vedi diagramma
Quindi chiudi il monitor seriale e poi chiudi l'IDE. (Ti sei ricordato di salvarlo, vero?). Ora guarda di nuovo la scheda Arduino (non scollegarla dall'USB che è dove sta ricevendo alimentazione e inviando dati alla porta seriale del computer). Lampeggia ancora? Sì, fantastico. Una volta che il programma è stato caricato su Arduino, funzionerà finché sarà alimentato.
Nota sul codice: se guardi il codice Arduino che inizia con "void loop ();". Le successive 5 righe di codice indicano ad Arduino di leggere i dati dal DHT e di stamparli sul bus seriale separati da una virgola. La riga successiva "ritardo (2000);" dice ad Arduino di attendere 2 secondi (2000 millisecondi) in modo che i dati vengano ricevuti ogni 2 secondi. Quindi torna a "void loop ();" - un comando che dice ad Arduino di farlo di nuovo. La modifica del valore nella linea di ritardo cambierà la frequenza con cui vengono ricevuti i dati. Esempio: cambia in (600000) cambierà a 10 minuti (600000 millisecondi = 10 minuti). La ricezione di dati ogni 2 secondi finisce per essere un sacco di dati, quindi ora sai come modificare la frequenza di lettura dei dati. Ricorda solo che se cambi il valore in seguito lo farai bisogno di caricare il nuovo programma.
Ok, siediti e fai un respiro, sei a più di metà strada. Sì!!
Passaggio 8: download e installazione dell'elaborazione
processing.org/download/
Abbastanza semplice selezionare il programma che corrisponde al tuo computer per Windows 64 bit vs 32 bit. Se non lo sai, apri il Pannello di controllo sul tuo computer (visualizzazione icone, non visualizzazione categorie) e vai al sistema, sarà elencato lì.
Vedi diagramma
Scarica e poi installa il programma.
La prima volta che apri ed esegui l'elaborazione probabilmente riceverai un messaggio di sicurezza Java. Fare clic su "consenti" per le reti private. Java è il linguaggio informatico utilizzato da Processing (e Arduino IDE). È interessante notare che non ho mai ricevuto il messaggio di sicurezza con Arduino IDE, solo Processing.
Passaggio 9: elaborazione del codice
OK ora per il codice di elaborazione.
Questa è stata la parte più impegnativa per me, ma anche la più grande opportunità di apprendimento. Mentre il codice Arduino era di circa 20 righe, questo codice ha +/- 270 righe nel codice principale e altre 70 + nelle classi.
Ora la prima cosa che dovresti chiederti è "Cosa sono le classi?". Buona domanda. Questo si riferisce alla programmazione orientata agli oggetti. In breve, ci sono un sacco di cose che accadono nel codice principale: definizione della dimensione e del colore del display, un orologio, un timer, codice per mostrare la posizione del cursore, codice per salvare i dati in un file.csv e poche righe che si occupano di codice che visualizza i grafici a barre. Mentre l'IDE di Arduino aveva tutto il codice su una pagina, questo codice di elaborazione ha tre schede. Il primo è il codice principale ei due successivi sono il codice che visualizza i grafici a barre. (Questo codice è effettivamente memorizzato in tre file separati all'interno della cartella Codice di elaborazione.) Le schede separate sono chiamate "classi" e sono definite nelle righe 48 e 56 e quindi visualizzate dalle righe 179-182 del codice principale. Le persone che hanno scritto il programma Processing lo chiamano programmazione orientata agli oggetti. (vedi: https://processing.org/tutorials/objects/ per una breve descrizione).
Fondamentalmente ciò che fanno le classi (Recta1, Recta2) in questo codice è creare rettangoli che si muovono su e giù in base ai dati ricevuti dal DHT11 via seriale. Pensa che il termometro vecchio stile più alto è il mercurio più è caldo, ma questo viene fatto con i dati, non con il mercurio. In realtà le classi creano quattro rettangoli, due rettangoli statici che rappresentano lo sfondo del termometro e due rettangoli dinamici che rispondono ai dati e si muovono su e giù. Oltre a spostare i rettangoli, il codice cambia il colore del rettangolo dinamico e il colore del display digitale di Temp e Umidità in base ai dati ricevuti via seriale.
Passaggio 10: elaborazione dei file di codice
Solo alcune nozioni di base sull'elaborazione del codice:
Consiglio vivamente di leggere Make: Getting Started withProcessing di Casey Reas e Ben Fry, i fondatori di Processing.
processing.org/books/#reasfry2
Non cercherò di spiegare tutti gli aspetti dell'elaborazione o della scrittura del codice per l'elaborazione. Come ho detto prima, sono un principiante e penso che ci siano persone molto migliori da cui imparare. Tuttavia capisco il codice che ho scritto (prova ed errore sono buoni insegnanti).
1. Innanzitutto bisogna includere le librerie (proprio come in Arduino) e dichiarare le variabili (righe 1-25)
2. Quindi impostare il tabellone (righe 27-63)
3. Esegui una parte ripetuta del codice: ciò che intendo è che questa parte del codice si ripeterà finché il programma è in esecuzione. Ricorderai in Arduino "void loop ();" (Fase 6). In Processing ora è "void draw();" (Linee 65-184)
4. Il prossimo è ottenere i dati dalla porta seriale e assegnarli alle variabili (int, float, String)
int-
galleggiante-
Corda-
(Righe 185-245)
4. Infine un modo per chiudere il programma e salvare i dati (righe 246-271)
Ok: scarica il file Temp_Hum_F_3_2 (per Fahrenheit)
Oppure Temp_Hum_C_3_1 (per gradi centigradi)
e decomprimi il file. Apri con Elaborazione.
Passaggio 11: carattere in elaborazione
Importante: richiamo la vostra attenzione sulle righe 36-37
36 font =loadFont("SourceCodePro-Bold-48.vlw"); // carica il carattere memorizzato nei dati
cartella 37 textFont(font);
Questa libreria di font "SourceCodePro-Bold-48.vlw" è inclusa nei download dei file di elaborazione e non ha bisogno di essere modificata per funzionare.
Tuttavia, per cambiare il carattere in qualcos'altro dovrai caricare il nuovo carattere nello schizzo di elaborazione E sostituire "SourceCodePro-Bold-48.vlw" con il nuovo carattere.
. Fortunatamente Processing ha reso la prima parte molto semplice.
Per prima cosa apri uno schizzo, quindi fai clic su:
Strumenti>Crea carattere
questo fa apparire una finestra
Vedi diagramma
Scorri verso il basso fino al nuovo carattere che desideri, fai clic su di esso e quindi fai clic su OK. Il font è stato ora caricato nella cartella degli schizzi.
Quindi sostituisci il testo "SourceCodePro-Bold-48.vlw" con il nome esatto del nuovo carattere (incluso il formato file.vlw)
Se ciò non viene fatto, il nuovo font non verrà caricato nel codice e il codice genererà errori (proprio come gli errori in Arduino, nella casella nera nella parte inferiore del programma).
Passaggio 12: conclusione
Per avviare il programma di elaborazione, fai clic sulla freccia, potresti ricevere un avviso Java, fai clic su: Consenti accesso.
Vedi diagramma
Ok, il programma ha funzionato? In tal caso, otterrai un display come quello mostrato nel diagramma.
(No? Vedere la risoluzione dei problemi nel passaggio successivo)
Sì? Ora prova a tenere il DHT11 nel palmo chiuso o posizionalo sotto il flusso di aria calda di un asciugacapelli. I numeri dovrebbero cambiare. Sì? Grande. significa che tutto funziona bene.
Per chiudere il programma e salvare i dati, fai clic sulla casella che dice "Fai clic qui per chiudere e salvare i dati".
Ora per trovare i dati salvati, vai alla cartella Temp_Hum_F_3_1 o Temp_Hum_C_3_1 Processing (dovresti essere in grado di trovarlo da solo ormai) aprilo e trova la cartella Data. Apri questo e dovresti vedere un file.csv chiamato dopo la data e l'ora in cui hai chiuso il programma (Esempio 1-10-18--22-30-16.csv significa 10 gennaio 2018 10:30:16 PM). Apri questo con Excel (o l'equivalente del foglio di calcolo Open Office). Dovresti vedere qualcosa come il diagramma. Colonne per data, ora, tempo di esecuzione, temperatura e umidità con i dati. Ora puoi rappresentare graficamente i dati con excel o qualunque cosa tu voglia fare con esso. (Nota: se guardi la prima voce di dati i dati di Temp e Umidità non sono corretti, questo è normale ed è solo un errore al primo avvio del programma)
ok si!!!!!!!
Ce l'hai fatta
Se hai domande, pubblicale e farò del mio meglio per rispondere e aiutare.
Grazie per essere rimasto con questo e buona fortuna. spero che questo sia solo l'inizio…..
Avanti per me Bluetooth e possibilmente Android….
Passaggio 13: risoluzione dei problemi
Problemi con Arduino
Se ricevi un codice di errore (testo arancione nella parte inferiore dell'IDE) dovrebbe essere uno dei seguenti La libreria "DHTlib" non è stata copiata correttamente
La porta COM non è impostata correttamente
Il sensore non è stato collegato correttamente
Il codice non è stato caricato correttamente nell'IDE
Se tutto Arduino sembra andare bene, ricordati di aprire il monitor seriale e vedere se i dati vengono visualizzati
Se vedi dati corretti, significa che il lato Arduino funziona tutto. Ricorda di chiudere il monitor seriale prima di avviare l'elaborazione, se il monitor seriale è aperto L'elaborazione non può leggere i dati.
Problemi di elaborazione:
Questi verranno visualizzati nella parte inferiore del programma di elaborazione.
Se ricevi un errore che descrive "font" torna al passaggio 11 e carica il font come descritto.
Se ricevi un errore del tipo: Errore, disabilitando serialEvent() per COM4 null, riavvia lo schizzo Processing facendo clic sulla freccia come nel passaggio 12
Se ricevi un errore che indica: Errore durante l'apertura della porta seriale, prova a cambiare le linee 32-34 in qualcosa del tipo in cui "COM4" corrisponde alla porta COM nel tuo schizzo Arduino
myPort = newSerial(this, "COM4", 9600);//Port myPort.bufferUntil('\n')//attendere che il seriale abbia dati
Consigliato:
Come creare un registratore di dati in tempo reale di umidità e temperatura con Arduino UNO e SD-Card - Simulazione del data logger DHT11 in Proteus: 5 passaggi
Come creare un registratore di dati in tempo reale di umidità e temperatura con Arduino UNO e SD-Card | Simulazione DHT11 Data-logger in Proteus: Introduzione: ciao, sono Liono Maker, ecco il link YouTube. Stiamo realizzando un progetto creativo con Arduino e lavoriamo su sistemi embedded.Data-Logger: Un data logger (anche data-logger o data recorder) è un dispositivo elettronico che registra i dati nel tempo w
VISUALIZZAZIONE UMIDITÀ E TEMPERATURA SU LCD CON ARDUINO NANO: 5 Step
VISUALIZZAZIONE UMIDITÀ E TEMPERATURA SU LCD CON ARDUINO NANO: Il seguente Instructable si occupa di realizzare una semplice interfaccia lcd con arduino nano
BBQ Pi (con visualizzazione dei dati!): 4 passaggi (con immagini)
BBQ Pi (con visualizzazione dei dati!): Introduzione Il barbecue si riferisce più tipicamente al lento processo di utilizzo del calore indiretto per cucinare le tue carni preferite. Sebbene questo metodo di cottura sia estremamente popolare, specialmente negli Stati Uniti, ha quello che alcuni potrebbero considerare un problema piuttosto serio
Registratore di dati di temperatura e umidità da Arduino a telefono Android con modulo scheda SD tramite Bluetooth: 5 passaggi
Registratore di dati di temperatura e umidità da Arduino a telefono Android con modulo scheda SD tramite Bluetooth: Ciao a tutti, questo è il mio primo Instructable in assoluto, spero di aiutare la comunità dei produttori in quanto ne ho tratto beneficio. Spesso utilizziamo i sensori nei nostri progetti ma trovando un modo per raccogliere i dati, archiviarli e trasferirli su telefoni o altri dispositivi immediatamente
Centro di raccolta dati sensore abilitato per IoT con ESP8266 e PubNub: 9 passaggi (con immagini)
Centro di raccolta dati del sensore abilitato per IoT con ESP8266 e PubNub: la maggior parte dei tutorial su ESP8266 è a livello di principiante (lampeggio remoto di un led) o troppo complessa per qualcuno che sta cercando qualcosa da migliorare e aggiornare sulle sue abilità di lampeggiamento del led. istruibile mira a colmare questa lacuna per creare