Buenas!!!
Son nuevo en el foro y disculpas si hay algún tema abierto sobre esto y no lo pude encontrar. Al asunto!!!!
Tengo conectado un BMP280 tipo Adafruit con un Clon Chino de Wemos D1 mini pro.
Cuando utilizo el sketch de ejemplo para testear, lo detecta perfectamente en la dir 0x76 (con esto descarto error de cableado) pero al subirle cualquier otro para tomar los datos y presentarlo por la consola o enviarlos a internet (ThingSpeak), salta el WDT por soft con el vuelco en Stack. Antes de postear la info... será posible que no tolere la capacidad de mem para el bloque de la pila?
Sketch:
/**********************************************
* Catalin Batrinu bcatalin@gmail.com
* Read temperature and pressure from BMP280
* and send it to thingspeaks.com
**********************************************/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <ESP8266WiFi.h>
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10
Adafruit_BMP280 bme; // I2C
// replace with your channel’s thingspeak API key,
String apiKey = "xxxxxxxxxxxxxxxxx";
const char* ssid = "Invitados";
const char* password = "";
const char* server = "api.thingspeak.com";
WiFiClient client;
/**************************
* S E T U P
**************************/
void setup() {
Serial.begin(9600);
Serial.println(F("BMP280 test"));
if (!bme.begin()) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
WiFi.begin(ssid, password);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
/**************************
* L O O P
**************************/
void loop() {
Serial.print("T=");
Serial.print(bme.readTemperature());
Serial.print(" *C");
Serial.print(" P=");
Serial.print(bme.readPressure());
Serial.print(" Pa");
//Serial.print(" A= ");
//Serial.print(bme.readAltitude(1013.25)); // this should be adjusted to your local forcase
//Serial.println(" m");
if (client.connect(server,80)) // "184.106.153.149" or api.thingspeak.com
{
String postStr = apiKey;
postStr +="&field1=";
postStr += String(bme.readTemperature());
postStr +="&field2=";
postStr += String(bme.readPressure());
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
}
client.stop();
//every 20 sec
delay(20000);
}
Info de compilación:
. Variables and constants in RAM (global, static), used 29164 / 80192 bytes (36%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 1516 initialized variables
╠══ RODATA 1248 constants
╚══ BSS 26400 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 61059 / 65536 bytes (93%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 28291 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 255904 / 1048576 bytes (24%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 255904 code in flash
Vuelco de Consola:
--------------- CUT HERE FOR EXCEPTION DECODER ---------------
Soft WDT reset
Exception (4):
epc1=0x4020108c epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000
stack>>>
ctx: cont
sp: 3ffffe40 end: 3fffffd0 offset: 0160
3fffffa0: feefeffe feefeffe feefeffe 3ffee8bc
3fffffb0: 3fffdad0 00000000 3ffee890 40204fa0
3fffffc0: feefeffe feefeffe 3fffdab0 40100f21
<<<stack<<<
--------------- CUT HERE FOR EXCEPTION DECODER ---------------
z9▒▒▒H▒BMP280 test ▒ P9▒
Could not find a valid BMP280 sensor, check wiring!
Decodificación por la herramienta ESP Exception Decoder:
Exception 4: Level1Interrupt: Level-1 interrupt as indicated by set level-1 bits in the INTERRUPT register PC: 0x4020108c EXCVADDR: 0x00000000 Decoding stack results 0x40204fa0: loop_wrapper() at C:\Users\dinanno.pablo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266*core_esp8266_main.cpp* line 255
Aclaración:
Para uso del ESP Exception decoder, tuve que hacer un downgrade a la versión IDE 1.8.19 desde la 2.2.1 pero el sketch posteado se corrió bajo ambas y con el mismo resultado.
Bueno, creo que eso es todo y reitero las disculpas por si no estoy posteando la información correctamente.
Saludos y mil gracias por la ayuda
Pablo