Sommario:

CloudyData - Da ESP8266 a Fogli Google semplificati: 10 passaggi (con immagini)
CloudyData - Da ESP8266 a Fogli Google semplificati: 10 passaggi (con immagini)

Video: CloudyData - Da ESP8266 a Fogli Google semplificati: 10 passaggi (con immagini)

Video: CloudyData - Da ESP8266 a Fogli Google semplificati: 10 passaggi (con immagini)
Video: Arduino IDE + ESP32 + Google Sheets | ESP32 with Google Sheets (Writing Data and Reading Data) 2024, Luglio
Anonim
CloudyData - Da ESP8266 a Fogli Google semplificati
CloudyData - Da ESP8266 a Fogli Google semplificati

Ho cercato a lungo l'archiviazione dei dati in cloud negli ultimi anni: è interessante monitorare i dati da qualsiasi tipo di sensore, ma è più interessante se questi dati sono disponibili ovunque senza alcuna difficoltà di archiviazione come l'utilizzo di schede SD o simile, nella memorizzazione locale. Anni fa memorizzavo in locale su schede SD i dati sulla velocità del vento, prima che i servizi IoT e cloud iniziassero a essere semplici da usare: ora un passo oltre è possibile con particolari difficoltà, anche se non sei un esperto di IoT o uno sviluppatore.

In questo tutorial descriverò come sto monitorando la qualità dell'aria all'interno di casa, in particolare facendo riferimento alla concentrazione di polvere e particolato vicino alla mia stampante 3D, cercando di capire se il processo di stampa 3D è pericoloso in termini di PM2.5 e come sto utilizzando Fogli Google per archiviare i dati, senza bisogno di alcun servizio di terze parti.

Passaggio 1: obiettivo generale

Obiettivo generale
Obiettivo generale

Voglio sapere se vivere in presenza di una stampante 3D può essere pericoloso.

Per fare questo ho bisogno di dati e i dati devono essere archiviati nel cloud.

Voglio utilizzare Fogli Google poiché è semplice ed efficace.

Anch'io voglio la privacy: quindi condividere i dati con Google non è la mia prima scelta ma è meglio che utilizzare servizi di terze parti, come fanno molti blogger.

L'utilizzo di Fogli Google è un passo verso il caricamento dei dati su un archivio locale personale come Nextcloud su un semplice NAS: questo sarà descritto in un prossimo tutorial.

Passaggio 2: Primo passaggio: sensori

Primo passo: sensori
Primo passo: sensori
Primo passo: sensori
Primo passo: sensori

Utilizzo 2 sensori per monitorare la qualità dell'aria della mia casa:

  • un Nova PM Sensor SDS011 Air Quality Detection Sensor Module, un ottimo pezzo di hardware, relativamente semplice da usare con Arduino e schede simili. Puoi usarlo con il suo software (solo Windows!:-() e adattatore USB, o collegandolo a Arduino con le librerie Molte informazioni le trovate qui:

    • inovafitness.com/en/a/chanpinzhongxin/95.ht…
    • www-sd-nf.oss-cn-beijing.aliyuncs.com/%E5%…
    • aqicn.org/sensor/sds011/
  • uno scudo SHT30 di Wemos, per Wemos D1 mini: ho usato una versione v1.0.0, la versione attuale è v2.1.0 ma hanno lo stesso ingombro, stesse funzionalità

    wiki.wemos.cc/products:d1_mini_shields:sht…

Passaggio 3: secondo passaggio: connessione al microcontrollore

Secondo passo: connessione al microcontrollore
Secondo passo: connessione al microcontrollore

Wemos D1 mini è probabilmente il modo migliore per prototipare intorno a ESP8266: connettore microUSB, led a bordo, simpatici scudi pronti all'uso disponibili.

Ho collegato direttamente lo shield SHT30 su Wemos D1 mini (attenzione all'orientamento!), quindi ho collegato Nova Air Sensor a Wemos D1 mini come segue:

Perno GND Wemos Sensore Nova Air GND

Sensore Wemos 5V pin Nova Air 5V

Pin Wemos D5 (pin RX) Sensore Nova Air TX

Pin Wemos D6 (pin TX) Sensore Nova Air RX

Puoi dare un'occhiata qui per maggiori informazioni:

www.hackair.eu/docs/sds011/

www.zerozone.it/tecnologia-e-sicurezza/nov…

www.instructables.com/id/Make-one-PM25-mon…

Passaggio 4: terzo passaggio: creazione di uno schizzo

Ora devi costruire uno schizzo: siamo fortunati, alcuni ragazzi hanno sviluppato librerie specifiche per Nova Air Sensor in modo da poter scrivere facilmente il tuo software.

Anche il mio usa la libreria SHT30, per misurare e caricare i dati di temperatura e umidità.

Ho remixato alcuni sketch trovati online, in particolare quello di nishant_sahay7, il cui tutorial è completo e ricco di informazioni. Potete trovare qui.

Ho usato questa libreria:

Commenterò solo poche righe nello schizzo che ho generato:

riga 76-77: svegliando il sensore di polvere per un po', poi tornerà a dormire, poiché le schede tecniche affermano che è destinato a funzionare per circa 8000 ore, che è più che sufficiente, ma non infinito

sds.wakeup();delay(30000); // lavora 30 secondi

riga 121: i dati inviati sono temperatura, umidità, PM2.5 e PM10

sendData(t, h, pm2_5, pm10);

riga 122-123: non uso ESP.deepSleep, proverò in futuro; ormai basterà un semplice ritardo (90000) per avere l'invio dei dati ogni 30s + 90s = 2 minuti, più o meno

//ESP.deepSleep(dataPostDelay);

ritardo (90000);

riga 143:

questa è la riga più importante, l'ordine in cui crei String_url per caricare i dati deve essere lo stesso che utilizzerai in Google Script (vedi i passaggi successivi)

String url = "/macros/s/" + GAS_ID + "/exec?temperature=" + string_x + "&humidity=" + string_y + "&PM2.5=" + string_z + "&PM10=" + string_k;

Passaggio 5: quarto passaggio: preparazione del foglio Google e del relativo script

Quarto passaggio: preparazione del foglio Google e del relativo script
Quarto passaggio: preparazione del foglio Google e del relativo script
Quarto passaggio: preparazione del foglio Google e del relativo script
Quarto passaggio: preparazione del foglio Google e del relativo script
Quarto passaggio: preparazione del foglio Google e del relativo script
Quarto passaggio: preparazione del foglio Google e del relativo script

I crediti vanno a nishant_sahay7, come ho detto.

Mi limito a ripubblicare qui il suo lavoro, aggiungendo alcuni suggerimenti per futuri miglioramenti e modding:

  1. Configurazione di Fogli Google

    1. Apri Google Drive e crea un nuovo foglio di calcolo e assegnagli un nome, dopodiché fornisci i campi con i parametri che desideri definire.
    2. L'ID del foglio è mostrato nella figura 2
    3. Vai a Strumenti-Editor di script (figura 3)
    4. Assegna lo stesso nome di Spreadsheet (figura 4)
    5. Scegli il codice da qui e incollalo nella finestra dell'editor di script (figura 5)

      Sostituisci var sheet_id con il tuo ID foglio di calcolo dal passaggio 2

    6. Vai a Pubblica - Distribuisci come app Web (figura 6)
    7. Modificare il tipo di accesso a chiunque, anche anonimo, e distribuire (figura 7)
    8. Vai a Permessi di revisione (figura 8)
    9. Scegli Avanzate (figura 9)
    10. Scegli Vai a (nome file) e poi consenti (figura 10)
    11. Copia l'URL dell'app Web corrente e fai clic su OK (figura 11)
  2. Ottenere l'ID di Google Script

    • L'URL copiato sarà qualcosa del tipo: https://script.google.com/macros/s/AKfycbxZGcTwqe… il collegamento sopra è nella forma di: https://script.google.com/macros/s/AKfycbxZGcTwqe…/exec Quindi qui l'ID di Google Script è: AKfycbxZGcTwqeDgF3MBMGj6FJeYD7mcUcyo2V6O20D6tRlLlP2M_wQ Verrà utilizzato per inviare i dati a Fogli Google: Esempio:

      script.google.com/macros/s/AKfycbxZGcTwqeD…

      Incollando il collegamento sopra in una nuova finestra e premendo invio i dati verranno inviati a Google Sheet e nella finestra verrà visualizzato un messaggio di conferma. I dati inviati saranno

      • temperatura=1
      • umidità=2
      • PM2.5=3
      • PM10=33,10
  3. Cambia in base alle tue esigenze

    devi modificare Google Script AND Arduino sketch di conseguenza, per aggiungere o rimuovere valori e colonne: confronta la figura 5 e la figura 5b

Passaggio 6: quinto passaggio: collegare tutti insieme

Quinto passo: collegare tutti insieme
Quinto passo: collegare tutti insieme

Ora hai un dispositivo che invia dati a Fogli Google, uno Script Google in grado di ricevere e allocare dati, basta un browser per visualizzare i dati, su computer o smartphone o come preferisci.

La cosa migliore sarebbe gestire un po' questi dati, per mostrarne solo alcuni necessari.

Passaggio 7: sesto passaggio: rappresentazione grafica dei dati

Sesto passo: rappresentare graficamente i dati
Sesto passo: rappresentare graficamente i dati
Sesto passo: rappresentare graficamente i dati
Sesto passo: rappresentare graficamente i dati

Per avere un pannello semplice ma interessante e utile ho organizzato i miei dati in questo modo:

  1. il foglio google originale, quello principale, utilizzato per prelevare il suo ID per entrare in Google Script, DEVE essere intatto e mantenere il suo ordine
  2. Ho generato altri due fogli, seguendo il principale

    1. uno per estrarre solo pochi dati da tutta la roba, ad esempio ultime 24 ore Per estrarre i dati ho usato la funzione SORT e QUERY, inserendo nella prima cella i dati estratti

      =SORT(QUERY(Foglio1!A2:Z, "order by A desc limit 694"), 1, 1)

    2. l'altro per creare grafici per mostrare i valori, facendo un semplice pannello

Passaggio 8: settimo passaggio: analisi dei dati

Settimo passo: analizzare i dati
Settimo passo: analizzare i dati

Ho fatto alcune analisi e posso dire che, ormai, non dovrebbe esserci alcun pericolo utilizzando la stampante 3D (materiale: PLA) in termini di PM2.5 e PM10. Ogni volta che inizio una nuova stampa i valori del particolato vanno a picco, solo per un po': penso che ciò sia dovuto alla polvere depositata in precedenza sul letto della stampante 3D, in modo che quando la ventola dell'effettore raggiunge la piastra inizia a volare tutt'intorno. Dopo alcuni minuti la polvere è sparita poiché le ventole continuano a soffiare e i valori di PM2.5 e PM10 scendono a valori inferiori.

Occorrono, infatti, ulteriori dati e analisi.

Consigliato: