Estoy usando el compilador mbed de ARM para programar mi STM32 Nucleo. También estoy usando un ESP8266 como mi módulo WiFi.
Mis conexiones son como tales:
- El Rx del ESP8266 está conectado a D8 en el Nucleo.
- La Tx del ESP8266 está conectada a D2 en el Nucleo.
- Gnd del ESP8266 al gnd en el tablero. Todos los otros pines del ESP8266 están conectados a 3.3 V en el Nucleo.
El siguiente es mi código mbed:
#include "mbed.h"
Serial esp(D8, D2);
DigitalOut myled(LED1);
void flush(void) {
while (esp.readable()) {
(void)esp.getc();
}
}
int main() {
esp.baud (115200);
char server[]="GET /update?key=NR************2Z&field1=7";
flush();
esp.printf("AT+RST\r\n");
wait(2);
esp.printf("AT+CWMODE=1\r\n");
wait(3);
esp.printf("AT+CWJAP=\"Harsha\",\"*****\"\r\n");
wait(3);
esp.printf("AT+CIPMUX=1\r\n");
wait(3);
esp.printf("AT+CIPSTART=4,\"TCP\",\"184.106.153.149\",80\r\n");
wait(3);
esp.printf("AT+CIPSEND=4,%d\r\n", sizeof(server)+2);
wait(2);
esp.printf("%s\r\n", server);
wait(3);
esp.printf("AT+CIPCLOSE\r\n");
while(1) {
myled = 1;
wait(0.1);
myled = 0;
wait(0.1);
}
return 0;
}
Puedo conectarme a mi punto de acceso WiFi, lo que significa que no hay ningún problema con la conexión. Pero los datos que paso no se actualizan en Thingspeak en absoluto. También lo he intentado, incluyendo HTTP / 1.0 y HTTP / 1.1 en la cadena del 'servidor', aún nada. ¿Me estoy perdiendo algo?