Stap 3: Stap 3: uw Arduino codering
Voor dit deel, ik ga ervan uit dat u al verbinding hebt je arduino Yun de interwebz. Zij het ethernet of wifi.
Openstellen van arduino en het laden van een nieuwe schets. Voor dit deel wij zult moeten sommige eenvoudige bibliotheken dus Laad-up van deze in uw schets.
#include <Bridge.h>; #include <Console.h>; #include <HttpClient.h>; #include <Process.h>; #include <YunClient.h>; #include <SPI.h>;
Next up we zullen het toevoegen sommige variabelen in de mix. De belangrijkste die u wilt bewerken
- int MQ135. Dit is de analogPin die je sensor is aangesloten op. Voor mij was 0.
- Lengte van de tekenreeks. Dit is de lengte van mijn huidige locatie.
- Tekenreeks latitude. Dit is de breedtegraad van mijn huidige locatie.
- IP-adres server(xx,xx,xx,xx). Dit is het IP-adres van uw server. Opmerking: de scheidingstekens komma's en geen puntjes zijn.
De Setup!
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 }
De lus! Telkens wanneer de lus wordt uitgevoerd dat een post-aanvraag wordt verzonden naar onze server. In dit voorbeeld sturen wij op om de paar seconden. In het echte leven (productie) omgevingen moet je niet doen als je een heleboel Yuns verbinding met uw server hebt.
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. }