[DIY] Sensor IoT temperatura y humedad [1]: ESP8266 no acepta nvs-flash.h

[DIY] Sensor IoT temperatura y humedad [1]: ESP8266 no acepta nvs-flash.h

Lo que parecía un inicio de proyecto sencillo y una prueba de concepto de unas pocas horas, ya que hay miles de proyectos que tiene estos dispositivos, el DHT22 (sensor de temperatura y humedad) y el ESP8266. Se ha acabado convirtiendo en una pesadilla.

ComponenteCantidad
ESP82661
DHT11/DHT221

Iniciamos un proyecto en PlatformIO con la siguiente configuración:

[env:esp12e]
platform = espressif8266
board = esp12e
framework = esp8266-rtos-sdk

Hasta aquí todo correcto. Es la configuración correcta para esta placa.

El siguiente paso es crear la configuración y conexión al Wi-Fi, siguiendo el ejemplo de getting_started de ESP32. Pero aquí llega el problema.

Cuando incluimos la librería de nvs ha llegado mi pesadilla. Se acabó seguir el camino de todos los tutoriales huyendo de usar Arduino e ir con C.

#include nvs_flash.h

Esta linea se marca como errónea en el IDE y muestra el siguiente mensaje de error:

#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit. C/C++(1696)

cannot open source file «nvs_flash.h»C/C++(1696)

Después de varías búsquedas por internet he encontrado el problema, que no la solución. Y se debe a que el framework esp8266-rtos-sdk y la plataforma esp8266 no incluyen la API de NVS y NVS_flash.

Muchos pensarán que la IA lo solventaría, y que daría menos dolores de cabeza. Pero no ha habido suerte. Como el 99% del código para este módulo de internet está con Arduino las soluciones que lanza no es con C, y las que hay en espressif usan otras placas.

Solo es cosa de seguir buscando e insistiendo con las palabras adecuadas.

Ha llegado el momento de hacer cosas. ¡Manos a la obra!