Använda en Linkit en till molnet kontroll en färg LED (2 / 6 steg)
Steg 2: kod
Det finns några saker du kommer att ha lägga specifik information till koden för den till verk riktig. Namnet på din wifi och den enhets-id och lösenord nyckel av ditt moln.
#include
#include #include #include #include #include #define WIFI_AP "" #define WIFI_PASSWORD "" #define WIFI_AUTH LWIFI_WPA / / välja mellan LWIFI_OPEN, LWIFI_WPA eller LWIFI_WEP. #define per 50 #define per1 3 #define DEVICEID "" / / ingång din deviceId #define DEVICEKEY "" / / ingång din deviceKey #define SITE_URL "api.mediatek.com"
LWiFiClient c; unsigned int rtc; unsigned int lrtc; unsigned int rtc1; unsigned int lrtc1; char port [4] = {0}. char connection_info [21] = {0}. char ip [21] = {0}. int portnum; int val = 0; String tcpdata = String(DEVICEID) + "," + String(DEVICEKEY) + ", 0"; Sträng upload_led; String tcpcmd_led_on = "LED_Controller, 1"; String tcpcmd_led_off = "LED_Controller, 0"; String tcpcmd_blue_on = "LED_BlueControl, 1"; String tcpcmd_blue_off = "LED_BlueControl, 0"; String tcpcmd_green_on = "LED_GreenControl, 1"; String tcpcmd_green_off = "LED_GreenControl, 0";
LWiFiClient c2; HttpClient http(c2);
void setup() {LTask.begin(); LWiFi.begin(); Serial.BEGIN(115200); tag (!. Serial) delay(1000); / * kommentera bort raden när följetong inte är närvarande, dvs. Kör denna demo utan ansluter till PC * /
Serial.println ("ansluter till AP"); medan (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {delay(1000);} Serial.println ("calling anslutning");
medan (! c2.connect (SITE_URL, 80)) {Serial.println ("åter ansluter till webbplatsen"); delay(1000);} delay(100);
pinMode (13, OUTPUT); pinMode (12, OUTPUT); pinMode (11, OUTPUT); getconnectInfo(); connectTCP(); }
void getconnectInfo() {//calling RESTful API för att få TCP socket anslutning c2.print ("GET /mcs/v2/devices /"); c2.print(DEVICEID), c2.println ("/connections.csv HTTP/1.1"), c2.print ("Host:"); C2.println(SITE_URL); C2.Print ("deviceKey:"); C2.println(DEVICEKEY); C2.println ("anslutning: Stäng"); C2.println(); Delay(500);
int errorcount = 0; medan (! c2.available()) {Serial.println ("väntar på HTTP-svar:"); Serial.println(errorcount); errorcount + = 1; om (errorcount > 10) {c2.stop(); återvänder;} delay(100); } int err = http.skipResponseHeaders();
int bodyLen = http.contentLength(); Serial.Print ("innehåll längd är:"); Serial.println(bodyLen); Serial.println(); char c; int ipcount = 0; int count = 0; int separater = 0; medan (c2) {int v = c2.read(); om (v! = -1) {c = v; Serial.Print(c); connection_info [ipcount] = c; IF(c==',') separater = ipcount; ipcount ++; } annat {Serial.println (inte mer innehåll, koppla bort"); c2.stop();
{}} Serial.print ("Anslutningsinfo:"); Serial.println(connection_info); int i; för (jag = 0; jag
} //getconnectInfo
void uploadstatus() {//calling RESTful API att ladda upp datapoint till MCS till rapporten LED status Serial.println ("ringa anslutning"); LWiFiClient c2;
medan (! c2.connect (SITE_URL, 80)) {Serial.println ("åter ansluter till webbplatsen"); delay(1000);} delay(100); IF(digitalRead(13)==1) upload_led = "LED_Display,, 1"; annat upload_led = "LED_Display,, 0"; int thislength = upload_led.length(); HttpClient http(c2); C2.Print ("POST /mcs/v2/devices /"); C2.Print(DEVICEID); C2.println ("/datapoints.csv HTTP/1.1"); C2.Print ("Host:"); C2.println(SITE_URL); C2.Print ("deviceKey:"); C2.println(DEVICEKEY); C2.Print ("Content-Length:"); C2.println(thislength); C2.println ("Content-Type: text/csv"); C2.println ("anslutning: Stäng"); C2.println(); C2.println(upload_led); Delay(500);
int errorcount = 0; medan (! c2.available()) {Serial.print ("väntar på HTTP-svar:"); Serial.println(errorcount); errorcount + = 1; om (errorcount > 10) {c2.stop(); återvänder;} delay(100); } int err = http.skipResponseHeaders();
int bodyLen = http.contentLength(); Serial.Print ("innehåll längd är:"); Serial.println(bodyLen); Serial.println(); medan (c2) {int v = c2.read(); om (v! = -1) {Serial.print(char(v));} annat {Serial.println (inte mer innehåll, koppla bort"); c2.stop();
} } }
void connectTCP() {//establish TCP-anslutning med TCP Server med utnämnt IP och Port c.stop(); Serial.println ("ansluta till TCP"); Serial.println(IP); Serial.println(portnum); medan (0 == c.connect (ip, portnum)) {Serial.println ("åter ansluta till TCP"); delay(1000);} Serial.println ("Skicka TCP förbinda"); c.println(tcpdata); c.println(); Serial.println ("väntar på TCP-svar:");} connectTCP
void heartBeat() {Serial.println ("Skicka TCP heartBeat"); c.println(tcpdata); c.println();} //heartBeat
void loop() //Red ledde {//Check för TCP socket kommandot från MCS-servern sträng tcpcmd = ""; samtidigt (c.available()) {int v = c.read(); om (v! = -1) {Serial.print((char)v); tcpcmd += (char) v; om (tcpcmd.substring(40).equals(tcpcmd_led_on)) {digitalWrite 13, hög. Serial.Print ("Switch LED på"); tcpcmd = ""; } annat if(tcpcmd.substring(40).equals(tcpcmd_led_off)) {digitalWrite 13, låg. Serial.Print ("avstängning LED"); tcpcmd = ""; } annat if(tcpcmd.substring(40).equals(tcpcmd_blue_on)) {digitalWrite (12, hög). Serial.Print ("Switch LED på"); tcpcmd = ""; } annat if(tcpcmd.substring(40).equals(tcpcmd_blue_off)) {digitalWrite (12, låg). Serial.Print ("avstängning LED"); tcpcmd = ""; } annat if(tcpcmd.substring(40).equals(tcpcmd_green_on)) {digitalWrite (11, hög). Serial.Print ("Switch LED på"); tcpcmd = ""; } annat if(tcpcmd.substring(40).equals(tcpcmd_green_off)) {digitalWrite (11, låg). Serial.Print ("avstängning LED"); tcpcmd = ""; } } }
LDateTime.getRtc(&rtc);
om ((rtc-lrtc) > = per) {
heartBeat();
lrtc = rtc;
}
Kontrollera om rapporten datapoint status intervall
LDateTime.getRtc(&rtc1);
om ((rtc1-lrtc1) > = per1) {
uploadstatus();
lrtc1 = rtc1;
}
}