Sommario:

Datalogger Arduino: 8 passaggi (con immagini)
Datalogger Arduino: 8 passaggi (con immagini)

Video: Datalogger Arduino: 8 passaggi (con immagini)

Video: Datalogger Arduino: 8 passaggi (con immagini)
Video: Arduino Sd Card: Come funziona e come Salvare File - (Arduino datalogger) 2024, Dicembre
Anonim
Datalogger Arduino
Datalogger Arduino
Datalogger Arduino
Datalogger Arduino

In questo tutorial, realizzeremo un semplice data logger usando Arduino. Il punto è imparare le basi dell'uso di Arduino per acquisire informazioni e stampare sul terminale. Possiamo utilizzare questa configurazione di base per completare una serie di attività.

Per iniziare:

Avrai bisogno di un account Tinkercad (www.tinkercad.com). Vai e registrati con la tua e-mail o account di social media.

L'accesso ti porta alla dashboard di Tinkercad. Fare clic su "Circuiti" a sinistra e selezionare "Crea nuovo circuito". Iniziamo!

Puoi trovare il file completo su TInkercad Circuits - Grazie per averlo controllato!

Passaggio 1: aggiungi alcuni componenti

Aggiungi alcuni componenti
Aggiungi alcuni componenti
Aggiungi alcuni componenti
Aggiungi alcuni componenti
Aggiungi alcuni componenti
Aggiungi alcuni componenti

Avrai bisogno di alcuni componenti di base. Questi includono:

  • Scheda Arduino
  • tagliere

Aggiungili cercandoli e trascinandoli nell'area centrale.

Posiziona la breadboard sopra Arduino. Semplifica la visualizzazione delle connessioni in un secondo momento.

Passaggio 2: una nota sui breadboard

Una nota sui breadboard
Una nota sui breadboard

Una breadboard è un dispositivo super utile per la prototipazione rapida. Lo usiamo per collegare i componenti. Alcune cose da notare.

  1. I punti sono collegati verticalmente, ma la linea nel mezzo separa questa connessione dalle colonne superiore e inferiore.
  2. Le colonne non sono collegate da sinistra a destra, come in tutta la riga. Ciò significa che tutti i componenti devono essere collegati attraverso le colonne anziché verticalmente.
  3. Se hai bisogno di usare pulsanti o interruttori, collegali attraverso l'interruzione nel mezzo. Lo visiteremo in un tutorial successivo.

Passaggio 3: aggiungere due sensori

Aggiungi due sensori
Aggiungi due sensori

I due sensori che stiamo utilizzando sono un sensore fotosensibile e un sensore di temperatura.

Questi sensori valutano la luce e la temperatura. Usiamo Arduino per leggere il valore e visualizzarlo nel monitor seriale su Arduino.

Cerca e aggiungi i due sensori. Assicurati che siano posizionati tra le colonne sulla breadboard. Metti abbastanza spazio tra loro per renderli più facili da vedere.

Passaggio 4: sensore fotosensibile

Sensore fotosensibile
Sensore fotosensibile
Sensore fotosensibile
Sensore fotosensibile
Sensore fotosensibile
Sensore fotosensibile
Sensore fotosensibile
Sensore fotosensibile
  1. Per il sensore fotosensibile, aggiungi un filo dal pin 5V su Arduino alla stessa colonna della gamba destra sulla parte nella breadboard. Cambia il colore del filo in rosso.
  2. Collega la gamba sinistra tramite il pin nella stessa colonna al pin A0 (A-zero) sull'Arduino. Questo è il pin analogico, che useremo per leggere il valore dal sensore. Colora questo filo di giallo o qualcosa di diverso dal rosso o dal nero.
  3. Posiziona un resistore (cerca e fai clic e trascina) sulla scheda. Questo completa il circuito e protegge il sensore e il pin.

    • Giralo in modo che attraversi le colonne.
    • Collega una gamba alla colonna della gamba destra sulla breadboard
    • Posizionare un filo dall'altra estremità del resistore a terra

      Cambia il colore del filo in nero

  4. Ricontrolla tutte le connessioni. Se qualcosa non è al posto giusto, non funzionerà correttamente.

Passaggio 5: avvia il codice

Inizia il codice
Inizia il codice
Inizia il codice
Inizia il codice
Inizia il codice
Inizia il codice

Diamo un'occhiata al codice di questo componente.

Innanzitutto, guarda la terza immagine in questo passaggio. Contiene del codice con due funzioni:

configurazione nulla()

ciclo vuoto()

In C++, tutte le funzioni forniscono il loro tipo restituito, quindi il nome, quindi le due parentesi tonde che possono essere utilizzate per passare argomenti, solitamente come variabili. In questo caso, il tipo restituito è void o niente. Il nome è setup e la funzione non accetta argomenti.

La funzione di configurazione viene eseguita una volta all'avvio di Arduino (quando lo si collega o si collegano le batterie).

La funzione loop viene eseguita in un ciclo costante dal millisecondo in cui viene completata la funzione di configurazione.

Tutto ciò che inserisci nella funzione loop verrà eseguito quando viene eseguito Arduino. Tutto fuori che funzionerà solo quando chiamato. Come se definissimo e chiamassimo un'altra funzione al di fuori del ciclo.

Compito

Apri il pannello Codice con il pulsante in Tinkercad. Cambia il menu a discesa Blocchi in Testo. Accetta la finestra di avviso che si apre. Ora, elimina tutto ciò che vedi tranne il testo nella terza immagine in questo passaggio.

Variabili

Per iniziare, dobbiamo assegnare alcune variabili in modo da rendere il nostro codice davvero efficiente.

Le variabili sono come bucket che possono contenere solo un oggetto (C++ è ciò che chiamiamo orientato agli oggetti). Sì, abbiamo gli array, ma queste sono variabili speciali e ne parleremo più avanti. Quando assegniamo una variabile, dobbiamo dirle di che tipo è, quindi assegnarle un valore. Sembra così:

int someVar = A0;

Quindi, abbiamo assegnato una variabile e le abbiamo dato il tipo int. Un int è un intero o un numero intero.

"Ma non hai usato un numero intero!", ti sento dire. È vero.

Arduino fa qualcosa di speciale per noi, quindi possiamo usare A0 come intero, perché in un altro file definisce A0 come intero, quindi possiamo usare la costante A0 per fare riferimento a questo intero senza dover sapere di cosa si tratta. Se avessimo semplicemente digitato 0, faremmo riferimento al pin digitale in posizione 0, che non funzionerebbe.

Quindi, per il nostro codice scriveremo una variabile per il sensore che abbiamo allegato. Anche se ti consiglio di dargli un nome semplice, dipende da te.

Il tuo codice dovrebbe assomigliare a questo:

int sensore di luce = A0;

void setup() { } void loop() { }

Ora diciamo ad Arduino come gestire il sensore su quel pin. Eseguiremo una funzione all'interno del setup per impostare la modalità pin e dire ad Arduino dove cercarla.

int sensore di luce = A0;

void setup() { pinMode(lightSensor, INPUT); } ciclo vuoto() { }

la funzione pinMode dice ad Arduino che il pin (A0) sarà usato come pin INPUT. Nota il camelCaseUsed (vedi ogni prima lettera è una maiuscola, poiché ha le gobbe, quindi… cammello…!) per le variabili e i nomi delle funzioni. Questa è una convenzione a cui è bene abituarsi.

Infine, usiamo la funzione analogRead per ottenere alcuni dati.

int sensore di luce = A0;

void setup() { pinMode(lightSensor, INPUT); } void loop() { int reading = analogRead(lightSensor); }

Vedrai che abbiamo memorizzato la lettura in una variabile. Questo è importante perché dobbiamo stamparlo. Usiamo la libreria Serial (una libreria è un codice che possiamo aggiungere al nostro codice per rendere le cose più veloci da scrivere, semplicemente chiamandolo per definizione) per stamparlo sul monitor seriale.

int sensore di luce = A0;

void setup() { // Imposta le modalità pin pinMode(lightSensor, INPUT); // Aggiunge la libreria seriale Serial.begin(9600); } void loop() { // Legge il sensore int reading = analogRead(lightSensor); // Stampa il valore sul monitor Serial.print("Light: "); Serial.println(lettura); // ritarda il ciclo successivo di 3 secondi delay(3000); }

Alcune novità! Innanzitutto, vedrai questi:

// Questo è un commento

Usiamo i commenti per dire ad altre persone cosa sta facendo il nostro codice. Dovresti usarli spesso. Il compilatore non li leggerà e non li convertirà in codice.

Ora abbiamo aggiunto anche la libreria Serial con la linea

Serial.begin(9600)

Questo è un esempio di una funzione che accetta un argomento. Hai chiamato la libreria Serial, quindi hai eseguito una funzione (sappiamo che è una funzione a causa delle parentesi tonde) e hai passato un numero intero come argomento, impostando la funzione Serial in modo che operi a 9600 baud. Non preoccuparti perché - sappi solo che funziona, per ora.

La cosa successiva che abbiamo fatto è stata stampare sul monitor seriale. Abbiamo utilizzato due funzioni:

// Questo stampa sul seriale senza interruzioni di riga (un invio alla fine)

Serial.print("Luce: "); // Questo inserisce l'interruzione di riga in modo che ogni volta che leggiamo e scriviamo, va su una nuova riga Serial.println(reading);

Ciò che è importante vedere è che ognuno ha uno scopo separato. Assicurati che le tue stringhe utilizzino le virgolette e di lasciare lo spazio dopo i due punti. Ciò aiuta la leggibilità per l'utente.

Infine, abbiamo usato la funzione di ritardo, per rallentare il nostro ciclo e farlo leggere solo una volta ogni tre secondi. Questo è scritto in migliaia di secondi. Modificalo per leggere solo una volta ogni 5 secondi.

Grande! Andiamo!

Passaggio 6: simulazione

Simulazione
Simulazione
Simulazione
Simulazione
Simulazione
Simulazione

Controlla sempre che le cose funzionino eseguendo la simulazione. Per questo circuito, dovrai anche aprire il simulatore per verificarne il funzionamento e verificare i tuoi valori.

Avvia la simulazione e controlla il monitor seriale. Modificare il valore del sensore di luce facendo clic su di esso e modificando il valore utilizzando il cursore. Dovresti vedere il cambiamento di valore anche nel monitor seriale. In caso contrario, o se quando si preme il pulsante Avvia simulazione si ottengono errori, tornare indietro e controllare tutto il codice.

  • Concentrati sulle linee indicate nella finestra di debug rossa che ti verrà presentata.
  • Se il tuo codice è corretto e la simulazione continua a non funzionare, controlla il cablaggio.
  • Ricarica la pagina: potresti avere un errore di sistema/server non correlato.
  • Agita il pugno verso il computer e controlla di nuovo. Tutti i programmatori lo fanno. Tutto. Il. Tempo.

Passaggio 7: collegare il sensore di temperatura

Collegare il sensore di temperatura
Collegare il sensore di temperatura

Immagino che tu sia sulla strada giusta ora. Vai avanti e cabla il sensore di temperatura come suggerisce l'immagine. Notare il posizionamento dei fili 5V e GND nello stesso spazio di quelli per la luce. Questo va bene. È come un circuito parallelo e non causerà problemi nel simulatore. In un circuito reale, dovresti usare una scheda breakout o uno scudo per fornire una migliore gestione dell'alimentazione e connessioni.

Ora aggiorniamo il codice.

Il codice del sensore di temperatura

Questo è un po' più complicato, ma solo perché dobbiamo fare dei calcoli per convertire la lettura. Non è male.

int sensore di luce = A0;

int tempSensor = A1; void setup() { // Imposta le modalità pin pinMode(lightSensor, INPUT); // Aggiunge la libreria seriale Serial.begin(9600); } void loop() { // Il sensore di temperatura // Creazione di due variabili su una riga - oh efficienza! // Float var per memorizzare una tensione decimale float, gradi C; // Leggere il valore del pin e convertirlo in una lettura da 0 - 5 // Essenzialmente tensione = (5/1023 = 0.004882814); tensione = (analogRead(tempSensor) * 0.004882814); // Converti in gradi C gradiC = (tensione - 0,5) * 100; // Stampa sul monitor seriale Serial.print("Temp: "); Serial.print(gradiC); Serial.println("oC"); // Legge il sensore int reading = analogRead(lightSensor); // Stampa il valore sul monitor Serial.print("Light: "); Serial.println(lettura); // ritarda il ciclo successivo di 3 secondi delay(3000); }

Ho apportato alcuni aggiornamenti al codice. Esaminiamoli singolarmente.

Per prima cosa ho aggiunto la riga

int tempSensor = A1;

Proprio come il sensore di luce, ho bisogno di memorizzare il valore in una variabile per renderlo più semplice in seguito. Se dovessi cambiare la posizione di questo sensore (come ricablare la scheda), devo solo cambiare una riga di codice, non cercare nell'intera base di codici per cambiare A0 o A1, ecc.

Quindi, abbiamo aggiunto una riga per memorizzare la lettura e la temperatura in un float. Nota due variabili su una riga.

tensione di mantenimento, gradi C;

Questo è davvero utile perché riduce il numero di righe che devo scrivere e velocizza il codice. Tuttavia, può essere più difficile trovare errori.

Ora faremo la lettura e la memorizzeremo, quindi la convertiremo nel nostro valore di output.

tensione = (analogRead(tempSensor) * 0.004882814);

gradiC = (tensione - 0,5) * 100;

Queste due righe sembrano difficili, ma nella prima prendiamo la lettura e la moltiplichiamo per 0,004… perché converte 1023 (la lettura analogica restituisce questo valore) in una lettura di 5.

La seconda riga moltiplica quella lettura per 100 per spostare il punto decimale. Questo ci dà la temperatura. Pulito!

Passaggio 8: test e verifica

Test e controlli
Test e controlli

Tutte le cose vanno secondo i piani, dovresti avere un circuito funzionante. Testare eseguendo la simulazione e utilizzando il monitor seriale. Se hai errori, controlla, ricontrolla e agita il pugno.

Ce l'hai fatta? Condividi e raccontaci la tua storia!

Questo è il circuito finale incorporato per te in modo da poter giocare/testare la creazione finale. Grazie per aver completato il tutorial!

Consigliato: