Paso 5: Paso 4: escribir algo de código
Ahora los tiempos viene a escribir algo de código!
Algoritmo:
Queremos que nuestro dispositivo para obtener todos los datos de sensor > datos del sensor a la nube de empuje > obtener los datos del sensor de nuestra solicitud.
Copie el código en el IDE de arduino y luego reemplazar los identificadores de variables y TOKEN con tokens e ID de tu cuenta de Ubidots.com.
Código: (Por favor editarlo con su placa!!)
#include
#include #include #include #include "Barometer.h" #include
#define WIFI_AP "iPhone" #define WIFI_PASSWORD "helloworld1" #define WIFI_AUTH Edison WIFI_WPA / / elegir entre EDISONWIFI_OPEN, LWIFI_WPA o LWIFI_WEP.
Información de Ubidots
#define URL "things.ubidots.com" #define símbolo (token) "YOUR_TOKEN" / / reemplazar con la ficha de Ubidots generada en tu ficha de Perfil de #define VARIABLEID "SUNLIGHT_ID" #define VARIABLEID1 "TEMPRATURE_ID" //temprature #define VARIABLEID2 "Polvo SENSOR_ID" //dust #define VARIABLEID3 "AIR_SENSOR_ID" / / calidad del aire
Barómetro myBarometer; Float temperatura; duración largo sin firmar; starttime largo sin firmar; unsigned sampletime_ms largo = 3000; lowpulseoccupancy largo sin signo = 0; relación de flotador = 0; concentración de flotador = 0; int contador = 0;
void setup() {pinMode(8,INPUT);
Serial.Begin(9600); myBarometer.init();
Mantenga reintentando hasta conectado a AP Serial.println("Connecting to AP"); mientras que (0 == EdisonWiFi.connect (WIFI_AP, EdisonWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {delay(1000);}}
void loop() {temperatura = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); //Get la temperatura, bmp085ReadUT debe llamarse primera duración = pulseIn (8, bajo); lowpulseoccupancy = lowpulseoccupancy + duración; cociente = lowpulseoccupancy/1000; / / porcentaje entero 0 = > concentración 100 = 1.1 * pow (relación 3)-3.8 * pow (cociente 2) +520 * cociente + 0.62; save_value(String(analogRead(A0)), String(temperature), String(concentration), String(analogRead(A2))); delay(500);}
void save_value (valor de cadena, cadena a, polvo de cadena, Cuervo de cadena) {Serial.println ("envío valor Ubidots..."); EdisonWiFiClient c; mientras (! c.connect (URL, 80)) {Serial.println ("reintentando conectar..."); Delay(100); }
Datos de la secuencia = "{\"value\":"+ valor + "}"; String thisLength = String(data.length()); Crear HTTP POST petición c.print ("POST /api/v1.6/variables/"); c.Print(VARIABLEID); c.Print("/Values?token="); c.Print(token); c.println ("HTTP/1.1"); c.println ("Content-Type: aplicación/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + datos); c.Print(Char(26)); datos = "{\"value\":"+ un + "}"; thisLength = String(data.length()); Crear HTTP POST petición c.print ("POST /api/v1.6/variables/"); c.Print(VARIABLEID1); c.Print("/Values?token="); c.Print(token); c.println ("HTTP/1.1"); c.println ("Content-Type: aplicación/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + datos); c.Print(Char(26)); ////////////////////////////////////////////////////////// data = "{\"value\":"+ crow + "}"; thisLength = String(data.length()); Crear HTTP POST petición c.print ("POST /api/v1.6/variables/"); c.Print(VARIABLEID3); c.Print("/Values?token="); c.Print(token); c.println ("HTTP/1.1"); c.println ("Content-Type: aplicación/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + datos); c.Print(Char(26)); ///////////////////////////////////////////////////////////////////
datos = "{\"value\":"+ polvo + "}"; thisLength = String(data.length()); Crear HTTP POST petición c.print ("POST /api/v1.6/variables/"); c.Print(VARIABLEID2); c.Print("/Values?token="); c.Print(token); c.println ("HTTP/1.1"); c.println ("Content-Type: aplicación/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + datos); c.Print(Char(26));
//////////////////////////////////////////////////////
Lea la respuesta del servidor al mismo tiempo (c) {Serial.print((char)c.read());} c.stop(); }
Te olvides de editar las etiquetas con la variable ID y ID de cuenta