DIY Smart Home övervakning flaska (18 / 25 steg)
Steg 18: Skriva koden
Bränna denna kod till din styrelse
KOD-
#include "Barometer.h"
#include
#define WIFI_AP "iPhone"
#define WIFI_PASSWORD "helloworld1"
#define WIFI_AUTH LWIFI_WPA / / välja mellan LWIFI_OPEN, LWIFI_WPA eller LWIFI_WEP.
Ubidots information
#define URL "things.ubidots.com"
#define TOKEN "WF1hbsrYltg5vwGDowAejTykHigEi5" / / byta ut med din Ubidots token genereras i din profil fliken
#define VARIABLEID "55d5f6047625422bxxxb0441"
#define VARIABLEID1 "55d5f5e37625xxxce1e0358f" //temprature
#define VARIABLEID2 "55d4c74xxx25424830973c35" //dust
#define VARIABLEID3 "55d5xxx7762542363264e715" //crow
Barometer myBarometer;
float temperatur;
osignerade långa varaktighet;
osignerade långa starttime;
osignerade långa sampletime_ms = 3000;
osignerade långa lowpulseoccupancy = 0;
float ratio = 0;
flyta koncentration = 0;
int counter = 0;
void setup()
{
LTask.begin();
LWiFi.begin();
pinMode(8,INPUT);
Serial.BEGIN(9600);
myBarometer.init();
hålla försöker igen tills ansluten till AP
Serial.println ("ansluter till AP");
medan (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD)))
{
Delay(1000);
}
}
void loop()
{
temperatur = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); Få temperaturen, bmp085ReadUT måste anropas först
längd = pulseIn (8, låg).
lowpulseoccupancy = lowpulseoccupancy + varaktighet;
ratio = lowpulseoccupancy/1000; Heltal andel 0 = > 100
koncentration = 1,1 * pow (förhållande, 3)-3,8 * pow (förhållande, 2) +520 * förhållandet + 0,62;
save_value(String(analogRead(a0)), String(temperature), String(concentration), String(analogRead(A2)));
Delay(500);
}
void save_value (String value, sträng, sträng damm, sträng crow) {
Serial.println ("skicka värdet till Ubidots...");
LWiFiClient c;
medan (! c.connect (URL, 80))
{
Serial.println ("försöker igen för att ansluta...");
Delay(100);
}
Sträng data = "{\"value\":"+ värde + "}";
String thisLength = String(data.length());
Bygga HTTP POST-begäran
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" + data);
c.Print(Char(26));
data = "{\"value\":"+ en + "}";
thisLength = String(data.length());
Bygga HTTP POST-begäran
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" + data);
c.Print(Char(26));
//////////////////////////////////////////////////////////
data = "{\"value\":"+ crow + "}";
thisLength = String(data.length());
Bygga HTTP POST-begäran
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" + data);
c.Print(Char(26));
///////////////////////////////////////////////////////////////////
data = "{\"value\":"+ damm + "}";
thisLength = String(data.length());
Bygga HTTP POST-begäran
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" + data);
c.Print(Char(26));
//////////////////////////////////////////////////////
Läs svaret från servern
medan (c) {
Serial.Print((Char)c.Read());
}
c.stop();
}