Stap 2: Code
Deze code is ontworpen om bepaalde kleuren van de RGB LED oplichten. Het is ingesteld op een zodanige wijze dat u de kleur die overeenkomt met de kleuren van de emoties in Inside Out kunt activeren.
< p > //#include < b64.h >< br > #include < httpclient.h > #include < ltask.h > #include < lwifi.h > #include < lwificlient.h > #include < ldatetime.h > #define WIFI_AP "" #define WIFI_PASSWORD "" #define WIFI_AUTH LWIFI_WPA / / Kies uit LWIFI_OPEN, LWIFI_WPA, of LWIFI_WEP. #define per 50 #define per1 3 #define DEVICEID "" / / Input uw deviceId #define DEVICEKEY "" / / Input van uw deviceKey #define SITE_URL "api.mediatek.com" < /ldatetime.h >< /lwificlient.h >< /lwifi.h >< /ltask.h >< /httpclient.h >< /b64.h >< /p >< p > LWiFiClient-c; unsigned int rtc; unsigned int lrtc; unsigned int rtc1; unsigned int lrtc1; char poort [4] = {0}; char connection_info [21] = {0}; char ip [21] = {0}; int portnum; int val = 0; Tcpdata koord = String(DEVICEID) + "," + String(DEVICEKEY) + ", 0"; String upload_led; Tcpcmd_ledJoy_on koord = "LED_ControlJoy", 1; Tcpcmd_ledJoy_off koord = "LED_ControlJoy, 0"; < /p >< p > String tcpcmd_ledAnger_on = "LED_ControlAnger", 1; Tcpcmd_ledAnger_off koord = "LED_ControlAnger, 0"; < /p >< p > String tcpcmd_ledDisgust_on = "LED_ControlDisgust", 1; Tcpcmd_ledDisgust_off koord = "LED_ControlDisgust, 0"; < /p >< p > String tcpcmd_ledFear_on = "LED_ControlFear", 1; Tcpcmd_ledFear_off koord = "LED_ControlFear, 0"; < /p >< p > String tcpcmd_ledSad_on = "LED_ControlSad", 1; Tcpcmd_ledSad_off koord = "LED_ControlSad, 0"; < /p >< p > LWiFiClient c2; HttpClient http(c2); < /p >< p > void setup {LTask.begin(); LWiFi.begin(); Serial.begin(115200); / * tijdje (! Seriële) delay(1000); / * commentaar uit deze lijn als seriële is niet aanwezig is, dwz. Run deze demo zonder verbinden met PC * / < /p >< p > Serial.println ('verbinding maken met AP"); terwijl (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {delay(1000);} Serial.println ("calling verbinding"); < /p >< p > terwijl (! c2.connect (SITE_URL, 80)) {Serial.println ("opnieuw aansluiten op WebSite"); delay(1000);} delay(100); < /p >< p > pinMode (13, OUTPUT); pinMode (12, OUTPUT); pinMode (11, OUTPUT); pinMode (10, OUTPUT); pinMode (9, OUTPUT); pinMode (8, OUTPUT); pinMode (7, OUTPUT); pinMode (6, OUTPUT); pinMode (5, OUTPUT); pinMode (4, OUTPUT); pinMode (3, OUTPUT); pinMode (2, OUTPUT); getconnectInfo(); connectTCP(); } < /p >< p > nietig getconnectInfo() {//calling RESTful API om TCP socket verbinding 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 ("verbinding: sluiten"); C2.println(); delay(500); < /p >< p > int errorcount = 0; terwijl (! c2.available()) {Serial.println ("HTTPreactie wachten:"); Serial.println(ErrorCount); ErrorCount += 1; Als (errorcount > 10) {c2.stop(); terugkeer;} delay(100); } int err = http.skipResponseHeaders(); < /p >< p > int bodyLen = http.contentLength(); Serial.Print ("Content lengte is:"); Serial.println(bodyLen); Serial.println(); char c; int ipcount = 0; int count = 0; int separater = 0; terwijl (c2) {int v = c2.read(); als (v! = -1) {c = v; Serial.Print(c); connection_info [ipcount] = c; if(c==',') separater = ipcount; ipcount ++; } else {Serial.println ("niet meer inhoud, verbinding verbreken"); c2.stop(); < /p >< p >}} Serial.print ("de verbindingsgegevens:"); Serial.println(connection_info); int i; voor (ik = 0; ik < separater; i ++) = "" {= "" ip [i] = "connection_info [i];"} = "" int = "" j = "0"; separater ++; = "" voor (ik = "separater; ik < 21" & & = "" j < 5; i ++) = "" poort [j] = "connection_info [i];" j ++; = "" serial.println ("de =" "tcp =" "socket =" "verbinding =" "instructies:"); = "" serial.print ("ip: =" ""); = "" serial.println(ip); = "" serial.print ("poort: =" "serial.println(port); =" "portnum =" atoi"(poort); =" "serial.println(portnum); < =" "p =" ">< / separater; i ++) >< /p >< p >} //getconnectInfo < /p >< p > void uploadstatus() {//calling RESTful API te uploaden datapoint aan MCS naar rapportstatus LED Serial.println ("oproepende connectie"); LWiFiClient c2; < /p >< p > terwijl (! c2.connect (SITE_URL, 80)) {Serial.println ("opnieuw aansluiten op WebSite"); delay(1000);} delay(100); if(digitalRead(13)==1) upload_led = "LED_Display,, 1"; anders upload_led = "LED_Display,, 0"; int thislength = upload_led.length(); HttpClient http(c2); C2.Print ("POST /mcs/v2/devices /"); C2.Print(DEVICEID); C2.println ("HTTP/1.1 /datapoints.csv"); C2.Print ("Host:"); C2.println(SITE_URL); C2.Print ("deviceKey:"); C2.println(DEVICEKEY); C2.Print ("Content-Length:"); C2.println(thislength); C2.println ("Content-Type: tekst/csv"); C2.println ("verbinding: sluiten"); C2.println(); C2.println(upload_led); delay(500); < /p >< p > int errorcount = 0; terwijl)! c2.available()) {Serial.print ("HTTPreactie wachten:"); Serial.println(ErrorCount); ErrorCount += 1; Als (errorcount > 10) {c2.stop(); terugkeer;} delay(100); } int err = http.skipResponseHeaders(); < /p >< p > int bodyLen = http.contentLength(); Serial.Print ("Content lengte is:"); Serial.println(bodyLen); Serial.println(); terwijl (c2) {int v = c2.read(); als (v! = -1) {Serial.print(char(v));} else {Serial.println ("niet meer inhoud, verbinding verbreken"); c2.stop(); < /p >< p >}}} < /p >< p > nietig connectTCP() {//establish TCP-verbinding met TCP Server met voorgedragen IP en poort c.stop(); Serial.println ("aansluiten op TCP"); Serial.println(IP); Serial.println(portnum); terwijl (0 == c.connect (ip, portnum)) {Serial.println ("opnieuw aansluiten op TCP"); delay(1000);} Serial.println ("verzenden TCP verbinden"); c.println(tcpdata); c.println(); Serial.println ("TCP antwoord wachten:");} connectTCP < /p >< p > void heartBeat() {Serial.println ("verzenden TCP heartBeat"); c.println(tcpdata); c.println();} //heartBeat < /p >< p > void loop //Red leidde {//Check voor TCP socket opdracht van MCS Server String tcpcmd = ""; terwijl (c.available()) {int v = c.read(); als (v! = -1) {Serial.print((char)v); tcpcmd += (char) v; als (tcpcmd.substring(40).equals(tcpcmd_ledAnger_on)) {digitalWrite (4, hoog); digitalWrite (3 HOGE); digitalWrite (2, HIGH); Serial.Print ("Switch LED op"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledAnger_off)) {digitalWrite (4, laag); digitalWrite (3, laag); digitalWrite (2, laag); Serial.Print ("Schakel LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledJoy_on)) {digitalWrite (4, HIGH) digitalWrite (3, hoge) digitalWrite (2, HIGH); digitalWrite (10, hoge); digitalWrite (9, hoge); digitalWrite (8, hoge); digitalWrite (7, hoge); digitalWrite (6, hoog); digitalWrite (5, hoog); Serial.Print ("Switch LED op"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledJoy_off)) {digitalWrite (4, LOW) digitalWrite (3, laag); digitalWrite (2, laag); digitalWrite (10, LOW); digitalWrite (9, LOW); digitalWrite (8, laag); digitalWrite (7, LOW); digitalWrite (6, laag); digitalWrite (5, laag); Serial.Print ("Schakel LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledDisgust_on)) {digitalWrite (10, hoog) digitalWrite (9, hoge); digitalWrite (8 hoog); Serial.Print ("Switch LED op"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledDisgust_off)) {digitalWrite (10, laag); digitalWrite (9, laag); digitalWrite (8, laag); Serial.Print ("Schakel LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledFear_on)) {digitalWrite (4, HIGH) digitalWrite (3, hoge) digitalWrite (2, HIGH); digitalWrite (7, hoge); digitalWrite (6, hoog); digitalWrite (5, hoog); Serial.Print ("Switch LED op"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledFear_off)) {digitalWrite (4, LOW) digitalWrite (3, laag); digitalWrite (2, laag); digitalWrite (7, laag); digitalWrite (6, laag); digitalWrite (5, laag); Serial.Print ("Schakel LED"); tcpcmd = ""; } < /p >< p > anders if(tcpcmd.substring(40).equals(tcpcmd_ledSad_on)) {digitalWrite (7, hoog) digitalWrite (6, hoge); digitalWrite (5, hoog); Serial.Print ("Switch LED op"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledSad_off)) {digitalWrite (7, laag); digitalWrite (6, laag); digitalWrite (5, laag); Serial.Print ("Schakel LED"); tcpcmd = ""; }}} < /P >< p > LDateTime.getRtc (& rtc); Als ((rtc-lrtc) > = per) {heartBeat(); lrtc = rtc;} //Check voor verslag datapoint status interval LDateTime.getRtc (& rtc1); Als ((rtc1-lrtc1) > = per1) {uploadstatus(); lrtc1 = rtc1;}} < /p >