Sommario:

Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: 13 passaggi (con immagini)
Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: 13 passaggi (con immagini)

Video: Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: 13 passaggi (con immagini)

Video: Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione: 13 passaggi (con immagini)
Video: Arduino - passo dopo passo Parte 1/2 2024, Luglio
Anonim
Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione
Visualizzazione di temperatura e umidità e raccolta dati con Arduino ed elaborazione

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à:

Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
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

Collega Arduino a DHT11
Collega Arduino a DHT11
Collega Arduino a DHT11
Collega Arduino a DHT11
Collega Arduino a DHT11
Collega Arduino a DHT11
Collega Arduino a DHT11
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
Scarica Arduino IDE

Scarica Arduino IDE e installa sul computer

www.arduino.cc/en/Main/Software

Passaggio 4: collega Arduino al computer

Collega Arduino al computer
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
Carica la libreria
Carica la libreria
Carica la libreria
Carica la libreria
Carica la libreria
Carica la libreria
Carica 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

Ottieni il codice Arduino
Ottieni 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

Carica il codice su Arduino
Carica il codice su Arduino
Carica il codice su Arduino
Carica il codice su Arduino
Carica il codice su Arduino
Carica il codice su Arduino
Carica il codice su Arduino
Carica 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

  1. La libreria "DHTlib" non è stata copiata correttamente
  2. La porta COM non è impostata correttamente
  3. Il sensore non è stato collegato correttamente
  4. 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

Scarica e installa l'elaborazione
Scarica e installa l'elaborazione
Scarica e installa l'elaborazione
Scarica e installa l'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

Codice di elaborazione
Codice di elaborazione

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

Carattere in elaborazione
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

Terminando
Terminando
Terminando
Terminando
Terminando
Terminando
Terminando
Terminando

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

Risoluzione dei problemi
Risoluzione dei problemi
Risoluzione dei problemi
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: