Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Enviar datos MKR1000 a Hojas de cálculo de Google

Componentes y suministros

Arduino MKR1000
× 1
Sensor de temperatura y humedad DHT11 (4 pines)
× 1
Cables de puente (genéricos)
× 1
Breadboard (genérico)
× 1

Aplicaciones y servicios en línea

Arduino IDE
Hojas de cálculo de Google

Acerca de este proyecto

Este proyecto le permite procesar datos con su MKR1000 y enviar esos datos a Google Sheets en la nube a través de WiFi. Este proyecto se puede llevar a cabo sin necesidad de registrarse con tarjeta de crédito ni utilizar API patentadas de caja negra. Para este ejemplo específico, utilizo el sensor ambiental DHT11 de bajo costo y ubicuo, sin embargo, puede modificar fácilmente el código Arduino incluido para cualquier sensor o dispositivo que desee. Vale la pena señalar ahora que este proyecto podría combinarse fácilmente en un boceto con uno de mis proyectos relacionados, que carga datos DHT11 en Thingspeak.com para crear gráficos.

Esta es la primera de cuatro partes. En la primera parte del proyecto, configurará y configurará su propia hoja de Google para aceptar sus datos WiFi mediante el uso del código de secuencia de comandos de la aplicación de Google incluido.

Parte 1:Creación e implementación de su hoja de Google

1. Regístrese para recibir un correo electrónico gratuito de Google si no tiene uno.

2. Inicie sesión en su cuenta gratuita de Google y cree una nueva "Hoja de Google", esta es la hoja de cálculo que se completará con los valores del sensor de nuestro DHT a través de WiFi. En este punto, deberá copiar y guardar la clave de URL de su hoja de cálculo. Esta clave aparece en la URL entre "/ d /" y "/ editar" de su nueva hoja de cálculo (vea el círculo azul).

3. Nombra tu hoja de cálculo con algo original como "Datos ambientales", ahora debemos crear nuestro script de aplicación de Google (similar a JavaScript) que procesará nuestros datos y completará nuestra hoja de cálculo correctamente. Para insertar nuestra secuencia de comandos de la aplicación de Google, primero navegamos desde nuestra hoja de cálculo hasta el editor de secuencias de comandos:

Herramientas → Editor de secuencias de comandos

Ahora estaremos en la página de Google Script Editor. Ahora podemos nombrar nuestro Gscript con algo extra creativo como "Mi GScript ambiental". En este punto, nos quedan cuatro cosas por hacer en la página del editor de secuencias de comandos.

A) Copie y pegue el código de Google Script incluido en el Editor

B) Copie y pegue la clave URL de la hoja de cálculo previamente guardada (paso 2) en la línea correcta en el código de Google Script (entre las comillas) donde dice:

  var id =''; // ID de hoja de cálculo  

C) Guarde el script: Archivo → Guardar todo

D) Implementar como aplicación web: Publicar- → Implementar como aplicación web…

4. Nuestro paso final para configurar nuestra hoja de Google implicará configurar los parámetros de implementación web. Es importante que configure todos estos campos correctamente. Si no configura los cuatro campos exactamente, su hoja de cálculo no funcionará correctamente.

Campo 1) Copie y guarde la " URL de la aplicación web actual: "Que se acaba de generar, lo necesitaremos más adelante cuando configuremos nuestra API en PushingBox.

Campo 2) Guarde una versión del proyecto como " nueva "En cada iteración, es importante tener en cuenta que si no crea una nueva versión del proyecto para cada revisión de secuencia de comandos que realiza (si decide realizar alguna revisión), las revisiones de su secuencia de comandos no se actualizarán en la web. Esto es contrario a la intuición y fácil de descuidar, pero así es como Google tiene configurado este sistema actualmente.

Campo 3) “ Ejecute la aplicación como : "Establezca esto en" yo (su GMail aquí) ”.

Campo 4) “ Quién tiene acceso a la aplicación : "Establezca esto en" cualquiera, incluso anónimo . "

Parte 2:Configurar PushingBox

Pushingbox.com sirve como intermediario API simple, gratuito y fácil al permitir que nuestros datos DHT sean aceptables para Google Sheets. La necesidad de utilizar el intermediario API PushingBox es convertir nuestros datos transmitidos HTTP en datos cifrados HTTPS compatibles con Google. Podríamos intentar hacer un algoritmo de encriptación no trivial para satisfacer el requisito estándar, pero usar PushingBox es más fácil y recibimos hasta 1,000 solicitudes al día de forma gratuita. Además, no tenemos que lidiar con ninguna API de "caja negra" en la que podamos ingresar nuestros propios parámetros, pero luego obtenemos poco control sobre la personalización y no tenemos una idea real de cómo funciona realmente la función. A continuación se muestran los pasos para configurar Pushingbox para que funcione con nuestros datos:

1. Cree una cuenta PushingBox usando su Gmail.

2. En la parte superior, haga clic en "Mis servicios"

3. Ahora que está en "Mis servicios", vaya al cuadro "Agregar un servicio" y haga clic en "Agregar un servicio".

4. El servicio que desea crear es el último elemento de la lista de servicios y se llama:" CustomURL, ¡Configure su propio servicio! ”. Ahora seleccione este servicio CustomUrl.

5. Se abrirá una caja y pedirá tres artículos. Rellénelos como se muestra a continuación, luego presione enviar

Nombre de su configuración de URL personalizada:

URL raíz: Esta URL comenzará con https://script.google.com ... ya que esta es su dirección de Google Script guardada de la Parte 1

Método:

6. Después de enviar su servicio, ahora debe crear un escenario para el servicio. Para hacer esto, seleccione "Mis escenarios" en la parte superior de la página.

7. Ingrese un nombre apropiado para su escenario en el cuadro "Crear un escenario o agregar un dispositivo". Después de nombrar su servicio, haga clic en el botón "agregar" a la derecha.

8. Ahora le pedirá "Agregar una acción para su escenario". Ahora debe elegir el botón "Agregar una acción a este servicio" que aparece junto al nombre del servicio que creó en el paso anterior. Esto asigna su nuevo escenario a su nuevo servicio.

9. Se abrirá un cuadro de datos que le pedirá su método "Obtener" o "Publicar" (usamos el método Obtener, aunque esto parece contrario a la intuición). Para registrar todos nuestros datos DHT (cinco puntos de datos) en su hoja de Google, debe vincular los nombres de las variables que figuran en su secuencia de comandos de la aplicación de Google a los nombres que figuran en nuestro esquema de Arduino. Dar formato a los nombres correctamente en la API Pushingbox logrará esta tarea de vinculación. Copie y pegue la siguiente cadena en su cuadro.

 ? 

Nota: La declaración comienza con " ? "para indicar" OBTENER ".

El resultado debería tener el siguiente aspecto, pero con su propio nombre de escenario y número de ID de dispositivo:

Asegúrate de copiar tu cadena "DeviceID", la necesitarás tanto para las pruebas preliminares en el siguiente paso, como luego para el Arduino Sketch en la Parte 4.

3. Prueba de la API

Antes de pasar a la última pendiente, en la que programamos el MKR1000 para que envíe los datos de nuestro DHT a través de la web, sería útil comprobar que todo lo que hemos hecho hasta ahora es correcto. Si esperamos para completar la parte del hardware, la causa de cualquier error puede ser más difícil de rastrear. Afortunadamente, tenemos un método simple para probar nuestro código hasta ahora. Podemos ingresar directamente algunos pseudodatos codificados en la barra de direcciones de nuestros navegadores web y verificar que nuestra hoja de Google se esté actualizando correctamente. Aquí hay un ejemplo de lo que puede copiar y pegar en la barra de direcciones de su navegador.

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

Si lo desea, incluso puede volver a ingresar nuevos datos falsos con diferentes valores para las filas posteriores, sin embargo, recuerde, solo tiene 1,000 solicitudes por día de Pushingbox, ¡así que no se vuelva loco! Si este procedimiento no actualizó su hoja de cálculo, vuelva atrás y revise las Partes 1-3 de este instructivo en busca de errores antes de intentar la Parte 4.

Parte 4

Después de confirmar que pudo enviar algunos pseudodatos codificados directamente desde su navegador a su hoja de Google, ahora está listo para el siguiente paso, que consiste en enviar datos directamente desde el MKR1000 a las hojas de Google a través de Pushingbox a través de WiFi. Antes de que pueda cargar y ejecutar el boceto de Arduino incluido en el MKR1000, debe completar los siguientes tres pasos.

Hardware

1. Cableado del MKR1000 al DHT:esta es una tarea sencilla, especialmente si utiliza el MKR1000. Le recomiendo que alimente el DHT con 5 voltios, que está disponible en el MKR1000, listado como 5v. Supuestamente, el DHT puede funcionar con 3.3v, pero no he encontrado que las lecturas de DHT sean confiables al voltaje más bajo. Tiene la opción de usar varios pines diferentes para ingresar los datos del DHT al MKR1000, pero en mi boceto uso el Pin 5 el que se asigna al Pin D5 en el MKR1000 en la parte superior de la placa.

Software (1)

2. Hay algunos pasos para configurar su Arduino IDE para que funcione con su MKR1000. Estos pasos incluyen descargar dos bibliotecas y configurar el IDE de Arduino (1.6.4 o posterior) con el paquete de placa MRK1000 correcto (Herramientas -> Placa -> Administrador de placas). Muchos de ustedes ya habrán instalado todo el software que necesitan, para aquellos que no lo hayan hecho, a continuación se encuentran los enlaces para recuperar las bibliotecas necesarias y el paquete de soporte de la placa MKR1000. También tenga en cuenta que tuve que usar una versión anterior del paquete de la placa MKR1000 ya que el último paquete de soporte de la placa MKR1000 no funcionaba correctamente. Espero que este problema se haya resuelto cuando lea esto.

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

Las dos bibliotecas necesarias para el boceto:

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

Software (2)

3. Ahora está listo para el paso final del proyecto, debe copiar y pegar el boceto de Arduino incluido, personalizarlo para su dispositivo y luego cargar el boceto en su MKR1000. El boceto también transmite salida en serie a 9600 baudios para que pueda monitorear los datos que se envían a través de WiFi. Los tres campos del boceto de Arduino que debe personalizar son:

A) Tu nombre de WiFi

B) Tu contraseña de WiFi

C) Su ID de dispositivo Pushing Box (devid)

Eso es todo, ¡ya terminaste! Si todo se completó correctamente, su salida se verá similar a la imagen a continuación:

Gracias a todas las personas que crearon la mayoría de los componentes de software sobre los que se basó este proyecto. Enumeré sus nombres en los comentarios del código para una atribución adecuada. Siéntase libre de usar cualquier parte de este proyecto que necesite para crear su propia magia.

-SDB

Código

  • MKR1000 a Google Sheets a través de PushingBox usando DHT
  • Google Script para recibir datos inalámbricos en formato HTTPS
  • Cadena URL PushingBox (para pegamento HTTPS)
MKR1000 a Google Sheets a través de PushingBox usando DHT Arduino
Este boceto de Arduino envía datos a través de WiFI a la caja de empuje para el cifrado y luego a PushingBox para registrar esos datos en su hoja de Google
 // --------------------- -------------------------- // Este boceto se combina del sensor Adafruit DHT y tdicola para la biblioteca dht.h // https:// aprender .adafruit.com / dht / overview // https://gist.github.com/teos0009/acad7d1e54b97f4b2a88//otros Autores Arduino y Google Script asociado:// Aditya Riska Putra // Ahmed Reza Rafsanzani // Ryan Eko Saputro // Ver también:// http://jarkomdityaz.appspot.com/////ELINS UGM //// Modificado para el proyecto Hackster.io para MKR1000 // por Stephen Borsay (Portland, OR, EE. UU.) // Desde Arduino no puede https, necesitamos usar Pushingbox API (usa http) para ejecutar // el Google Script (usa https). Alternativamente, use el cifrado SecureWifi de Ivan ! #define DHTTYPE DHT11 // DHT 11 // # define DHTTYPE DHT21 // DHT 21 // # define DHTTYPE DHT22 // DHT 22DHT dht (DHTPIN, DHTTYPE); const char WEBSITE [] ="api.pushingbox.com"; // API pushbox serverconst String devid ="YOUR_DEVICEID"; // ID de dispositivo en Pushingbox para nuestro Scenarioconst char * MY_SSID ="YOUR SSID"; const char * MY_PWD ="YOUR WiFi PASSWORD"; int status =WL_IDLE_STATUS; // si no quieres usar DNS (y reduce tu boceto tamaño) // use la IP numérica en lugar del nombre del servidor:// IPAddress server (74,125,232,128); // IP numérica para Google (sin DNS) void setup () {// Inicializar serie y esperar a que se abra el puerto:Serial.begin (9600); while (! Serial) {; // espera a que se conecte el puerto serie. Necesario solo para puerto USB nativo} // comprobar la presencia del escudo:if (WiFi.status () ==WL_NO_SHIELD) {Serial.println ("No hay escudo WiFi"); // no continúe:while (verdadero); } // intenta conectarse a la red Wifi:while (status! =WL_CONNECTED) {Serial.print ("Intentando conectarse a SSID:"); Serial.println (MY_SSID); // Conéctese a la red WPA / WPA2. Cambie esta línea si usa open / WEP network status =WiFi.begin (MY_SSID, MY_PWD); // esperar 10 segundos para la conexión:delay (10000); } Serial.println ("Conectado a wifi"); printWifiStatus (); } void loop () {// Espere entre mediciones. retraso (10000); // prefiero usar float, pero el tamaño del paquete o la conversión de flotante no funciona // se revisará en el futuro con una función de cadena o función de conversión de flotante int humedadData =dht.readHumidity (); // Lee la temperatura como Celsius (por defecto) int celData =dht.readTemperature (); // Lee la temperatura como Fahrenheit (isFahrenheit =true) int fehrData =dht.readTemperature (true); // Compruebe si alguna lectura falló y salga antes (para volver a intentarlo). if (isnan (humedadData) || isnan (celData) || isnan (fehrData)) {Serial.println ("¡No se pudo leer el sensor DHT!"); regreso; } // Calcular el índice de calor en Fahrenheit (el valor predeterminado) int hifData =dht.computeHeatIndex (fehrData ,idityData); // Calcular el índice de calor en Celsius (isFahreheit =false) int hicData =dht.computeHeatIndex (celData ,idityData, false); Serial.print ("Humedad:"); Serial.print (datos de humedad); Serial.print ("% \ t"); Serial.print ("Temperatura:"); Serial.print (celData); Serial.print ("* C"); Serial.print (fehrData); Serial.print ("* F \ t"); Serial.print ("Índice de calor:"); Serial.print (hicData); Serial.print ("* C"); Serial.print (hifData); Serial.println ("* F \ n"); Serial.println ("\ nEnviando datos al servidor ..."); // si obtiene una conexión, informe a través del cliente serial:WiFiClient; // Crear una instancia del objeto WiFi, puede abarcar desde aquí o Globalmente // Servicio API usando WiFi Client a través de PushingBox y luego retransmitido a Google if (client.connect (WEBSITE, 80)) {client.print ("GET / pushbox? Devid =" + devid + "&idityData =" + (String) TemperatureData + "&celData =" + (String) celData + "&fehrData =" + (String) fehrData + "&hicData =" + (String) hicData + "&hifData =" + (String) hifData); // HTTP 1.1 proporciona una conexión persistente, lo que permite solicitudes por lotes // o canalizadas a un búfer de salida client.println ("HTTP / 1.1"); client.print ("Host:"); client.println (SITIO WEB); client.println ("Usuario-Agente:MKR1000 / 1.0"); // para MKR1000, a diferencia de esp8266, no cierre la conexión client.println (); Serial.println ("\ nDatos enviados"); }} void printWifiStatus () {// imprime el SSID de la red a la que está conectado:Serial.print ("SSID:"); Serial.println (WiFi.SSID ()); // imprime la dirección IP de tu escudo WiFi:IPAddress ip =WiFi.localIP (); Serial.print ("Dirección IP:"); Serial.println (ip); // imprime la intensidad de la señal recibida:long rssi =WiFi.RSSI (); Serial.print ("intensidad de la señal (RSSI):"); Serial.print (rssi); Serial.println ("dBm");} 
