Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

MKR1000-Daten an Google Tabellen senden

Komponenten und Verbrauchsmaterialien

Arduino MKR1000
× 1
DHT11 Temperatur- und Feuchtigkeitssensor (4 Pins)
× 1
Jumper (generisch)
× 1
Breadboard (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE
Google Tabellen

Über dieses Projekt

Dieses Projekt ermöglicht es Ihnen, Daten mit Ihrem MKR1000 zu verarbeiten und diese Daten über WLAN an Google Sheets in der Cloud zu senden. Dieses Projekt kann ohne Kreditkartenanmeldung oder Verwendung von proprietären Blackbox-APIs durchgeführt werden. Für dieses spezielle Beispiel verwende ich den kostengünstigen und allgegenwärtigen DHT11-Umgebungssensor, Sie können jedoch den mitgelieferten Arduino-Code leicht für jeden beliebigen Sensor oder jedes beliebige Gerät ändern. Es lohnt sich, jetzt darauf hinzuweisen, dass dieses Projekt leicht in einer Skizze mit einem meiner verwandten Projekte kombiniert werden könnte, das DHT11-Daten zur grafischen Darstellung auf Thingspeak.com hochlädt.

Dies ist der erste von vier Teilen. Im ersten Teil des Projekts richten Sie Ihr eigenes Google Sheet ein und konfigurieren es so, dass es Ihre WLAN-Daten akzeptiert, indem Sie den mitgelieferten Google App Script-Code verwenden.

Teil 1:Erstellen und Bereitstellen Ihres Google Sheets

1. Melden Sie sich für eine kostenlose Google-E-Mail an, falls Sie noch keine haben.

2. Melden Sie sich bei Ihrem kostenlosen Google-Konto an und erstellen Sie ein neues „Google Sheet“, dies ist die Tabelle, die über WLAN mit den Sensorwerten unseres DHT gefüllt wird. An dieser Stelle müssen Sie Ihren Tabellen-URL-Schlüssel kopieren und speichern. Dieser Schlüssel wird in der URL zwischen „/d/“ und „/edit“ Ihrer neuen Tabelle aufgeführt (siehe blauer Kreis).

3. Benennen Sie Ihre Tabelle mit einem originellen Namen wie "Umweltdaten". Jetzt müssen wir unser Google App-Skript (ähnlich JavaScript) erstellen, das unsere Daten verarbeitet und unsere Tabelle korrekt ausfüllt. Um unser Google App Script einzufügen, navigieren wir zuerst von unserer Tabelle zum Script Editor:

Tools →Skript-Editor

Wir befinden uns nun auf der Seite des Google Script Editors. Jetzt können wir unser Gscript etwas extra-kreativer nennen wie „My Environmental GScript“. An dieser Stelle haben wir noch vier Dinge auf der Skript-Editor-Seite zu tun.

A) Kopieren Sie den enthaltenen Google Script-Code und fügen Sie ihn in den Editor ein

B) Kopieren Sie den zuvor gespeicherten URL-Schlüssel der Tabellenkalkulation (Schritt 2) und fügen Sie ihn in die richtige Zeile im Google Script-Code (zwischen den Anführungszeichen) ein, wo es heißt:

var-ID =' '; // Tabellen-ID 

C) Speichern Sie das Skript:Datei→Alle speichern

D) Als Web-App bereitstellen:Veröffentlichen-→ Als Web-App bereitstellen…

4. Unser letzter Schritt zum Einrichten unseres Google-Blatts umfasst die Konfiguration der Webbereitstellungsparameter. Es ist wichtig, dass Sie alle diese Felder richtig einstellen. Wenn Sie nicht alle vier Felder genau festlegen, funktioniert Ihre Tabelle nicht richtig.

Feld 1) Kopieren und speichern Sie die „Aktuelle Web-App-URL: “ die gerade generiert wurde, benötigen wir diese später, wenn wir unsere API in PushingBox konfigurieren.

Feld 2) Speichern Sie eine Projektversion als „neu “ Bei jeder Iteration ist es wichtig zu beachten, dass Ihre Skriptrevisionen nicht im Web aktualisiert werden, wenn Sie nicht für jede von Ihnen vorgenommene Skriptrevision eine neue Projektversion erstellen (wenn Sie sich dazu entschließen, Revisionen vorzunehmen). Dies ist nicht intuitiv und leicht zu vernachlässigen, aber Google hat dieses System derzeit so konfiguriert.

Feld 3) „App ausführen als : “ setzen Sie dies auf „me(Ihre GMail hier) ”.

Feld 4) „Wer hat Zugriff auf die App : “ setze dies auf "jeder, auch anonym ."

Teil 2:PushingBox konfigurieren

Pushingbox.com dient als einfacher, kostenloser und einfacher API-Vermittler, der es unseren DHT-Daten ermöglicht, Google Sheets schmackhaft zu machen. Die Verwendung des PushingBox-API-Vermittlers besteht darin, unsere über HTTP übertragenen Daten in Google-konforme HTTPS-verschlüsselte Daten umzuwandeln. Wir könnten versuchen, einen nicht trivialen Verschlüsselungsalgorithmus zu entwickeln, der die Standardanforderung erfüllt, aber die Verwendung von PushingBox ist einfacher, und wir erhalten bis zu 1.000 Anfragen pro Tag kostenlos. Außerdem müssen wir uns nicht mit irgendwelchen „Black Box“-APIs befassen, in die wir unsere eigenen Parameter eingeben können, aber dann wenig Kontrolle über die Anpassung bekommen und keine wirkliche Vorstellung davon haben, wie die Funktion tatsächlich funktioniert. Nachfolgend finden Sie die Schritte zum Konfigurieren von Pushingbox für die Arbeit mit unseren Daten:

1. Erstellen Sie ein PushingBox-Konto mit Ihrem Gmail.

2. Klicken Sie oben auf „Meine Dienste“

3. Gehen Sie jetzt in „Meine Dienste“ zum Feld „Dienst hinzufügen“ und klicken Sie auf „Dienst hinzufügen“.

4. Der Dienst, den Sie erstellen möchten, ist der letzte Eintrag in der Liste der Dienste und heißt:”CustomURL, Stellen Sie Ihren eigenen Dienst ein! “. Wählen Sie nun diesen CustomUrl-Dienst aus.

5. Eine Kiste öffnet sich und fragt nach drei Gegenständen. Füllen Sie sie wie folgt aus und klicken Sie dann auf Senden

Name Ihrer CustomURL-Konfiguration:

Root-URL: Diese URL beginnt mit https://script.google.com... da dies Ihre aus Teil 1 gespeicherte Google Script-Adresse ist

Methode:

6. Nachdem Sie Ihren Service eingereicht haben, müssen Sie nun ein Szenario für den Service erstellen. Wählen Sie dazu oben auf der Seite „Meine Szenarien“ aus.

7. Geben Sie im Feld „Szenario erstellen oder Gerät hinzufügen“ einen passenden Namen für Ihr Szenario ein. Nachdem Sie Ihren Dienst benannt haben, klicken Sie rechts auf die Schaltfläche "Hinzufügen".

8. Jetzt werden Sie gefragt, ob Sie eine Aktion für Ihr Szenario hinzufügen möchten. Sie sollten nun die Schaltfläche „Aktion zu diesem Dienst hinzufügen“ neben dem im vorherigen Schritt erstellten Dienstnamen auswählen. Dadurch wird Ihr neues Szenario Ihrem neuen Dienst zugewiesen.

9. Es öffnet sich ein Datenfeld, in dem Sie nach Ihrer „Get“- oder „Post“-Methode gefragt werden (wir verwenden die Get-Methode, obwohl dies nicht intuitiv erscheint). Um alle unsere DHT-Daten (fünf Datenpunkte) in Ihr Google-Blatt aufzunehmen, müssen Sie Ihre in Ihrem Google App-Skript aufgeführten Variablennamen mit den in unserer Arduino-Skizze aufgeführten Namen verknüpfen. Durch die korrekte Formatierung der Namen in der Pushingbox-API wird diese Verknüpfungsaufgabe ausgeführt. Kopieren Sie die folgende Zeichenfolge und fügen Sie sie in Ihr Feld ein.

?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$ 

Hinweis: Aussage beginnt mit " ? ", um "GET" anzuzeigen.

Das Ergebnis sollte wie folgt aussehen, jedoch mit Ihrem eigenen Szenarionamen und Ihrer Geräte-ID-Nummer:

Stellen Sie sicher, dass Sie Ihren "DeviceID" -String kopieren, Sie benötigen ihn sowohl für die Vorprüfung im nächsten Schritt als auch später für die Arduino-Skizze in Teil 4.

3. Testen der API

Bevor wir zum letzten Steil übergehen, in dem wir den MKR1000 so programmieren, dass er die Daten unseres DHTs durch das Web sendet, wäre es hilfreich zu testen, ob alles, was wir bisher gemacht haben, richtig ist. Wenn wir warten, bis der Hardwareteil abgeschlossen ist, kann es schwieriger sein, die Ursache von Fehlern aufzuspüren. Glücklicherweise haben wir bisher eine einfache Methode zum Testen unseres Codes. Wir können einfach einige hartcodierte Pseudodaten direkt in die Adressleiste unseres Webbrowsers eingeben und überprüfen, ob unser Google-Tabellenblatt korrekt aktualisiert wird. Hier ist ein Beispiel dafür, was Sie kopieren und in die Adressleiste Ihres Browsers einfügen können.

http://api.pushingbox.com/pushingbox?devid=(IHR-DEVID-HERE)&humidityData=33&celData=44&fehrData=111&hicData=22&hifData=77

Wenn Sie möchten, können Sie sogar neue gefälschte Daten mit anderen Werten für nachfolgende Zeilen eingeben. Denken Sie jedoch daran, dass Sie nur 1.000 Anfragen pro Tag von Pushingbox haben, also werden Sie nicht verrückt! Wenn dieses Verfahren Ihre Tabelle nicht aktualisiert hat, gehen Sie zurück und überprüfen Sie die Teile 1 bis 3 dieser Anleitung auf Fehler, bevor Sie Teil 4 versuchen.

Teil 4

Nachdem Sie bestätigt haben, dass Sie einige hartcodierte Pseudodaten direkt von Ihrem Browser auf Ihr Google Sheet übertragen konnten, sind Sie nun bereit für den nächsten Schritt, bei dem Daten direkt vom MKR1000 per Pushingbox über WLAN an Google Sheets gesendet werden. Bevor Sie die mitgelieferte Arduino-Skizze auf den MKR1000 hochladen und ausführen können, müssen Sie die folgenden drei Schritte ausführen.

Hardware

1. Verkabelung des MKR1000 mit dem DHT:Dies ist eine einfache Aufgabe, insbesondere wenn Sie das MKR1000 verwenden. Ich empfehle Ihnen, das DHT mit 5 Volt zu versorgen, die auf dem MKR1000 verfügbar sind und als 5 V aufgeführt sind. Angeblich kann das DHT mit 3,3 V arbeiten, aber ich habe die DHT-Messwerte bei der niedrigeren Spannung nicht zuverlässig gefunden. Sie haben die Möglichkeit, verschiedene Pins für die Eingabe der Daten vom DHT in den MKR1000 zu verwenden, aber in meiner Skizze verwende ich Pin 5 die Zuordnung zu Pin D5 auf dem MKR1000 oben auf der Platine.

Software(1)

2. Es sind einige Schritte erforderlich, um Ihre Arduino IDE so einzurichten, dass sie mit Ihrem MKR1000 funktioniert. Diese Schritte umfassen das Herunterladen von zwei Bibliotheken und das Konfigurieren der Arduino IDE (1.6.4 oder höher) mit dem richtigen MRK1000 Board-Paket (Tools --> Board --> Boards Manager). Viele von Ihnen haben bereits die gesamte benötigte Software installiert, für diejenigen, die dies noch nicht getan haben, finden Sie unten Links zum Abrufen der benötigten Bibliotheken und des MKR1000-Board-Support-Pakets. Beachten Sie auch, dass ich eine frühere Version des MKR1000-Board-Pakets verwenden musste, da das neueste MKR1000-Board-Support-Paket nicht richtig funktionierte. Ich hoffe, dass dieses Problem gelöst ist, wenn Sie dies lesen.

https://www.arduino.cc/en/Reference/WiFi101

Die zwei benötigten Bibliotheken für den Sketch:

  • https://github.com/arduino-libraries/WiFi101
  • https://learn.adafruit.com/dht

Software(2)

3. Sie sind nun bereit für den letzten Schritt des Projekts. Sie müssen die mitgelieferte Arduino-Skizze kopieren und einfügen, für Ihr Gerät anpassen und dann die Skizze auf Ihren MKR1000 hochladen. Die Skizze leitet auch den seriellen Ausgang mit 9600 Baud weiter, sodass Sie die über WLAN gesendeten Daten überwachen können. Die drei Felder auf der Arduino-Skizze, die Sie anpassen müssen, sind:

A) Ihr WLAN-Name

B) Ihr WLAN-Passwort

C) Ihre Pushing-Box-Geräte-ID (devid)

Das war's, fertig! Wenn alles korrekt abgeschlossen wurde, sieht Ihre Ausgabe ungefähr wie in der Abbildung unten aus:

Vielen Dank an all die Leute, die den Großteil der Softwarekomponenten erstellt haben, auf denen dieses Projekt aufgebaut wurde. Ich habe ihre Namen in den Codekommentaren aufgeführt, um sie richtig zuzuordnen. Bitte zögern Sie nicht, alle Teile dieses Projekts zu verwenden, die Sie benötigen, um Ihre eigene Magie zu erschaffen.

-SDB

Code

  • MKR1000 zu Google Sheets über PushingBox mit dem DHT
  • Google Script zum Empfangen von WLAN-Daten im HTTPS-Format
  • PushingBox-URL-String (für HTTPS-Kleber)
MKR1000 zu Google Sheets über PushingBox mit dem DHTArduino
Diese Arduino-Skizze überträgt Daten über WLAN an die Push-Box zur Verschlüsselung und dann an PushingBox, um diese Daten in Ihrem Google Sheet zu protokollieren
//------------------------ -------------------------- // Diese Skizze wird aus dem Adafruit DHT-Sensor und tdicola für die dht.h-Bibliothek kombiniert// https://learn .adafruit.com/dht/overview// https://gist.github.com/teos0009/acad7d1e54b97f4b2a88//andere Autoren Arduino und zugehöriges Google Script://Aditya Riska Putra//Ahmed Reza Rafsanzani//Ryan Eko Saputro// Siehe auch://http://jarkomdityaz.appspot.com/////ELINS UGM////Modified for Hackster.io project for the MKR1000 //by Stephen Borsay(Portland, OR, USA)//Seit Arduino kann nicht https, wir müssen die Pushingbox API (verwendet http) verwenden, um //das Google-Skript auszuführen (verwendet https). Alternativ Ivans SecureWifi-Verschlüsselung verwenden#include #include "DHT.h"#define DHTPIN 5 // mit welchem ​​Pin wir verbunden sind, Pin1 ist der 5. !#define DHTTYPE DHT11 // DHT 11//#define DHTTYPE DHT21 // DHT 21//#define DHTTYPE DHT22 // DHT 22DHT dht(DHTPIN,DHTTYPE);const char WEBSITE[] ="api.pushingbox.com"; //pushingbox API serverconst String devid ="YOUR_DEVICEID"; //Geräte-ID auf Pushingbox für unser Szenarioconst char* MY_SSID ="YOUR SSID";const char* MY_PWD ="YOUR WiFi PASSWORD";int status =WL_IDLE_STATUS; // wenn Sie DNS nicht verwenden möchten (und Ihre Skizze reduzieren .) size)// Verwenden Sie die numerische IP anstelle des Namens für den server://IPAddress-Server(74,125,232,128); // Numerische IP für Google (kein DNS)void setup () { // Seriell initialisieren und warten, bis der Port geöffnet wird:Serial.begin (9600); while (!Seriell) {; // Warten Sie, bis der serielle Port eine Verbindung herstellt. Nur für nativen USB-Port erforderlich} // Überprüfen Sie das Vorhandensein des Schilds:if (WiFi.status () ==WL_NO_SHIELD) { Serial.println ("WiFi-Schild nicht vorhanden"); // nicht fortfahren:while (true); } // Versuch, eine Verbindung zum Wifi-Netzwerk herzustellen:while (status !=WL_CONNECTED) { Serial.print ( "Versuch, eine Verbindung zu SSID herzustellen:"); Serial.println (MY_SSID); // Mit dem WPA/WPA2-Netzwerk verbinden. Ändern Sie diese Zeile, wenn Sie den Status des offenen/WEP-Netzwerks verwenden =WiFi.begin (MY_SSID, MY_PWD); // 10 Sekunden auf Verbindung warten:delay(10000); } Serial.println ("Mit WLAN verbunden"); printWifiStatus(); }void loop () { // Zwischen den Messungen warten. Verzögerung (10000); //benutze lieber float, aber Paketgrößen- oder Float-Konvertierung funktioniert nicht //wird in Zukunft mit einer String-Funktion oder einer Float-Konvertierungsfunktion überarbeitet int HumidityData =dht.readHumidity(); // Temperatur als Celsius lesen (Standard) int celData =dht.readTemperature (); // Temperatur als Fahrenheit lesen (isFahrenheit =true) int fehrData =dht.readTemperature(true); // Prüfen, ob Lesevorgänge fehlgeschlagen sind und vorzeitig beenden (um es erneut zu versuchen). if (isnan (humidityData) || isnan (celData) || isnan (fehrData)) { Serial.println ("Fehler beim Lesen vom DHT-Sensor!"); Rückkehr; } // Wärmeindex in Fahrenheit berechnen (Standard) int hifData =dht.computeHeatIndex(fehrData, HumidityData); // Wärmeindex in Celsius berechnen (isFahreheit =false) int hicData =dht.computeHeatIndex(celData, HumidityData, false); Serial.print ("Luftfeuchtigkeit:"); Serial.print (Feuchtigkeitsdaten); Serial.print(" %\t"); Serial.print ( "Temperatur:"); Serial.print (celData); Serial.print ( " * C "); Serial.print (fehrData); Serial.print(" *F\t"); Serial.print ( "Heatindex:"); Serial.print (hicData); Serial.print ( " * C "); Serial.print (hifData); Serial.println(" *F\n");Serial.println("\nDaten an Server senden..."); // Wenn Sie eine Verbindung erhalten, melden Sie sich über den serial:WiFiClient-Client; //Instanziieren Sie das WiFi-Objekt, können Sie von hier aus oder global //API-Dienst mit WiFi-Client über PushingBox überwachen und dann an Google weiterleiten if (client.connect(WEBSITE, 80)) {client.print("GET /pushingbox?devid=" + devid + "&humidityData=" + (String) HumidityData + "&celData=" + (String) celData + "&fehrData=" + (String) fehrData + "&hicData=" + (String) hicData + "&hifData=" + (String) hifData ); // HTTP 1.1 stellt eine dauerhafte Verbindung bereit, die Batch-Anfragen // oder Pipelines an einen Ausgabepuffer zulässt client.println(" HTTP/1.1"); client.print("Host:"); client.println (WEBSITE); client.println("Benutzer-Agent:MKR1000/1.0"); // für MKR1000, im Gegensatz zu esp8266, Verbindung nicht schließen client.println(); Serial.println("\nDaten gesendet"); }}void printWifiStatus () {// Drucken Sie die SSID des Netzwerks, mit dem Sie verbunden sind:Serial.print ( "SSID:"); Serial.println (WiFi.SSID()); // drucke die IP-Adresse deines WiFi-Shields:IPAddress ip =WiFi.localIP(); Serial.print ("IP-Adresse:"); Serial.println (ip); // die empfangene Signalstärke ausgeben:long rssi =WiFi.RSSI(); Serial.print ("Signalstärke (RSSI):"); Serial.print (rssi); Serial.println(" dBm");}
Google Script zum Empfangen von WLAN-Daten im HTTPS-FormatJavaScript
Fügen Sie dies in den Skripteditor Ihres Google Sheets ein, um Ihre Wireless-Daten zu erhalten. Denken Sie daran, dass es ein verschlüsseltes / Sicherheitszertifikat im HTTPS-Format sein muss, deshalb verwende ich PushingBox
//------------------------------------- ----------------------//Ursprünglich veröffentlicht von Mogsdad@Stackoverflow//Modifiziert für jarkomdityaz.appspot.com//Modifiziert für Hackster.io von Stephen Borsay// -----------------------------------------------/*WERDEN Anfrage anfordern:https://script.google.com/macros/s//exec?celData=data_here------------- --------------------------------------------------------GScript, PushingBox und Arduino/ESP8266-Variablen in der Reihenfolge:humidityDatcelDatafehrDatahicDatahifData---------------------------------------------------- -----------*//* Verwendung der Tabellenkalkulations-API */function doGet(e) { Logger.log( JSON.stringify(e) ); // Parameter anzeigen var result ='Ok'; // Erfolg annehmen if (e.parameter ==undefined) { result ='No Parameters'; } else { var id =' 
PushingBox-URL-String (für HTTPS-Kleber)HTML
Dies ist Ihre Zeichenfolge, um Ihre Arduino / MKR1000-Variablennamen zu verbinden, die mit genau den gleichen Namen an Google Sheets übertragen werden. Verwendung von PushingBox als Sicherheit, die REST vollständig ermöglicht.
?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$

Kundenspezifische Teile und Gehäuse

andere Daten
andere drahtlose https://github.com/sborsay/Arduino_Wireless

Schaltpläne

Layout

Herstellungsprozess

  1. MATRIX VOICE GOOGLE ASSISTANT – MATRIX VOICE PROJEKT
  2. Senden Sie Sensordaten von einem Arduino zu einem anderen mit Firebase
  3. Erstellen von Monitor-Ambilight mit Arduino
  4. Drahtlose magnetische Datenübertragung
  5. Arduino Pong-Spiel - OLED-Display
  6. Arduino - Foto aufnehmen - Auf Google Drive hochladen
  7. Audiofrequenzdetektor
  8. Arduino Tamagotchi Klon - Digitales Haustier
  9. Wireless Lichtschalter-Manipulator
  10. Tech-TicTacToe