Paso 3: Paso 3: codificación de tu Arduino
Para esta parte, supondré que ya has conectado el arduino Yun a la interwebz. Ya sea ethernet o wifi.
Abrir arduino y cargar un nuevo boceto. Para esta parte te necesita algunas bibliotecas simple así que carga en su bosquejo.
#include <Bridge.h>; #include <Console.h>; #include <HttpClient.h>; #include <Process.h>; #include <YunClient.h>; #include <SPI.h>;
Luego hasta se van añadiendo algunas variables en la mezcla. Los importantes que necesitará editar
- int MQ135. Este es el analogPin a que su sensor está conectado. Para mí fue 0.
- Longitud de la cadena. Esta es la longitud de mi ubicación actual.
- Latitud de la cadena. Esta es la latitud de mi ubicación actual.
- Dirección IP server(xx,xx,xx,xx). Esta es la dirección IP de su servidor. Nota: los separadores son comas y puntos no.
La configuración!
void setup() { Serial.begin(9600); // initialize serial communication while (!Serial); // do nothing until the serial monitor is opened Serial.println("Starting bridge...\n"); pinMode(13, OUTPUT); digitalWrite(13, LOW); Bridge.begin(); // make contact with the linux processor digitalWrite(13, HIGH); // Led on pin 13 turns on when the bridge is ready delay(2000); // wait 2 seconds }
El lazo! Cada vez que el bucle se ejecuta enviará una solicitud post a nuestro servidor. En este ejemplo enviamos cada pocos segundos. En entornos reales (producción) debe no hacer esto si usted tiene un montón de Yuns conexión a su servidor.
void loop() { // put your main code here, to run repeatedly: if (client.connect(server, 80)) { Serial.println("connected"); Serial.println(getReading(MQ135)); pollution = dtostrf(getReading(MQ135), 4, 2, buf); //convert float to string for post request delay(2500); values="pollution="+pollution+"&latitude="+latitude+"&longitude="+longitude; //set up the post request to our server client.println("POST /api/v1/data HTTP/1.1"); client.println("Host: www.domain.tld"); client.print("Content-length:"); client.println(values.length()); Serial.println(values); client.println("Connection: Close"); client.println("Content-Type: application/x-www-form-urlencoded;"); client.println(); client.println(values); }else{ Serial.println("connection failed"); delay(1000); } if(client.connected()){ client.stop(); //disconnect from server } delay(2000); }float getReading(int pin) { return (analogRead(pin) * 0.004882814); // This equation converts the 0 to 1023 value that analogRead() // returns, into a 0.0 to 5.0 value that is the true voltage // being read at that pin. }