Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Envoyer des données MKR1000 à Google Sheets

Composants et fournitures

Arduino MKR1000
× 1
Capteur de température et d'humidité DHT11 (4 broches)
× 1
Câbles de raccordement (générique)
× 1
Planche à pain (générique)
× 1

Applications et services en ligne

Arduino IDE
Google Sheets

À propos de ce projet

Ce projet vous permet de traiter des données avec votre MKR1000 et d'envoyer ces données à Google Sheets dans le cloud via WiFi. Ce projet peut être réalisé sans aucune inscription par carte de crédit ni utilisation d'API propriétaires de boîte noire. Pour cet exemple spécifique, j'utilise le capteur environnemental DHT11 peu coûteux et omniprésent, mais vous pouvez facilement modifier le code Arduino inclus pour tout capteur ou appareil que vous aimez. Il vaut la peine de souligner maintenant que ce projet pourrait facilement être combiné dans un croquis avec l'un de mes projets connexes, qui télécharge des données DHT11 sur Thingspeak.com pour une représentation graphique.

C'est la première des quatre parties. Dans la première partie du projet, vous installerez et configurerez votre propre feuille Google pour accepter vos données WiFi en utilisant le code Google App Script inclus.

Partie 1 :Création et déploiement de votre feuille Google

1. Inscrivez-vous pour recevoir une e-mail Google gratuite si vous n'en avez pas.

2. connectez-vous à votre compte Google gratuit et créez une nouvelle "feuille Google", c'est la feuille de calcul qui sera remplie par les valeurs de nos capteurs DHT via WiFi. À ce stade, vous devrez copier et enregistrer la clé URL de vos feuilles de calcul. Cette clé est répertoriée dans l'URL entre le "/d/" et le "/edit" de votre nouvelle feuille de calcul (voir cercle bleu).

3. Nommez votre feuille de calcul quelque chose d'original comme « données environnementales », nous devons maintenant créer notre script d'application Google (similaire à JavaScript) qui traitera nos données et remplira correctement notre feuille de calcul. Pour insérer notre script d'application Google, nous naviguons d'abord de notre feuille de calcul vers l'éditeur de script :

Outils →Éditeur de scripts

Nous serons maintenant sur la page Google Script Editor. Maintenant, nous pouvons nommer notre Gscript quelque chose d'extra-créatif comme "My Environmental GScript". À ce stade, il nous reste quatre choses à faire sur la page de l'éditeur de script.

A) Copiez et collez le code Google Script inclus dans l'éditeur

B) Copiez et collez la clé URL de la feuille de calcul précédemment enregistrée (étape 2) dans la ligne correcte du code Google Script (entre les guillemets) où il est indiqué :

var id =' '; // ID de feuille de calcul 

C) Enregistrez le script :Fichier→Enregistrer tout

D) Déployer en tant qu'application Web :Publier-→ Déployer en tant qu'application Web…

4. Notre dernière étape de configuration de notre feuille Google consistera à configurer les paramètres de déploiement Web. Il est important que vous définissiez correctement tous ces champs. Si vous ne définissez pas exactement les quatre champs, votre feuille de calcul ne fonctionnera pas correctement.

Champ 1) Copiez et enregistrez « URL de l'application Web actuelle : " qui vient d'être généré, nous en aurons besoin plus tard lorsque nous configurerons notre API dans PushingBox.

Champ 2) Enregistrer une version de projet sous le nom « nouveau ” à chaque itération, il est important de noter que si vous ne créez pas de nouvelle version de projet pour chaque révision de script que vous effectuez (si vous décidez de faire des révisions), vos révisions de script ne seront pas mises à jour sur le Web. C'est contre-intuitif et facile à négliger, mais c'est actuellement ainsi que Google a configuré ce système.

Champ 3) « Exécutez l'application en tant que  : " définissez ceci sur " moi (votre GMail ici) ”.

Champ 4) « Qui a accès à l'application  : " définissez ceci sur "tout le monde, même anonyme ."

Partie 2 :Configuration de PushingBox

Pushingbox.com sert d'intermédiaire API simple, gratuit et facile en permettant à nos données DHT d'être acceptables pour Google Sheets. La nécessité d'utiliser l'intermédiaire de l'API PushingBox est de transformer nos données transmises HTTP en données cryptées HTTPS conformes à Google. Nous pourrions essayer de créer un algorithme de cryptage non trivial pour répondre aux exigences standard, mais l'utilisation de PushingBox est plus facile et nous recevons jusqu'à 1 000 requêtes par jour gratuitement. De plus, nous n'avons pas à gérer d'API "Black Box" dans lesquelles nous pouvons entrer nos propres paramètres, mais nous obtenons alors peu de contrôle sur la personnalisation et aucune idée réelle de la façon dont la fonction fonctionne réellement. Vous trouverez ci-dessous les étapes de configuration de Pushingbox pour qu'il fonctionne avec nos données :

1. Créez un compte PushingBox en utilisant votre Gmail.

2. En haut, cliquez sur « Mes services »

3. Maintenant que vous êtes dans « Mes services », allez dans la case « Ajouter un service » et cliquez sur « Ajouter un service ».

4. Le service que vous souhaitez créer est le dernier élément de la liste des services et s'appelle :« CustomURL, Définissez votre propre service ! ”. Sélectionnez maintenant ce service CustomUrl.

5. Une boîte s'ouvrira et demandera trois articles. Remplissez-les comme ci-dessous, puis appuyez sur Soumettre

Nom de votre configuration CustomURL :

URL racine : Cette URL commencera par https://script.google.com... car il s'agit de votre adresse Google Script enregistrée dans la partie 1

Méthode :

6. Après avoir soumis votre service, vous devez maintenant créer un scénario pour le service. Pour ce faire, sélectionnez « Mes scénarios » en haut de la page.

7. Saisissez un nom approprié pour votre scénario dans la case « Créer un scénario ou ajouter un appareil ». Après avoir nommé votre service, cliquez sur le bouton « Ajouter » à droite.

8. Maintenant, il vous demandera « Ajouter une action pour votre scénario » Vous devez maintenant choisir le bouton « Ajouter une action à ce service » répertorié à côté du nom du service que vous avez créé à l'étape précédente. Cela affecte votre nouveau scénario à votre nouveau service.

9. Une boîte de données s'ouvrira vous demandant votre méthode "Get" ou "Post" (nous utilisons la méthode Get bien que cela semble contre-intuitif). Pour enregistrer toutes nos données DHT (cinq points de données) dans votre feuille Google, vous devez lier vos noms de variables répertoriés dans votre script d'application Google aux noms répertoriés dans notre croquis Arduino. Le formatage correct des noms dans l'API Pushingbox accomplira cette tâche de liaison. Copiez et collez la chaîne suivante dans votre boîte.

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

Remarque : L'instruction commence par " ? " pour indiquer "GET".

Le résultat devrait ressembler à ce qui suit, mais avec votre propre nom de scénario et numéro d'identification d'appareil :

Assurez-vous de copier votre chaîne "DeviceID", vous en aurez besoin pour les tests préliminaires à l'étape suivante, et plus tard pour l'Arduino Sketch dans la partie 4.

3. Test de l'API

Avant de passer à la dernière pente, dans laquelle nous programmons le MKR1000 pour envoyer les données de notre DHT via le Web, il serait utile de tester que tout ce que nous avons fait jusqu'à présent est correct. Si nous attendons de terminer la partie matérielle, la cause des erreurs peut être plus difficile à localiser. Heureusement, nous avons une méthode simple pour tester notre code jusqu'à présent. Nous pouvons simplement entrer directement des pseudo-données codées en dur dans la barre d'adresse de notre navigateur Web et vérifier que notre feuille Google est correctement mise à jour. Voici un exemple de ce que vous pouvez copier et coller dans la barre d'adresse de votre navigateur.

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

Si vous le souhaitez, vous pouvez même ressaisir de nouvelles fausses données avec des valeurs différentes pour les lignes suivantes, mais n'oubliez pas que vous n'avez que 1 000 demandes par jour de Pushingbox, alors ne devenez pas fou ! Si cette procédure n'a pas mis à jour votre feuille de calcul, revenez en arrière et passez en revue les parties 1 à 3 de cette instruction pour les erreurs avant d'essayer la partie 4.

Partie 4

Après avoir confirmé que vous pouviez envoyer des pseudo-données codées en dur directement de votre navigateur sur votre feuille Google, vous êtes maintenant prêt pour la prochaine étape qui consiste à envoyer des données directement du MKR1000 à Google Sheets via Pushingbox via WiFi. Avant de pouvoir télécharger et exécuter le croquis Arduino inclus sur le MKR1000, vous devez effectuer les trois étapes suivantes.

Matériel

1. Câblage du MKR1000 au DHT :C'est une tâche simple, surtout si vous utilisez le MKR1000. Je vous recommande d'alimenter le DHT avec 5 volts, qui est disponible sur le MKR1000, répertorié comme 5v. Soi-disant, le DHT peut fonctionner sur 3,3 V, mais je n'ai pas trouvé les lectures DHT fiables à la tension inférieure. Vous avez la possibilité d'utiliser un certain nombre de broches différentes pour saisir les données du DHT vers le MKR1000, mais dans mon croquis, j'utilise la Broche 5 qui correspond à la Pin D5 sur le MKR1000 en haut de la carte.

Logiciel(1)

2. Il y a quelques étapes pour configurer votre IDE Arduino pour qu'il fonctionne avec votre MKR1000. Ces étapes incluent le téléchargement de deux bibliothèques et la configuration de l'IDE Arduino (1.6.4 ou version ultérieure) avec le package de carte MRK1000 correct (Outils--> Carte--> Gestionnaire de cartes). Beaucoup d'entre vous auront déjà installé tous les logiciels dont vous avez besoin, pour ceux qui ne l'ont pas fait, vous trouverez ci-dessous des liens pour récupérer les bibliothèques nécessaires et le package de support de la carte MKR1000. Notez également que je devais utiliser une version précédente du package de carte MKR1000 car le dernier package de support de carte MKR1000 ne fonctionnait pas correctement. J'espère que ce problème a été résolu au moment où vous lisez ceci.

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

Les deux bibliothèques requises pour l'esquisse :

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

Logiciel(2)

3. Vous êtes maintenant prêt pour la dernière étape du projet, vous devez copier et coller le croquis Arduino inclus, le personnaliser pour votre appareil, puis télécharger le croquis sur votre MKR1000. L'esquisse relaie également la sortie série à 9600 bauds afin que vous puissiez surveiller les données envoyées via WiFi. Les trois champs du sketch Arduino que vous devez personnaliser sont :

A) Votre nom Wi-Fi

B) Votre mot de passe Wi-Fi

C) Votre identifiant de périphérique Pushing box (devid)

Ça y est, vous avez terminé ! Si tout s'est terminé correctement, votre sortie ressemblera à l'image ci-dessous :

Merci à toutes les personnes qui ont construit la majorité des composants logiciels sur lesquels ce projet a été construit. J'ai répertorié leurs noms dans les commentaires du code pour une attribution appropriée. N'hésitez pas à utiliser les éléments de ce projet dont vous avez besoin pour créer votre propre magie.

-SDB

Code

  • MKR1000 vers Google Sheets via PushingBox à l'aide du DHT
  • Google Script pour recevoir des données sans fil au format HTTPS
  • Chaîne URL PushingBox (pour la colle HTTPS)
MKR1000 vers Google Sheets via PushingBox en utilisant le DHTArduino
Cet Arduino Sketch pousse les données via WiFI vers la boîte de poussée pour le cryptage, puis vers PushingBox pour enregistrer ces données dans votre feuille Google
//--------------------- --------------------------//Ce croquis est combiné à partir du capteur Adafruit DHT et de tdicola pour la bibliothèque dht.h// https://learn .adafruit.com/dht/overview// https://gist.github.com/teos0009/acad7d1e54b97f4b2a88//autres auteurs Arduino et Google Script associé://Aditya Riska Putra//Ahmed Reza Rafsanzani//Ryan Eko Saputro// Voir aussi://http://jarkomdityaz.appspot.com/////ELINS UGM////Modifié pour le projet Hackster.io pour le MKR1000 //par Stephen Borsay(Portland, OR, USA)//Depuis Arduino ne peut pas https, nous devons utiliser l'API Pushingbox (utilise http) pour exécuter //le script Google (utilise https). Utilisez alternativement le cryptage SecureWifi d'Ivan#include #include "DHT.h"#define DHTPIN 5 // à quelle broche nous sommes connectés, la broche 1 est la 5ème broche de la fin // Décommentez le type de capteur DHT que vous utilisez !#define DHTTYPE DHT11 // DHT 11//#define DHTTYPE DHT21 // DHT 21//#define DHTTYPE DHT22 // DHT 22DHT dht(DHTPIN,DHTTYPE);const char SITE WEB[] ="api.pushingbox.com"; // pushbox API serverconst String devid ="YOUR_DEVICEID"; //ID de périphérique sur Pushingbox pour notre Scenarioconst char* MY_SSID ="YOUR SSID";const char* MY_PWD ="YOUR WiFi PASSWORD";int status =WL_IDLE_STATUS;// si vous ne voulez pas utiliser DNS (et réduisez votre sketch size)// utilisez l'IP numérique au lieu du nom du serveur://IPAddress server(74,125,232,128) ; // IP numérique pour Google (pas de DNS) void setup() { // Initialiser la série et attendre que le port s'ouvre :Serial.begin(9600); while (!Série) {; // attend que le port série se connecte. Nécessaire pour le port USB natif uniquement } // vérifier la présence du shield :if (WiFi.status() ==WL_NO_SHIELD) { Serial.println("WiFi shield not present"); // ne continue pas :while (true); } // tentative de connexion au réseau Wifi :while (status !=WL_CONNECTED) { Serial.print("Tentative de connexion au SSID :"); Serial.println(MY_SSID); //Connectez-vous au réseau WPA/WPA2. Modifiez cette ligne si vous utilisez l'état du réseau ouvert/WEP =WiFi.begin(MY_SSID, MY_PWD); // attend 10 secondes pour la connexion :delay(10000); } Serial.println("Connecté au wifi"); printWifiStatus(); }void loop() { // Attendre entre les mesures. retard (10000); //préfère utiliser float, mais la taille du package ou la conversion float ne fonctionne pas //révisera à l'avenir avec une fonction de chaîne ou une fonction de conversion float int humidityData =dht.readHumidity(); // Lecture de la température en Celsius (valeur par défaut) int celData =dht.readTemperature(); // Lecture de la température en Fahrenheit (isFahrenheit =true) int fehrData =dht.readTemperature(true); // Vérifiez si des lectures ont échoué et quittez plus tôt (pour réessayer). if (isnan(humidityData) || isnan(celData) || isnan(fehrData)) { Serial.println("Impossible de lire à partir du capteur DHT !"); retourner; } // Calculer l'indice de chaleur en Fahrenheit (valeur par défaut) int hifData =dht.computeHeatIndex(fehrData, humidityData); // Calcule l'indice de chaleur en Celsius (isFahreheit =false) int hicData =dht.computeHeatIndex(celData, humidityData, false); Serial.print("Humidité:"); Serial.print(humiditéDonnées); Serial.print(" %\t"); Serial.print("Température :"); Serial.print(celData); Serial.print(" *C "); Serial.print(fehrData); Serial.print(" *F\t"); Serial.print("Indice de chaleur :"); Serial.print(hicData); Serial.print(" *C "); Serial.print(hifData); Serial.println(" *F\n");Serial.println("\nEnvoi de données au serveur..."); // si vous obtenez une connexion, faites un rapport via serial:WiFiClient client; //Objet WiFi instantané, peut être étendu à partir d'ici ou globalement //Service API utilisant le client WiFi via PushingBox puis relayé à Google if (client.connect(WEBSITE, 80)) { client.print("GET /pushingbox?devid=" + devid + "&humidityData=" + (chaîne) humidityData + "&celData=" + (chaîne) celData + "&fehrData=" + (chaîne) fehrData + "&hicData=" + (chaîne) hicData + "&hifData=" + (chaîne) hifData ); // HTTP 1.1 fournit une connexion persistante, autorisant les requêtes par lots // ou en pipeline vers un tampon de sortie client.println(" HTTP/1.1"); client.print("Hôte :"); client.println(SITE WEB); client.println("User-Agent :MKR1000/1.0"); //pour MKR1000, contrairement à esp8266, ne fermez pas la connexion client.println(); Serial.println("\nDonnées envoyées"); }}void printWifiStatus() { // imprime le SSID du réseau auquel vous êtes connecté :Serial.print("SSID:"); Serial.println(WiFi.SSID()); // affiche l'adresse IP de votre bouclier WiFi :IPAddress ip =WiFi.localIP(); Serial.print("Adresse IP :"); Serial.println(ip); // affiche la force du signal reçu :long rssi =WiFi.RSSI(); Serial.print("force du signal (RSSI):"); Serial.print(rssi); Serial.println(" dBm");}
Google Script pour recevoir des données sans fil au format HTTPSJavaScript
Collez-le dans l'éditeur de script de votre feuille Google pour recevoir vos données sans fil. N'oubliez pas qu'il doit être au format HTTPS crypté/certifié de sécurité, c'est pourquoi j'utilise PushingBox
//-------------------------- ---------------------// Initialement publié par Mogsdad@Stackoverflow//Modifié pour jarkomdityaz.appspot.com//Modifié pour Hackster.io par Stephen Borsay// -----------------------------------------------/*AVOIR requête de requête :https://script.google.com/macros/s//exec?celData=data_here----------------------- ------------------------------------------------------------ GScript, PushingBox et Arduino/ESP8266 Variables dans l'ordre :humiditéDatcelDatafehrDatahicDatahifData------------------------------------------ -----------*//* Utilisation de l'API de feuille de calcul */function doGet(e) { Logger.log( JSON.stringify(e) ); // afficher les paramètres var result ='Ok'; // suppose le succès if (e.parameter ==undefined) { result ='No Parameters'; } else { var id =' 
Chaîne URL PushingBox (pour la colle HTTPS)HTML
Il s'agit de votre chaîne pour connecter vos noms de variables Arduino/MKR1000 transmis à Google Sheets avec exactement les mêmes noms. Utilisation de PushingBox comme intermédiaire de sécurité permettant RESTfully.
?humidityData=$humidityData$&celData=$celData$&fehrData=$fehrData$&hicData=$hicData$&hifData=$hifData$

Pièces et boîtiers personnalisés

autres données
autre sans filhttps://github.com/sborsay/Arduino_Wireless

Schémas

Disposition

Processus de fabrication

  1. ASSISTANT GOOGLE MATRIX VOICE – PROJET MATRIX VOICE
  2. Envoyer des données de capteur d'un Arduino à un autre à l'aide de Firebase
  3. Créer un moniteur Ambilight à l'aide d'Arduino
  4. Transfert de données magnétique sans fil
  5. Jeu Arduino Pong - Écran OLED
  6. Arduino - Prendre une photo - Télécharger sur Google Drive
  7. Détecteur de fréquence audio
  8. clone Arduino Tamagotchi - animal numérique
  9. Manipulateur d'interrupteur d'éclairage sans fil