Paso 2: código
Este código está diseñado para iluminar ciertos colores del RGB LED. Que esté configurado de tal manera que usted puede activar el color que se corresponde con los colores de las emociones en Inside Out.
< 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 / / elegir entre LWIFI_OPEN, LWIFI_WPA o LWIFI_WEP. #define por 50 per1 #define #define 3 DEVICEID "" / entrada tu deviceId #define DEVICEKEY "" / entrada su 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; carbón puerto [4] = {0}; char connection_info [21] = {0}; char ip [21] = {0}; int portnum; int val = 0; String tcpdata = String(DEVICEID) + "," + String(DEVICEKEY) + ", 0"; String upload_led; String tcpcmd_ledJoy_on = "LED_ControlJoy, 1"; String tcpcmd_ledJoy_off = "LED_ControlJoy 0"; < /p >< p > String tcpcmd_ledAnger_on = "LED_ControlAnger, 1"; String tcpcmd_ledAnger_off = "LED_ControlAnger 0"; < /p >< p > String tcpcmd_ledDisgust_on = "LED_ControlDisgust, 1"; String tcpcmd_ledDisgust_off = "LED_ControlDisgust 0"; < /p >< p > String tcpcmd_ledFear_on = "LED_ControlFear, 1"; String tcpcmd_ledFear_off = "LED_ControlFear 0"; < /p >< p > String tcpcmd_ledSad_on = "LED_ControlSad, 1"; String tcpcmd_ledSad_off = "LED_ControlSad 0"; < /p >< p > LWiFiClient c2; HttpClient http(c2); < /p >< p > void setup() {LTask.begin(); LWiFi.begin(); Serial.Begin(115200); / * tiempo (! Delay(1000) serial); / * Comentario esta línea cuando Serial no está presente, es decir. ejecutar esta demo sin conectar a la PC * / < /p >< p > Serial.println ("conexión con la AP"); mientras que (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {delay(1000);} Serial.println ("llamar a conexión"); < /p >< p > mientras (! c2.connect (SITE_URL, 80)) {Serial.println ("volver a conectar al sitio web"); delay(1000);} delay(100); < /p >< p > pinMode (13, salida); pinMode (12, salida); pinMode (11, salida); pinMode (10, salida); pinMode (9, salida); pinMode (8, salida); pinMode (7, salida); pinMode (6, salida); pinMode (5, salida); pinMode (4, salida); pinMode (3, salida); pinMode (2, salida); getconnectInfo(); connectTCP(); } < /p >< p > void getconnectInfo() {//calling API RESTful para obtener c2.print de conexión de socket TCP ("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 ("conexión: cerrar"); C2.println(); Delay(500); < /p >< p > int errorcount = 0; mientras (! c2.available()) {Serial.println ("esperando respuesta HTTP:"); Serial.println(errorcount); errorcount += 1; Si (errorcount > 10) {c2.stop(); return;} delay(100); } int err = http.skipResponseHeaders(); < /p >< p > int bodyLen = http.contentLength(); Serial.Print ("contenido de longitud es:"); Serial.println(bodyLen); Serial.println(); char c; int ipcount = 0; int cuenta = 0; separador de int = 0; mientras (c2) {int v = c2.read(); if (v! = -1) {c = v; Serial.Print(c); connection_info [ipcount] = c; separador de if(c==',') = ipcount; ipcount ++; } else {Serial.println ("no más contenido, desconectar"); c2.stop(); < /p >< p >}} Serial.print ("la información de conexión:"); Serial.println(connection_info); int i; para (i = 0; i < separador; i ++) = "" {= "" ip [i] = "connection_info [i];"} = "" int = "" j = "0"; separador ++; = "" para (i = "separador; i < 21" & & = "" j < 5; i ++) = "" Puerto [j] = "connection_info [i];" j ++; = "" serial.println ("=" "tcp =" "toma =" "conexión =" "instrucciones:"); = "" serial.print ("ip: =" ""); = "" serial.println(ip); = "" serial.print ("Puerto: =" "serial.println(port); =" "portnum =" atoi"(puerto); =" "serial.println(portnum); < =" "p =" ">< / separador; i ++) >< /p >< p >} //getconnectInfo < /p >< p > void uploadstatus() {//calling API RESTful para cargar datapoint a MCS en estado informe LED Serial.println ("conexión llamada"); LWiFiClient c2; < /p >< p > mientras (! c2.connect (SITE_URL, 80)) {Serial.println ("volver a conectar al sitio web"); delay(1000);} delay(100); if(digitalRead(13)==1) upload_led = "LED_Display,, 1"; Else 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 ("tipo de contenido: texto/csv"); C2.println ("conexión: cerrar"); C2.println(); C2.println(upload_led); Delay(500); < /p >< p > int errorcount = 0; mientras)! c2.available()) {Serial.print ("esperando respuesta HTTP:"); Serial.println(errorcount); errorcount += 1; Si (errorcount > 10) {c2.stop(); return;} delay(100); } int err = http.skipResponseHeaders(); < /p >< p > int bodyLen = http.contentLength(); Serial.Print ("contenido de longitud es:"); Serial.println(bodyLen); Serial.println(); mientras (c2) {int v = c2.read(); if (v! = -1) {Serial.print(char(v));} else {Serial.println ("no más contenido, desconectar"); c2.stop(); < /p >< p >}}} < /p >< p > void connectTCP() {//establish conexión TCP con el servidor TCP con c.stop() IP y el puerto designado; Serial.println ("conexión a TCP"); Serial.println(IP); Serial.println(portnum); mientras que (0 == c.connect (ip, portnum)) {Serial.println ("volver a conectar a TCP"); delay(1000);} Serial.println ("envío TCP conectar"); c.println(tcpdata); c.println(); Serial.println ("esperando respuesta TCP:");} connectTCP < /p >< p > void heartBeat() {Serial.println ("envío TCP del latido del corazón"); c.println(tcpdata); c.println();} //heartBeat < /p >< p > void loop() //Red led {//Check comando de socket TCP de MCS Server String tcpcmd = ""; mientras que (c.available()) {int v = c.read(); if (v! = -1) {Serial.print((char)v); tcpcmd += (char) v; si (tcpcmd.substring(40).equals(tcpcmd_ledAnger_on)) {digitalWrite (4, alto); digitalWrite (3 ALTO); digitalWrite (2, alto); Serial.Print ("encender LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledAnger_off)) {digitalWrite (4, bajo); digitalWrite (3, bajo); digitalWrite (2, bajo); Serial.Print ("apagar LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledJoy_on)) {digitalWrite (4, alto); digitalWrite (3, alto); digitalWrite (2, alto); digitalWrite (10, alta); digitalWrite (9, alto); digitalWrite (8, alto); digitalWrite (7, alta); digitalWrite (6, alto); digitalWrite (5, alto); Serial.Print ("encender LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledJoy_off)) {digitalWrite (4, bajo); digitalWrite (3, bajo); digitalWrite (2, bajo); digitalWrite (10, bajo); digitalWrite (9, bajo); digitalWrite (8, bajo); digitalWrite (7, bajo); digitalWrite (6, bajo); digitalWrite (5, bajo); Serial.Print ("apagar LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledDisgust_on)) {digitalWrite (10, HIGH); digitalWrite (9, HIGH); digitalWrite (8, alto); Serial.Print ("encender LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledDisgust_off)) {digitalWrite (10, bajo); digitalWrite (9, bajo); digitalWrite (8, bajo); Serial.Print ("apagar LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledFear_on)) {digitalWrite (4, HIGH); digitalWrite (3, alto); digitalWrite (2, alto); digitalWrite (7, alto); digitalWrite (6, alto); digitalWrite (5, alto); Serial.Print ("encender LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledFear_off)) {digitalWrite (4, bajo); digitalWrite (3, bajo); digitalWrite (2, bajo); digitalWrite (7, bajo); digitalWrite (6, bajo); digitalWrite (5, bajo); Serial.Print ("apagar LED"); tcpcmd = ""; } < /p >< p > if(tcpcmd.substring(40).equals(tcpcmd_ledSad_on)) else {digitalWrite (7, alto); digitalWrite (6, alto); digitalWrite (5, alto); Serial.Print ("encender LED"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_ledSad_off)) {digitalWrite (7, bajo); digitalWrite (6, bajo); digitalWrite (5, bajo); Serial.Print ("apagar LED"); tcpcmd = ""; }}} < /P >< p > LDateTime.getRtc (& rtc); Si ((rtc-lrtc) > = por) {heartBeat(); lrtc = rtc;} //Check Informe datapoint estado intervalo LDateTime.getRtc (& rtc1); Si ((rtc1-lrtc1) > = per1) {uploadstatus(); lrtc1 = rtc1;}} < /p >