Stap 5: Stap 4: wat code schrijven
Nu de tijd komt om te schrijven wat code!
Algoritme:
Wij willen onze apparaat om alle sensorgegevens > Push sensorgegevens Cloud > de sensorgegevens krijgen op onze applicatie.
Kopieer de code in je arduino IDE en vervang de variabele-id's en TOKEN met tokens en -id's in uw Ubidots.com account.
Code: (Bewerk het voor je board!!)
#include
#include #include #include #include "Barometer.h" #include
#define WIFI_AP "iPhone" #define WIFI_PASSWORD "helloworld1" #define WIFI_AUTH Edison WIFI_WPA / / Kies uit EDISONWIFI_OPEN, LWIFI_WPA, of LWIFI_WEP.
Ubidots informatie
#define URL "things.ubidots.com" #define TOKEN "YOUR_TOKEN" / / vervangen van uw Ubidots-tokens gegenereerd in uw tabblad Profiel #define VARIABLEID "SUNLIGHT_ID" #define VARIABLEID1 "TEMPRATURE_ID" //temprature #define VARIABLEID2 "Stof SENSOR_ID" //dust #define VARIABLEID3 "AIR_SENSOR_ID" / / luchtkwaliteit
Barometer myBarometer; float temperatuur; niet-ondertekende lange duur; niet-ondertekende lange starttime; unsigned long sampletime_ms = 3000; unsigned long lowpulseoccupancy = 0; float verhouding = 0; zweven concentratie = 0; int counter = 0;
void setup {pinMode(8,INPUT);
Serial.begin(9600); myBarometer.init();
houden opnieuw totdat verbonden met AP Serial.println("Connecting to AP"); terwijl (0 == EdisonWiFi.connect (WIFI_AP, EdisonWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {delay(1000);}}
void loop {temperatuur = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); //Get de temperatuur, bmp085ReadUT moet worden aangeroepen eerste duur = pulseIn (8, laag); lowpulseoccupancy = lowpulseoccupancy + duur; verhouding = lowpulseoccupancy/1000; / / Integer percentage 0 = > 100 concentratie = 1.1 * pow (verhouding, 3)-3.8 * pow (verhouding, 2) +520 * verhouding + 0.62; save_value(String(analogRead(A0)), String(temperature), String(concentration), String(analogRead(A2))); delay(500);}
VOID save_value (String value, String, String stof, String crow) {Serial.println ("verzenden waarde te Ubidots..."); C EdisonWiFiClient; terwijl (! c.connect (URL, 80)) {Serial.println ("nieuwe poging om te verbinden …"); delay(100); }
Gegevens string = "{\"value\":"+ waarde + "}"; ThisLength koord = String(data.length()); Bouwen van HTTP POST-aanvraag 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: application/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + gegevens); c.Print(char(26)); gegevens = "{\"value\":"+ een + "}"; thisLength = String(data.length()); Bouwen van HTTP POST-aanvraag 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: application/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + gegevens); c.Print(char(26)); ////////////////////////////////////////////////////////// data = "{\"value\":"+ crow + "}"; thisLength = String(data.length()); Bouwen van HTTP POST-aanvraag 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: application/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + gegevens); c.Print(char(26)); ///////////////////////////////////////////////////////////////////
gegevens = "{\"value\":"+ stof + "}"; thisLength = String(data.length()); Bouwen van HTTP POST-aanvraag 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: application/json"); c.println ("Content-Length:" + thisLength); c.Print ("Host:"); c.println(URL); c.Print ("\n" + gegevens); c.Print(char(26));
//////////////////////////////////////////////////////
Lees de reactie van de server terwijl (c) {Serial.print((char)c.read())}; c.stop(); }
Vergeet niet te bewerken van de tags met uw variabele-ID en account-ID