Étape 3: Étape 3: codage de votre Arduino
Pour cette partie, je supposerai que vous avez déjà connecté votre arduino Yun à l’interwebz. Que ce soit ethernet ou wifi.
Ouvrir arduino et charger une nouvelle esquisse. Pour cette partie, nous avons besoin certaines bibliothèques simples donc chargerez place ceux-ci dans votre dessin.
#include <Bridge.h>; #include <Console.h>; #include <HttpClient.h>; #include <Process.h>; #include <YunClient.h>; #include <SPI.h>;
Ensuite jusqu'à nous ajouterons quelques variables dans le mélange. Les plus importantes, que vous aurez besoin de modifier
- int MQ135. Il s’agit de l’analogPin à que votre capteur est raccordé. Pour moi, c’était 0.
- Longitude de la chaîne. Il s’agit de la longitude de ma position actuelle.
- Latitude de la chaîne. Il s’agit de la latitude de ma position actuelle.
- Adresse IP server(xx,xx,xx,xx). Il s’agit de l’adresse IP de votre serveur. Remarque : les séparateurs sont des virgules et points pas.
Le programme d’installation !
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 }
La boucle ! Chaque fois que la boucle s’exécute qu'il enverra une requête post sur notre serveur. Dans cet exemple, nous envoyons sur toutes les quelques secondes. Dans des environnements de vie réelle (la production), vous devriez pas le faire si vous avez beaucoup de Vincent connexion à votre serveur.
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. }