Google Script para recibir datos inalámbricos en formato HTTPS JavaScript
Pegue esto en el Editor de secuencias de comandos de su hoja de Google para recibir sus datos inalámbricos. Recuerde que tiene que estar en formato HTTPS encriptado / certificado de seguridad, por eso estoy usando PushingBox
 // -------------------------- --------------------- // Publicado originalmente por Mogsdad @ Stackoverflow // Modificado para jarkomdityaz.appspot.com//Modificado para Hackster.io por Stephen Borsay // -----------------------------------------------/*OBTENER solicitud de consulta:https://script.google.com/macros/s/  / exec? celData =data_here ----------------------- ----------------------------------------------- GScript, PushingBox y Arduino / ESP8266 Variables en orden:humedadDatcelDatafehrDatahicDatahifData ----------------------------------------- ----------- * // * Usando la API de hoja de cálculo * / function doGet (e) {Logger.log (JSON.stringify (e)); // ver los parámetros var result ='Ok'; // asumimos el éxito if (e.parameter ==undefined) {result ='Sin parámetros'; } más {var id =' 
Cadena URL PushingBox (para pegamento HTTPS) HTML
Esta es su cadena para conectar los nombres de las variables Arduino / MKR1000 que se transmiten a Google Sheets con exactamente los mismos nombres. Usando PushingBox como un intermediario que habilita la seguridad RESTfully.
 ?idityData =$idityData $ &celData =$ celData $ &fehrData =$ fehrData $ &hicData =$ hicData $ &hifData =$ hifData $ 

Piezas y carcasas personalizadas

otros datos
otros inalámbricos https://github.com/sborsay/Arduino_Wireless

Esquemas

Disposición

Proceso de manufactura

  1. ASISTENTE DE GOOGLE DE MATRIX VOICE - PROYECTO DE MATRIX VOICE
  2. Envía los datos del sensor de un Arduino a otro usando Firebase
  3. Hacer Monitor Ambilight usando Arduino
  4. Transferencia de datos magnética inalámbrica
  5. Juego Arduino Pong - Pantalla OLED
  6. Arduino - Tomar foto - Subir a Google Drive
  7. Detector de frecuencia de audio
  8. Clon Arduino Tamagotchi - Mascota digital
  9. Manipulador de interruptor de luz inalámbrico
  10. Tech-TicTacToe
  11. Pistola de agua con sensor de movimiento