Linkit en IoT: ansluten till Thingspeak (4 / 5 steg)
Steg 4: Koden
Koden görs genom att kombinera i LWIFI exempel och exempelkoden från thingspeak.
På variabeln WriteApiKey skriva API som har gjort/spara anteckningar på steg 2.
Verifiera koden och ladda upp den
/*
WiFi webbserver
En enkel webbserver som en upprepad räknare
Ändra makrot WIFI_AP, WIFI_PASSWORD och WIFI_AUTH därefter.
skapad 13 juli 2010
av dlf (Metodo2 srl)
modifierad 31 maj 2012
av Tom Igoe
modifierade 20 Aug 2014
MediaTek Inc.
Thingspeak kod
Skapad: Oktober 17, 2011 av Hans Scharler (http://www.nothans.com)
*/
#include < LTask.h >
#include < LWiFi.h >
#include < LWiFiServer.h >
#include < LWiFiClient.h >
#define WIFI_AP "YourWiFiName"
#define WIFI_PASSWORD "WiFi lösenord"
#define WIFI_AUTH LWIFI_WPA / / välja mellan LWIFI_OPEN, LWIFI_WPA eller LWIFI_WEP enligt din WiFi AP konfiguration
ThingSpeak inställningar
char thingSpeakAddress [] = "api.thingspeak.com";
String writeAPIKey = "Din API-nyckel";
CONST int updateThingSpeakInterval = 16 * 1000; Tidsintervall i millisekunder för att uppdatera ThingSpeak (antal sekunder * 1000 = intervall)
lång lastConnectionTime = 0;
booleska lastConnected = false;
int failedCounter = 0;
LWiFiClient klient;
void setup()
{
LWiFi.begin();
Serial.BEGIN(115200);
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);
}
startWifi();
}
void loop()
{
Läsa värdet från Analog Input stift 0
String analogValue0 = String(analogRead(A0), DEC);
Skriva ut uppdateringen svar på Serial Monitor
om (client.available())
{
char c = client.read();
Serial.Print(c);
}
Koppla från ThingSpeak
om (! client.connected() & & lastConnected)
{
Serial.println("...Disconnected");
Serial.println();
client.stop();
}
Uppdatera ThingSpeak
IF(!client.Connected() & & (millis() - lastConnectionTime > updateThingSpeakInterval))
{
updateThingSpeak("field1="+analogValue0);
}
Kontrollera om Arduino Ethernet måste startas
om (failedCounter > 3) {startWifi();}
lastConnected = client.connected();
}
void updateThingSpeak(String tsData)
{
om (client.connect (thingSpeakAddress, 80))
{
client.Print ("POST /update HTTP/1.1\n");
client.Print ("Host: api.thingspeak.com\n");
client.Print ("anslutning: close\n");
client.Print ("X-THINGSPEAKAPIKEY:" + writeAPIKey + "\n");
client.Print ("Content-Type: application/x-www-formuläret-urlencoded \n");
client.Print ("Content-Length:");
client.Print(tsData.length());
client.Print("\n\n");
client.Print(tsData);
lastConnectionTime = millis();
om (client.connected())
{
Serial.println ("ansluter till ThingSpeak...");
Serial.println();
failedCounter = 0;
}
annat
{
failedCounter ++;
Serial.println ("anslutning till ThingSpeak misslyckades ("+ String(failedCounter, DEC) +")");
Serial.println();
}
}
annat
{
failedCounter ++;
Serial.println ("anslutning till ThingSpeak misslyckades ("+ String(failedCounter, DEC) +")");
Serial.println();
lastConnectionTime = millis();
}
}
void startWifi()
{
client.stop();
Serial.println ("ansluta Arduino att nätet...");
Serial.println();
Delay(1000);
}