Inhoudsopgave:

CloudyData - ESP8266 naar Google Spreadsheets eenvoudig gemaakt - Ajarnpa
CloudyData - ESP8266 naar Google Spreadsheets eenvoudig gemaakt - Ajarnpa

Video: CloudyData - ESP8266 naar Google Spreadsheets eenvoudig gemaakt - Ajarnpa

Video: CloudyData - ESP8266 naar Google Spreadsheets eenvoudig gemaakt - Ajarnpa
Video: Полное руководство по Google Forms - универсальный инструмент для опросов и сбора данных онлайн! 2024, November
Anonim
CloudyData - ESP8266 naar Google Spreadsheets eenvoudig gemaakt
CloudyData - ESP8266 naar Google Spreadsheets eenvoudig gemaakt

Ik ben de afgelopen jaren al heel lang op zoek naar opslag van cloudgegevens: het is interessant om gegevens van elke soort sensor te monitoren, maar het is interessanter als deze gegevens overal beschikbaar zijn zonder opslagproblemen zoals het gebruik van SD-kaarten of vergelijkbaar, in lokale opslag. Vroeger sloeg ik jaren geleden windsnelheidsgegevens op SD-kaarten op, voordat IoT en cloudservices eenvoudig te gebruiken begonnen te worden: nu is een stap verder mogelijk met bijzondere moeilijkheden, zelfs als je geen IoT-expert of ontwikkelaar bent.

In deze instructable zal ik beschrijven hoe ik mijn luchtkwaliteit in huis bewaak, met name verwijzend naar stof- en deeltjesconcentratie in de buurt van mijn 3D-printer, proberen te begrijpen of 3D-printproces gevaarlijk is in termen van PM2.5, en hoe ik ben Google Spreadsheets gebruiken om gegevens op te slaan, zonder dat er service van derden nodig is.

Stap 1: Algemeen doel

Algemeen doel
Algemeen doel

Ik wil weten of leven in aanwezigheid van een 3D-printer gevaarlijk kan zijn.

Hiervoor heb ik data nodig, en data moeten in de cloud worden opgeslagen.

Ik wil Google Spreadsheets gebruiken omdat het eenvoudig en effectief is.

Ik wil ook privacy: dus het delen van gegevens met Google is niet mijn eerste keuze, maar het is beter dan het gebruik van diensten van derden, zoals veel bloggers doen.

Het gebruik van Google Spreadsheets is een stap in de richting van het uploaden van gegevens naar een persoonlijke lokale opslag zoals Nextcloud op een eenvoudige NAS: dit zal worden beschreven in een toekomstige instructable.

Stap 2: Eerste stap: sensoren

Eerste stap: sensoren
Eerste stap: sensoren
Eerste stap: sensoren
Eerste stap: sensoren

Ik gebruik 2 sensoren om de luchtkwaliteit in huis te bewaken:

  • een Nova PM Sensor SDS011 Air Quality Detection Sensor Module, een geweldig stuk hardware, relatief eenvoudig te gebruiken met Arduino en soortgelijke boards. Je kunt het gebruiken met zijn eigen software (alleen Windows!:-() en USB-adapter, of verbinden met Arduino met bibliotheken Veel info is hier te vinden:

    • inovafitness.com/en/a/chanpinzhongxin/95.ht…
    • www-sd-nf.oss-cn-beijing.aliyuncs.com/%E5%…
    • aqicn.org/sensor/sds011/
  • een SHT30-schild van Wemos, voor Wemos D1 mini: ik gebruikte een v1.0.0-versie, de huidige versie is v2.1.0 maar ze hebben dezelfde footprint, dezelfde functionaliteiten

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

Stap 3: Tweede stap: verbinding maken met microcontroller

Tweede stap: verbinding maken met microcontroller
Tweede stap: verbinding maken met microcontroller

Wemos D1 mini is waarschijnlijk de beste manier om te prototypen rond ESP8266: microUSB-connector, onboard led, mooie schilden klaar voor gebruik beschikbaar.

Ik heb het SHT30-schild rechtstreeks op de Wemos D1 mini aangesloten (zorg voor de oriëntatie!), Daarna heb ik de Nova Air Sensor als volgt op de Wemos D1 mini aangesloten:

Wemos GND-pin Nova Luchtsensor GND

Wemos 5V pin Nova Luchtsensor 5V

Wemos D5-pin (RX-pin) Nova Luchtsensor TX

Wemos D6-pin (TX-pin) Nova Luchtsensor RX

Voor meer info kun je hier kijken:

www.hackair.eu/docs/sds011/

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

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

Stap 4: Derde stap: een schets maken

Nu moet je een schets maken: we hebben geluk, sommige jongens hebben specifieke bibliotheken voor Nova Air Sensor ontwikkeld, zodat je je software gemakkelijk kunt opschrijven.

De mijne gebruikt ook de SHT30-bibliotheek om temperatuur- en vochtigheidsgegevens te meten en te uploaden.

Ik heb een schets geremixt die ik online vond, vooral die van nishant_sahay7, waarvan de tutorial compleet en vol informatie is. Je kunt het hier vinden.

Ik heb deze bibliotheek gebruikt:

Ik zal slechts een paar regels becommentariëren in de schets die ik heb gegenereerd:

regel 76-77: de stofsensor een tijdje wakker maken, dan gaat hij weer slapen, omdat in de datasheets staat dat hij bedoeld is om ongeveer 8000 uur te werken, wat meer dan genoeg is, maar niet oneindig

sds.wakeup();vertraging(30000); // 30 seconden werken

regel 121: verzonden gegevens zijn temperatuur, vochtigheid, PM2.5 en PM10

sendData(t, h, pm2_5, pm10);

regel 122-123: Ik gebruik ESP.deepSleep niet, ik zal het in de toekomst proberen; nu is een simpele vertraging (90000) voldoende om gegevens elke 30s + 90s = 2 minuten, min of meer te verzenden

//ESP.deepSleep(dataPostDelay);

vertraging (90000);

regel 143:

dit is de belangrijkste regel, de volgorde waarin u de String_url maakt om gegevens te uploaden, moet dezelfde zijn die u in Google Script gebruikt (zie volgende stappen)

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

Stap 5: Vierde stap: Google-blad en het bijbehorende script voorbereiden

Vierde stap: Google-spreadsheet en het bijbehorende script voorbereiden
Vierde stap: Google-spreadsheet en het bijbehorende script voorbereiden
Vierde stap: Google-spreadsheet en het bijbehorende script voorbereiden
Vierde stap: Google-spreadsheet en het bijbehorende script voorbereiden
Vierde stap: Google-spreadsheet en het bijbehorende script voorbereiden
Vierde stap: Google-spreadsheet en het bijbehorende script voorbereiden

Credits gaan naar nishant_sahay7, zoals ik al zei.

Ik publiceer hier gewoon zijn werk opnieuw en voeg enkele tips toe voor toekomstige verbeteringen en modding:

  1. Google Spreadsheets instellen

    1. Open Google Drive en maak een nieuwe spreadsheet en geef deze een naam, geef daarna de velden met de parameters die u wilt definiëren.
    2. Blad-ID wordt getoond in figuur 2
    3. Ga naar Tools-Script Editor (figuur 3)
    4. Geef de naam hetzelfde als van Spreadsheet (figuur 4)
    5. Kies hier de code en plak deze in het Script Editor-venster (figuur 5)

      Vervang de var sheet_id door uw Spreadsheet-ID uit stap 2

    6. Ga naar Publiceren - Deploy as Web App (figuur 6)
    7. Wijzig het toegangstype voor iedereen, zelfs anoniem, en implementeer (figuur 7)
    8. Ga naar Machtigingen bekijken (figuur 8)
    9. Kies Geavanceerd (figuur 9)
    10. Kies Ga naar (bestandsnaam) en vervolgens toestaan (figuur 10)
    11. Kopieer de huidige webapp-URL en klik op OK (figuur 11)
  2. Google Script-ID ophalen

    • De gekopieerde URL ziet er ongeveer zo uit: https://script.google.com/macros/s/AKfycbxZGcTwqe… bovenstaande link heeft de vorm van: https://script.google.com/macros/s/AKfycbxZGcTwqe…/exec Dus hier is de Google Script-ID: AKfycbxZGcTwqeDgF3MBMGj6FJeYD7mcUcyo2V6O20D6tRlLlP2M_wQ Het wordt gebruikt om de gegevens naar Google Spreadsheets te pushen: Voorbeeld:

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

      Als u de bovenstaande link in een nieuw venster plakt en op Enter drukt, worden gegevens naar Google Spreadsheets verzonden en verschijnt er een bevestigingsbericht in het venster. Verzonden gegevens zijn:

      • temperatuur=1
      • vochtigheid = 2
      • PM2.5=3
      • PM10=33.10
  3. Verander op uw behoeften

    je moet Google Script EN Arduino-schets dienovereenkomstig wijzigen om waarden en kolommen toe te voegen of te verwijderen: vergelijk figuur 5 en figuur 5b

Stap 6: Vijfde stap: alles met elkaar verbinden

Vijfde stap: alles met elkaar verbinden
Vijfde stap: alles met elkaar verbinden

Nu heb je een apparaat dat gegevens naar Google Spreadsheets verzendt, een Google Script dat gegevens kan ontvangen en toewijzen, een browser is voldoende om gegevens te bekijken, op computer of smartphone of wat je maar wilt.

Het beste zou zijn om een beetje van deze gegevens te beheren, om er maar een paar te tonen die nodig zijn.

Stap 7: Zesde stap: grafische gegevens

Zesde stap: grafische gegevens weergeven
Zesde stap: grafische gegevens weergeven
Zesde stap: grafische gegevens weergeven
Zesde stap: grafische gegevens weergeven

Om een eenvoudig maar interessant en nuttig paneel te hebben, heb ik mijn gegevens op deze manier georganiseerd:

  1. het originele Google-blad, de belangrijkste, gebruikt om zijn ID op te halen om in Google Script in te voeren, MOET onaangeroerd blijven en de volgorde behouden
  2. Ik heb twee andere bladen gegenereerd, de hoofdpagina gevolgd

    1. een om slechts een paar gegevens uit het hele spul te extraheren, bijvoorbeeld de laatste 24 uur Om gegevens te extraheren heb ik de SORT- en QUERY-functie gebruikt, invoegen in de eerste cel met geëxtraheerde gegevens

      =SORTEREN(QUERY(Foglio1!A2:Z, "volgorde op A beschrijf limiet 694"), 1, 1)

    2. de andere om grafieken te maken om waarden weer te geven, waardoor een eenvoudig paneel wordt gemaakt

Stap 8: Zevende stap: gegevens analyseren

Zevende stap: gegevens analyseren
Zevende stap: gegevens analyseren

Ik heb een paar analyses gedaan en ik kan zeggen dat er inmiddels geen gevaar meer zou moeten zijn bij het gebruik van een 3D-printer (materiaal: PLA) in termen van PM2.5 en PM10. Elke keer dat ik een nieuwe afdruk begin, gaan de deeltjeswaarden naar het dak, alleen voor een tijdje: ik denk dat dit te wijten is aan eerder afgezet stof op het 3D-printerbed, zodat wanneer de effectorventilator de plaat bereikt, deze in het rond begint te vliegen. Na een paar minuten is het stof weg omdat de ventilatoren blijven blazen en de PM2.5- en PM10-waarden dalen naar lagere waarden.

Er zijn inderdaad meer gegevens en analyses nodig.

Aanbevolen: