Sommario:

Registratore di dati open source (opensdl): 5 passaggi (con immagini)
Registratore di dati open source (opensdl): 5 passaggi (con immagini)

Video: Registratore di dati open source (opensdl): 5 passaggi (con immagini)

Video: Registratore di dati open source (opensdl): 5 passaggi (con immagini)
Video: Set Up and Create Your Own Huginn Automation Instance Using AWS EC2 and Ubuntu Tutorial 2024, Luglio
Anonim
Registratore di dati open source (opensdl)
Registratore di dati open source (opensdl)
Registratore di dati open source (opensdl)
Registratore di dati open source (opensdl)
Registratore di dati open source (opensdl)
Registratore di dati open source (opensdl)

Lo scopo di questo progetto è progettare, costruire e testare un sistema di misurazione a basso costo per studi di valutazione delle prestazioni degli edifici che includa almeno temperatura, umidità relativa, illuminamento ed è estensibile a sensori aggiuntivi e sviluppare il prototipo di questi dispositivi.

Ciò si traduce in un sistema personalizzato e conveniente che consente alle parti interessate di condurre le misurazioni necessarie per la valutazione delle prestazioni degli edifici in modo efficiente e conveniente registrando più parametri ambientali contemporaneamente. L'Open Source Data Logger (OPENSDL) sviluppato è stato confrontato con un data logger HOBO U12-012. Questo sistema di controparte disponibile in commercio può misurare 3 parametri, vale a dire temperatura, umidità relativa e illuminamento, e un canale esterno per altri tipi di sensori. Sarebbe necessario un dispositivo di rilevamento diverso per la misurazione di qualsiasi altro parametro. Le caratteristiche dei parametri da misurare sono limitate all'hardware e al software proprietario, che limita il sistema alla misurazione di determinati parametri con precise precisioni. Un HOBO U12-012 costa circa ₹ 13.000 (US $ 185), mentre l'OPENSDL costa ₹ 4. 605 (US $ 66), che è quasi un terzo della controparte commerciale.

Un data logger open source per il monitoraggio di temperatura, UR e livelli di luce (illuminamento) con l'aiuto di un Arduino Uno Questo è un fai-da-te per lo sviluppo del data logger OPENSDL.

Tempo richiesto: 2-3 ore per la saldatura, 5 ore per l'imballaggio (4 ore per la stampa 3D e 1 ora per il taglio laser) Competenze richieste: Saldatura, poca o nessuna conoscenza di programmazione ed elettronica

Parti richieste:

  1. Arduino Uno con cavo
  2. Schermo del registratore di dati
  3. Batteria a bottone CR1220
  4. Scheda di breakout del sensore di pressione dell'umidità della temperatura BME280
  5. Scheda breakout del sensore di luce TSL2561
  6. ESP01-8266 Modulo Wi-Fi
  7. Connettore RJ-9 maschio e femmina
  8. Intestazioni di stacking dello scudo per Arduino
  9. Scheda di memoria SD (qualsiasi capacità)
  10. Tavola vettoriale (26 x 18 fori)
  11. 8 batterie AA Portabatterie

Strumenti richiesti:

  • Saldatore (35W)
  • Filo di saldatura
  • Tronchese
  • Strumento di piegatura
  • Multimetro

Software richiesto: Arduino IDE (1.0.5 o superiore)

Librerie Arduino utilizzate:

  • Libreria di fili
  • Libreria SparkFun TSL2561
  • Libreria multisensore Cactus BME280
  • Libreria di schede SD
  • Libreria SPI
  • Libreria RTC

Nota: il sensore BME280 è un sensore di temperatura, umidità relativa e pressione molto preciso di Bosch. Allo stesso modo, il DS1307 è un preciso orologio in tempo reale di Maxim e il TSL2561 è un accurato sensore di luce. Esistono alternative meno costose e meno accurate per questi prodotti, ma questo tutorial era rivolto alle persone interessate a raccogliere dati per la valutazione delle prestazioni e la creazione di applicazioni di monitoraggio che richiedono alta precisione e accuratezza. Ciò significa che qualsiasi configurazione hardware specifica e configurazione software (librerie, codice programma) è stata pensata esclusivamente per i prodotti specificati.

Passaggio 1: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Lo scudo del data logger può essere facilmente impilato sulla scheda Arduino Uno. Questo scudo fornisce le capacità di registrazione dei dati (mantenimento del tempo e archiviazione dei dati). Lo scudo doveva essere impilato. Una batteria a bottone CR1220 doveva essere inserita nello slot rotondo fornito per mantenere l'orologio in funzione anche quando l'Arduino è spento. La scheda di memoria SD deve essere inserita nello slot per schede a bordo fornito. Uno scudo personalizzato unico è stato sviluppato utilizzando pin femmina del connettore RJ-9 e intestazioni di impilamento dello scudo Arduino. Le intestazioni appropriate sono state saldate nelle posizioni appropriate in modo che lo shield si adatti perfettamente alla scheda Arduino. L'Arduino ha 18 pin su un lato e 14 pin sull'altro. Le intestazioni con lo stesso numero di pin sono state utilizzate alla stessa spaziatura (18 pin di distanza) come su Arduino. Lo spazio extra rimanente adiacente alle intestazioni è stato utilizzato per posizionare il connettore RJ-9.

Le intestazioni erano il modo migliore per utilizzare i pin richiesti, rendendoli ancora disponibili per l'uso con altri componenti. I sensori utilizzati seguono il protocollo di comunicazione I2C, che richiede 4 pin di Arduino, ovvero: SDA (disponibile anche come A4), SCL (disponibile anche come A5), 3.3V & GND. I quattro fili che escono dal connettore RJ-9 sono stati saldati in questi quattro pin dell'intestazione. Il numero di connettori RJ-9 richiesti dipende dal numero di sensori. In questo progetto sono stati utilizzati 3 connettori RJ-9 (due per BME280 e uno per TSL2561). I quattro fili che escono dal connettore RJ-9 erano codificati a colori e ogni filo colorato era designato con un pin specifico per tutti i connettori RJ-9. Va notato che il codice colore può variare su diversi pezzi RJ-9. In tal caso, è necessario annotare la posizione del filo sul connettore. Il connettore RJ-9, dopo la saldatura, è stato fatto aderire alla scheda vettoriale utilizzando un Feviqwik, in modo che si fissasse sulla superficie. Queste connessioni possono essere verificate utilizzando la modalità di continuità sul multimetro. Quando è in modalità continuità, il multimetro dovrebbe mostrare una resistenza zero. Collegare una delle sonde del multimetro al pin saldato e un'altra sonda al pin all'interno del connettore RJ-9. Il multimetro dovrebbe emettere un segnale acustico, il che significa che i giunti di saldatura sono corretti e che i collegamenti sono stati eseguiti correttamente. Se il tono non viene emesso, controllare i giunti di saldatura. Allo stesso modo, saldare il connettore RJ-9 con gli stessi fili che si collegano agli stessi fori sulle schede di breakout del sensore, ovvero A4, A5, 3,3 V e GND. Il sensore BME280 supporta due indirizzi I2C, il che significa che due sensori BME280 possono essere collegati allo stesso controller contemporaneamente. Durante questa operazione, l'indirizzo di uno dei sensori deve essere modificato collegando i pad di saldatura sul sensore. Un chip di connessione wireless ESP-01 richiedeva le seguenti connessioni con Arduino.

ESP-01 ---------Arduino Uno

10 --------------------TX

11 --------------------RX

Vcc ----------------CH_PD

Vcc -------------------Vcc

GND -----------------GND

Nota: i LED multipli su Arduino Uno sono stati rimossi per migliorare la durata della batteria. Il LED dell'indicatore di alimentazione, i LED RX e TX sono stati rimossi riscaldando i giunti di saldatura e spingendo il LED con una pinza.

Passaggio 2: configurazione di IDE e librerie

Prima di eseguire qualsiasi programmazione, è necessario scaricare Arduino IDE (Integrated Development Environment). La programmazione è stata fatta su questa piattaforma. Erano necessarie librerie diverse per interagire con i diversi componenti di OPENSDL. Le seguenti librerie sono state utilizzate per i componenti indicati.

Componente ------------------------------------------------- --------------Biblioteca

Sensore di temperatura e umidità relativa BME280 ---------------------------------Cactus_io_BME280_I2C.h

Sensore di luce------------------------------------------------ ----------------SparkFun TSL2561.h

Orologio in tempo reale ----------------------------------------------- -------------RTClib.h

Presa per scheda SD ----------------------------------------------- -------------SD.h

Connessione I2C------------------------------------------------ -------------Wire.h

Non è necessaria una libreria separata per comunicare con ESP01 poiché il codice caricato in Arduino ha comandi AT, che vengono inviati al monitor seriale, da cui ESP-01 prende le istruzioni. Quindi, fondamentalmente, i comandi AT con cui viene eseguito ESP01, vengono stampati nel monitor seriale, che vengono presi come comando di input da ESP-01. Per installare queste librerie, dopo averle scaricate, apri l'IDE di Arduino, vai su Sketch -> Includi libreria -> Aggiungi libreria. Zip e seleziona le librerie scaricate.

Passaggio 3: programmazione del sistema

Programmazione del sistema
Programmazione del sistema

Prima di programmare OPENSDL, collegare Arduino a un laptop. Dopo la connessione, vai su Strumenti -> Porta e seleziona la porta COM a cui è connesso OPENSDL. Inoltre, assicurati che in Strumenti -> Schede, Arduino Uno sia selezionato.

OPENSDL è stato sviluppato per funzionare in 2 modalità. Nella prima modalità, memorizza i dati sulla scheda SD sullo scudo del datalogger. Nella seconda modalità, invia i dati su Internet a un sito Web utilizzando un chip Wi-Fi ESP-01. Il programma per entrambe le modalità è diverso. Queste righe di codice possono essere copiate e incollate direttamente nell'editor IDE di Arduino e utilizzate direttamente. Una volta nel codice, dobbiamo fare alcune personalizzazioni secondo le nostre esigenze:

  1. Modificare manualmente il valore del ritardo (1000) alla fine del codice per modificare l'intervallo di registrazione. Il valore 1000 rappresenta l'intervallo in millisecondi.
  2. Modifica la riga di codice che dice mySensorData = SD.open("Logged01.csv", FILE_WRITE); e sostituire Logged01 con il nome file del nome file desiderato. L'estensione del file può essere modificata anche modificando l'estensione.csv subito dopo il nome del file.
  3. L'equazione di calibrazione ottenuta trovando la correlazione tra il sensore Master/riferimento e il BME280 varierà con ciascun sensore. Sostituire questa riga di codice con l'equazione per la calibrazione dei sensori: Serial.print((1.0533*t2)-2.2374) – per sensore con indirizzo di default (0x77), dove t2 è il valore letto dal sensore di temperatura.

È stato previsto un programma separato per la programmazione della seconda modalità disponibile di OPENSDL, ovvero il sistema wireless. L'ESP-01 deve essere collegato all'OPENSDL secondo le connessioni come spiegato nel Passaggio 2. Dopo aver completato le connessioni, collega l'Arduino al laptop e carica uno schizzo vuoto nell'Arduino. Metti ESP-01 in modalità di aggiornamento e aggiorna il firmware all'ultimo aggiornamento disponibile. Dopo l'aggiornamento, assicurati di collegare il pin di ripristino di Arduino con il pin da 3,3 V, che bypassa il bootloader di Arduino

Passaggio 4: fabbricazione

fabbricazione
fabbricazione
fabbricazione
fabbricazione
fabbricazione
fabbricazione

Un involucro per OPENSDL è stato creato per la protezione e per migliorare l'estetica. Gli involucri sono stati sviluppati mediante stampa 3D utilizzando materiale PLA e l'involucro per il microcontrollore è stato sviluppato tagliando al laser il foglio MDF e incollando i pezzi insieme. I modelli stampati in 3D sono stati sviluppati utilizzando il software SketchUp e i disegni dxf 2D per il taglio laser sono stati creati utilizzando AutoCAD.

Per la stampa 3D, i file STL prodotti utilizzando SketchUp sono stati aperti e controllati nel software Ultimaker Cura 3.2.1. Assicurarsi che venga utilizzato materiale PLA e che l'ugello della stampante utilizzata sia per la stampa da 0,4 mm. La piastra di costruzione della stampante 3D potrebbe richiedere la colla per attaccare l'oggetto stampato in 3D. Ma quando la stampa è completa, la colla crea una forte adesione tra l'oggetto stampato e la piastra di costruzione.

Passaggio 5: codice

Il codice (file.ino) è fatto per funzionare nel software Arduino IDE. Ecco il link alla mia pagina Github per il codice e altri dettagli.

github.com/arihant93/OPENSDL

Non esitate a porre domande sul progetto.

Grazie.

Consigliato: