Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

MKR1000-gegevens naar Google Spreadsheets sturen

Componenten en benodigdheden

Arduino MKR1000
× 1
DHT11 temperatuur- en vochtigheidssensor (4 pinnen)
× 1
Jumperdraden (algemeen)
× 1
Broodplank (algemeen)
× 1

Apps en online services

Arduino IDE
Google Spreadsheets

Over dit project

Met dit project kun je data verwerken met je MKR1000 en die data via wifi naar Google Spreadsheets in de cloud sturen. Dit project kan worden bereikt zonder aanmeldingen met creditcard of het gebruik van eigen, black box-API's. Voor dit specifieke voorbeeld gebruik ik de goedkope en alomtegenwoordige DHT11-omgevingssensor, maar je kunt de meegeleverde Arduino-code eenvoudig wijzigen voor elke sensor of elk apparaat dat je leuk vindt. Het is de moeite waard om erop te wijzen dat dit project gemakkelijk kan worden gecombineerd in een schets met een van mijn verwante projecten, die DHT11-gegevens uploadt naar Thingspeak.com voor grafische grafieken.

Dit is het eerste van vier delen. In het eerste deel van het project zul je je eigen Google-blad instellen en configureren om je WiFi-gegevens te accepteren met behulp van de meegeleverde Google App Script-code.

Deel 1:Uw Google-spreadsheet maken en implementeren

1. Meld u aan voor een gratis Google-e-mailadres als u er geen heeft.

2. log in op uw gratis Google-account en maak een nieuw 'Google-blad' aan. Dit is de spreadsheet die via wifi wordt gevuld met de sensorwaarden van onze DHT. Op dit punt moet u de URL-sleutel van uw spreadsheet kopiëren en opslaan. Deze sleutel wordt vermeld in de URL tussen de "/d/" en de "/edit" van uw nieuwe spreadsheet (zie blauwe cirkel).

3. Geef uw spreadsheet een originele naam, zoals 'Omgevingsgegevens', nu moeten we ons Google App Script maken (vergelijkbaar met JavaScript) dat onze gegevens zal verwerken en onze spreadsheet correct zal vullen. Om ons Google App Script in te voegen, navigeren we eerst vanuit onze spreadsheet naar de Script Editor:

Extra →Scripteditor

We zijn nu op de Google Script Editor-pagina. Nu kunnen we ons Gscript iets extra creatiefs noemen, zoals "My Environmental GScript". Op dit moment hebben we nog vier dingen te doen op de Scripteditor-pagina.

A) Kopieer en plak de meegeleverde Google Script-code in de Editor

B) Kopieer en plak de eerder opgeslagen spreadsheet-URL-sleutel (stap 2) in de juiste regel in de Google Script-code (tussen de aanhalingstekens) waar staat:

var id =' '; // Spreadsheet-ID 

C) Sla het script op:Bestand → Alles opslaan

D) Implementeren als een web-app:Publiceren-→ Implementeren als web-app…

4. Onze laatste stap voor het instellen van ons Google-blad omvat het configureren van de webimplementatieparameters. Het is belangrijk dat u al deze velden correct instelt. Als u niet alle vier de velden exact instelt, werkt uw spreadsheet niet goed.

Veld 1) Kopieer en bewaar de "Huidige web-app-URL: " die zojuist is gegenereerd, hebben we deze later nodig wanneer we onze API in PushingBox configureren.

Veld 2) Sla een projectversie op als “nieuw ” bij elke iteratie, is het belangrijk op te merken dat als je geen nieuwe projectversie maakt voor elke scriptrevisie die je maakt (als je besluit om revisies uit te voeren), je scriptrevisies niet op internet worden bijgewerkt. Dit is contra-intuïtief en gemakkelijk te negeren, maar dit is momenteel hoe Google dit systeem heeft geconfigureerd.

Veld 3) “Voer de app uit als : " stel dit in op "me(your GMail here) ”.

Veld 4) “Wie heeft toegang tot de app : “ stel dit in op "iedereen, zelfs anoniem ."

Deel 2:PushingBox configureren

Pushingbox.com fungeert als een eenvoudige, gratis en gemakkelijke API-tussenpersoon die ervoor zorgt dat onze DHT-gegevens verteerbaar zijn voor Google Spreadsheets. De noodzaak voor het gebruik van de PushingBox API-tussenpersoon is om onze door HTTP verzonden gegevens om te zetten in door Google compatibele HTTPS-gecodeerde gegevens. We zouden kunnen proberen een niet-triviaal coderingsalgoritme te maken om aan de standaardvereiste te voldoen, maar het gebruik van PushingBox is eenvoudiger en we krijgen tot 1.000 verzoeken per dag gratis. Bovendien hebben we niet te maken met "Black Box" API's waarin we onze eigen parameters kunnen invoeren, maar krijgen dan weinig controle over maatwerk en geen echt idee van hoe de functie eigenlijk werkt. Hieronder staan ​​de stappen voor het configureren van Pushingbox om met onze gegevens te werken:

1. Maak een PushingBox-account aan met uw Gmail.

2. Klik bovenaan op “Mijn Diensten”

3. Ga nu in "Mijn services" naar het vak "Een service toevoegen" en klik op "Een service toevoegen".

4. De service die u wilt maken, is het laatste item in de lijst met services en heet:”CustomURL, Stel je eigen service in! ”. Selecteer nu deze CustomUrl-service.

5. Er gaat een doos open waarin om drie items wordt gevraagd. Vul ze in zoals hieronder en klik vervolgens op verzenden

Naam van uw CustomURL-configuratie:

Root-URL: Deze url begint met https://script.google.com... aangezien dit uw Google Script-adres is dat is opgeslagen in deel 1

Methode:

6. Nadat u uw service hebt ingediend, moet u nu een scenario voor de service maken. Selecteer hiervoor 'Mijn scenario's' bovenaan de pagina.

7. Voer een toepasselijke naam in voor uw scenario in het vak "Een scenario maken of een apparaat toevoegen". Nadat u uw service een naam heeft gegeven, klikt u op de knop 'Toevoegen' aan de rechterkant.

8. Nu wordt gevraagd om "Een actie voor uw scenario toevoegen". U moet nu de knop "Een actie aan deze service toevoegen" kiezen naast de servicenaam die u in de vorige stap hebt gemaakt. Dit wijst uw nieuwe scenario toe aan uw nieuwe service.

9. Er wordt een gegevensvenster geopend waarin u wordt gevraagd naar uw "Get"- of "Post"-methode (we gebruiken de Get-methode, hoewel dit contra-intuïtief lijkt). Om al onze DHT-gegevens (vijf gegevenspunten) in uw Google-blad op te nemen, moet u uw variabelenamen in uw Google App Script koppelen aan de namen in onze Arduino-schets. Door de namen correct op te maken in de Pushingbox API wordt deze koppelingstaak uitgevoerd. Kopieer en plak de volgende tekenreeks in uw vak.

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

Opmerking: Verklaring begint met " ? " om "GET" aan te geven.

Het resultaat zou er als volgt uit moeten zien, maar met uw eigen scenarionaam en apparaat-ID-nummer:

Zorg ervoor dat u uw "DeviceID"-tekenreeks kopieert, u hebt deze nodig voor zowel voorlopige tests in de volgende stap als later voor de Arduino-schets in deel 4.

3. De API testen

Voordat we verder gaan naar de laatste steile helling, waarin we de MKR1000 programmeren om de gegevens van onze DHT via het web te verzenden, zou het nuttig zijn om te testen of alles wat we tot nu toe hebben gedaan correct is. Als we wachten met het voltooien van het hardwaregedeelte, kan het moeilijker zijn om de oorzaak van eventuele fouten op te sporen. Gelukkig hebben we tot nu toe een eenvoudige methode om onze code te testen. We kunnen gewoon wat hardgecodeerde pseudo-gegevens rechtstreeks in de adresbalk van onze webbrowser invoeren en controleren of ons Google-blad correct wordt bijgewerkt. Hier is een voorbeeld van wat u kunt kopiëren en plakken in de adresbalk van uw browser.

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

Als je wilt, kun je zelfs nieuwe nepgegevens met verschillende waarden voor volgende rijen opnieuw invoeren, maar onthoud dat je maar 1.000 verzoeken per dag van Pushingbox hebt, dus doe niet gek! Als deze procedure uw spreadsheet niet heeft bijgewerkt, ga dan terug en bekijk delen 1 -3 van deze instructie op fouten voordat u deel 4 probeert.

Deel 4

Nadat u hebt bevestigd dat u enkele hardgecodeerde pseudo-gegevens rechtstreeks vanuit uw browser naar uw Google-spreadsheet kunt pushen, bent u nu klaar voor de volgende stap, namelijk het rechtstreeks verzenden van gegevens van de MKR1000 naar Google Spreadsheets via Pushingbox via WiFi. Voordat u de meegeleverde Arduino-schets naar de MKR1000 kunt uploaden en uitvoeren, moet u de volgende drie stappen uitvoeren.

Hardware

1. De MKR1000 aansluiten op de DHT:Dit is een eenvoudige taak, vooral bij gebruik van de MKR1000. Ik raad je aan om de DHT van stroom te voorzien met 5 volt, die beschikbaar is op de MKR1000, vermeld als 5v. Vermoedelijk kan de DHT werken op 3,3v, maar ik heb de DHT-metingen niet betrouwbaar gevonden bij de lagere spanning. Je hebt de mogelijkheid om een ​​aantal verschillende pinnen te gebruiken voor het invoeren van de gegevens van de DHT naar de MKR1000, maar in mijn schets gebruik ik Pin 5 de welke verwijst naar Pin D5 op de MKR1000 bovenaan het bord.

Software(1)

2. Er zijn een paar stappen om uw Arduino IDE in te stellen om met uw MKR1000 te werken. Deze stappen omvatten het downloaden van twee bibliotheken en het configureren van de Arduino IDE (1.6.4 of later) met het juiste MRK1000 Board-pakket (Tools-->Board-->Boards Manager). Velen van jullie hebben alle software die je nodig hebt al geïnstalleerd, voor degenen die dat nog niet hebben, staan ​​hieronder links om de benodigde bibliotheken en het MKR1000-bordondersteuningspakket op te halen. Merk ook op dat ik een eerdere versie van het MKR1000 Board-pakket moest gebruiken omdat het nieuwste MKR1000-boardondersteuningspakket niet correct werkte. Ik hoop dat dit probleem is opgelost tegen de tijd dat u dit leest.

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

De twee benodigde bibliotheken voor de schets:

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

Software(2)

3. U bent nu klaar voor de laatste stap van het project, u moet de meegeleverde Arduino-schets kopiëren en plakken, deze aanpassen aan uw apparaat en de schets vervolgens uploaden naar uw MKR1000. De schets geeft ook seriële uitvoer door op 9600 baud, zodat u kunt controleren of de gegevens via wifi worden verzonden. De drie velden op de Arduino-schets die u moet aanpassen, zijn:

A) Uw wifi-naam

B) Uw wifi-wachtwoord

C) Uw Pushing box Device ID (devid)

Dat is alles, je bent klaar! Als alles correct is voltooid, ziet uw uitvoer er ongeveer zo uit als op de onderstaande afbeelding:

Dank aan alle mensen die de meeste softwarecomponenten hebben gebouwd waarop dit project is gebouwd. Ik heb hun namen in de code-opmerkingen vermeld voor de juiste toeschrijving. Voel je vrij om alle onderdelen van dit project te gebruiken die je nodig hebt om je eigen magie te creëren.

-SDB

Code

  • MKR1000 naar Google Spreadsheets via PushingBox met de DHT
  • Google Script voor het ontvangen van draadloze gegevens in HTTPS-indeling
  • PushingBox URL String (voor HTTPS-lijm)
MKR1000 naar Google Spreadsheets via PushingBox met behulp van de DHTArduino
Deze Arduino-schets pusht gegevens via WiFI naar pushbox voor codering en vervolgens naar PushingBox om die gegevens in uw Google-blad te loggen
//--------------------- --------------------------//Deze schets is gecombineerd van Adafruit DHT-sensor en tdicola voor dht.h bibliotheek// https://learn .adafruit.com/dht/overview// https://gist.github.com/teos0009/acad7d1e54b97f4b2a88//other Auteurs Arduino en bijbehorende Google Script://Aditya Riska Putra//Ahmed Reza Rafsanzani//Ryan Eko Saputro// Zie ook://http://jarkomdityaz.appspot.com/////ELINS UGM////Aangepast voor Hackster.io-project voor de MKR1000 //door Stephen Borsay (Portland, OR, VS)//Sinds Arduino kan niet https, we moeten Pushingbox API gebruiken (gebruikt http) om //het Google Script uit te voeren (gebruikt https). Gebruik als alternatief Ivan's SecureWifi-codering #include #include "DHT.h"#define DHTPIN 5 // met welke pin we zijn verbonden, pin1 is de 5e pin vanaf het einde// Uncommenteer welk type DHT-sensor je ook gebruikt !#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"; //apparaat-ID op Pushingbox voor onze Scenarioconst char* MY_SSID ="UW SSID";const char* MY_PWD ="UW WiFi-WACHTWOORD";int status =WL_IDLE_STATUS;// als u geen DNS wilt gebruiken (en uw schets wilt verkleinen) size)// gebruik het numerieke IP in plaats van de naam voor de server://IPAddress server(74,125,232,128); // numeriek IP voor Google (geen DNS) void setup () { // Initialiseer serieel en wacht tot de poort wordt geopend:Serial.begin (9600); while (!Serial) {; // wacht tot de seriële poort verbinding maakt. Alleen nodig voor native USB-poort } // controleer op de aanwezigheid van het schild:if (WiFi.status() ==WL_NO_SHIELD) { Serial.println("WiFi-schild niet aanwezig"); // ga niet verder:while (true); } // poging om verbinding te maken met wifi-netwerk:while (status !=WL_CONNECTED) { Serial.print("Poging om verbinding te maken met SSID:"); Serial.println(MY_SSID); // Maak verbinding met WPA/WPA2-netwerk. Wijzig deze regel als u open/WEP-netwerkstatus gebruikt =WiFi.begin (MY_SSID, MY_PWD); // wacht 10 seconden op verbinding:vertraging (10000); } Serial.println("Verbonden met wifi"); printWifiStatus(); }void loop() { // Wacht tussen metingen. vertraging (10000); // gebruik liever float, maar pakketgrootte of float-conversie werkt niet // zal in de toekomst herzien worden met een stringfuction of float-conversiefunctie intvochtigheidData =dht.readHumidity(); // Lees temperatuur als Celsius (de standaardinstelling) int celData =dht.readTemperature (); // Lees temperatuur als Fahrenheit (isFahrenheit =true) int fehrData =dht.readTemperature (true); // Controleer of het lezen is mislukt en sluit vroeg af (om het opnieuw te proberen). if (isnan(humidityData) || isnan(celData) || isnan(fehrData)) { Serial.println("Kan niet lezen van DHT-sensor!"); opbrengst; } // Bereken warmte-index in Fahrenheit (de standaardinstelling) int hifData =dht.computeHeatIndex (fehrData, vochtigheidData); // Bereken warmte-index in Celsius (isFahreheit =false) int hicData =dht.computeHeatIndex (celData, vochtigheidData, false); Serial.print("Vochtigheid:"); Serial.print (vochtigheidsgegevens); Serial.print(" %\t"); Serial.print("Temperatuur:"); Serial.print(celData); Serial.print(" *C "); Serial.print(fehrData); Serial.print(" *F\t"); Serial.print("Warmte-index:"); Serial.print(hicData); Serial.print(" *C "); Serial.print(hifData); Serial.println(" *F\n");Serial.println("\nGegevens verzenden naar server..."); // als je verbinding krijgt, rapporteer dan via serial:WiFiClient client; // Instant WiFi-object, kan van hier of wereldwijd bereik // API-service met behulp van WiFi Client via PushingBox en vervolgens doorgestuurd naar Google if (client.connect(WEBSITE, 80)) { client.print("GET /pushingbox?devid=" + devid + "&humidityData=" + (String) vochtigheidData + "&celData=" + (String) celData + "&fehrData=" + (String) fehrData + "&hicData=" + (String) hicData + "&hifData=" + (String) hifData); // HTTP 1.1 biedt een permanente verbinding, waardoor batchverzoeken // of gepijplijnd naar een uitvoerbuffer client.println(" HTTP/1.1"); client.print("Host:"); klant.println(WEBSITE); client.println ("Gebruiker-agent:MKR1000/1.0"); // voor MKR1000, in tegenstelling tot esp8266, sluit de verbinding niet client.println(); Serial.println("\nGegevens verzonden"); }}void printWifiStatus() { // print de SSID van het netwerk waarmee je bent verbonden:Serial.print("SSID:"); Seriële.println(WiFi.SSID()); // druk het IP-adres van uw WiFi-schild af:IPAddress ip =WiFi.localIP(); Serial.print("IP-adres:"); Serieel.println(ip); // print de ontvangen signaalsterkte:lange rssi =WiFi.RSSI(); Serial.print("signaalsterkte (RSSI):"); Seriële.print(rssi); Serial.println(" dBm");}
Google Script voor het ontvangen van draadloze gegevens in HTTPS-indelingJavaScript
Plak dit in de Script Editor van uw Google-spreadsheet om uw draadloze gegevens te ontvangen. Onthoud dat het gecodeerd moet zijn/beveiligingscertificaat HTTPS-formaat, daarom gebruik ik PushingBox
//-------------------------- ---------------------//Oorspronkelijk gepubliceerd door Mogsdad@Stackoverflow//Aangepast voor jarkomdityaz.appspot.com//Aangepast voor Hackster.io door Stephen Borsay// -----------------------------------------------/*KRIJGEN query aanvragen:https://script.google.com/macros/s//exec?celData=data_here----------------------- ----------------------------------------------- GScript, PushingBox en Arduino/ESP8266-variabelen in volgorde:vochtigheidDatcelDatafehrDatahicDatahifData ----------------------------------------- -----------*//* Spreadsheet-API gebruiken */function doGet(e) { Logger.log(JSON.stringify(e)); // bekijk parameters var resultaat ='Ok'; // neem succes aan als (e.parameter ==undefined) { result ='Geen parameters'; } else { var id =' 
PushingBox URL String (voor HTTPS-lijm)HTML
Dit is uw string om uw Arduino/MKR1000-variabelenamen te verbinden die met exact dezelfde namen naar Google Spreadsheets worden verzonden. PushingBox gebruiken als een beveiliging die tussenpersoon RESTfully inschakelt.
?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$

Aangepaste onderdelen en behuizingen

andere gegevens
andere draadloze https://github.com/sborsay/Arduino_Wireless

Schema's

Lay-out

Productieproces

  1. MATRIX STEM GOOGLE ASSISTANT – MATRIX STEMPROJECT
  2. Stuur sensorgegevens van de ene Arduino naar de andere met Firebase
  3. Maak Monitor Ambilight met Arduino
  4. Draadloze magnetische gegevensoverdracht
  5. Arduino Pong Game - OLED-scherm
  6. Arduino - Foto maken - Uploaden naar Google Drive
  7. Audiofrequentiedetector
  8. Arduino Tamagotchi Clone - Digital Pet
  9. Draadloze lichtschakelaarmanipulator
  10. Tech-TicTacToe
  11. Bewegingssensor-waterpistool