Notas de aprendizaje de Espressif esp8266 rtos3.0: comparta cómo escribir parámetros externamente en esp8266 C SDK y realice la adquisición dinámica de parámetros en el programa.


  • Esta serie de blogs de aprendizaje está escrita por un personal no oficial con medio corazón , no por una junta de desarrollo. Es solo para intercambio técnico personal y para compartir, no para ningún uso comercial. Si hay algo mal, deje un mensaje y lo cambiaré a tiempo.

Una serie completa de notas sobre la tecnología de desarrollo ESP8266 basada en C SDK

1. NONOS SDK sin desarrollo de sistema operativo

1. Configure un entorno de desarrollo e inicie una impresión de puerto serie "hola mundo". 2. Use el GPIO para comenzar a usar el botón para encender su "primera luz". 3. Utilice el "temporizador de software" para parpadear y encender un LED durante 0,5 segundos. 4. Comprenda PWM y use PWM para controlar el cambio de brillo de un LED más profundamente. 5. El paquete Publicar y Obtener del uso avanzado del SDK original de Espressif solicita a la nube que obtenga la "información del pronóstico del tiempo". 6. Comprenda la configuración de red con un solo clic de SmartConfig y Airkiss, sin necesidad de escribir el nombre y la contraseña de wifi en el firmware. 7. Comprenda el principio del modo de red de distribución de punto de acceso softAP y defina su propio protocolo de modo de red de distribución de punto de acceso en imitación de "Gizwits Cloud". 8. El rol de 8266 que está buscando como comunicación UDP, cliente TCP o servidor está aquí. 9. [Pequeño combate práctico Parte 1] El sistema Windows crea un servidor Mqtt local de 8266 y enciende una luz LED en la LAN. 10. [Little Practical Combat Part 2] El sistema Windows crea un servidor Mqtt local de 8266 y enciende una luz LED en la LAN. 11. ¡Conecte 8266 a Ali Smart, encienda una luz LED y espere el control de voz de Tmall Genie! 12. Aprenda a construir un servidor 8266MQTT en el host de Aliyun con imágenes y textos, y realice el control remoto de un LED en la red móvil. 13. Hagamos una pequeña caja del conjunto completo 8266, el protocolo smartConfig + MQTT puede realizar fácilmente el control remoto de un LED. 14. La postura correcta del aprendizaje del sistema FreeRtos de esp8266 --- construcción y grabación del entorno. 15. El Internet de las cosas de esp8266 es otra corriente clara.El 8266 está conectado al servicio SDS inteligente que no es de Alibaba de la plataforma Alibaba Cloud y enciende una luz LED.














16. Esp8266 se basa en el infrarrojo H1838 trasplantado de Nonos, realiza una red de distribución de control remoto por infrarrojos y controla de forma remota una lámpara. 17. El interruptor de encendido rápido de desarrollo propio esp8266 cinco veces (encendido-apagado es una vez), y el 8266 ingresa al modo de red de distribución de una tecla sin un disparador de botón. 18. esp8266 implementa la actualización remota OTA basada en NONOS y realiza el programa de actualización de firmware de "reparación en caliente" inalámbrica. 19. esp8266 maneja sensores de temperatura y humedad ds18b20, dht11, y recopila sensores de temperatura y humedad en el servidor. 20. Estudio en profundidad del modo esp ahora de esp8266, imitando Gizwits para hacer una pequeña puerta de enlace para realizar la comunicación mutua y el intercambio de datos sin red. 21. Hable brevemente sobre cómo esp8266 realiza la interacción de datos con el front-end con la máxima eficiencia en el caso de la red LAN local. 22. Cómo agregar archivos de biblioteca estática de terceros y cómo personalizar carpetas en el proyecto esp8266, hable sobre esos makeFiles. 23. La programación Espressif esp8266 NONOS SDK 3.0 usa SPI para controlar un tubo digital de ocho dígitos basado en el chip Max7219 para mostrar información de fecha.







2. RTOS SDK con desarrollo de sistema operativo

23. Otra ola de esp8266 se basa en el sistema freeRtos para conectarse a su propio servidor privado para realizar una actualización remota OTA y ponerse en contacto con el conocimiento básico de lwip. .
24. Aprendizaje de infiltración Revise la serie 25q de chip spi externo de esp8266, familiarícese con la distribución de bloques de código 8266 y coloque imágenes u otros materiales con facilidad.
25. Hablemos de la programación de interrupción de comunicación Uart del puerto serie de esp8266 y preparemos los archivos del controlador del puerto serie de la versión NONOS y el sistema RTOS para usted. 26. RTOS analiza el proceso de implementación de MQTT e implementa el trasplante del protocolo MQTT en el sistema en tiempo real esp8266 rtos, que se puede desconectar y volver a conectar. 27. Siga de cerca y use VisualStudio Code para desarrollar la versión esp8266 rtos SDK v3.0, un nuevo marco idf y ahorre memoria para el desarrollo modular. 28. Enseñarle cómo usar fácilmente cJson en Espressif esp8266 para analizar una pieza de datos json y cómo generar una pieza de datos json. 29. Espressif esp8266, que tiene millones de mensajes gratis, utiliza el protocolo MQTT de modo de conexión directa TCP para conectarse a la plataforma IoT de Alibaba Cloud, admite conexión de servidor privado y admite el motor de reglas de Alibaba Cloud. 30. Use el bus IIC para conducir una pantalla OLED de 0,96 pulgadas para mostrar información del pronóstico del tiempo. 31. Cuando esp8266 encuentra Html, cómo controlar el dispositivo con la página web integrada, aclarar el proceso de implementación de la página web integrada y darse cuenta de que el teléfono móvil puede controlar esp8266 sin enrutador.






32. Hablar en detalle sobre la seguridad que brinda el método de cifrado HmacMD5 y practicarlo en el esp8266 para maximizar la seguridad de la información en el proceso de transmisión. 33. ¿Cómo encapsular elegantemente el pensamiento lógico de los registros de nivel inferior de esp8266 como la fábrica original de Espressif y crear su propio archivo de biblioteca estática para uso de terceros? 34. La programación Espressif esp8266 NONOS SDK 3.0 usa SPI para controlar un tubo digital de ocho dígitos basado en el chip Max7219 para mostrar información de fecha. 35. El chip esp8266 de Espressif utiliza la plataforma en la nube de Gizwits para hacer un proyecto de solución general ajustable con bombilla RGB de colores comercializado, que es deslumbrante y noble. 36. Comprenda la estructura del proyecto de esp8266 Rtos 3.0 sdk, ¿cómo aborda esp8266 el proyecto esp-idf y cómo personalizar la compilación del archivo de encabezado? 37. Las funciones periféricas básicas que está buscando están todas aquí, incluido el uso de las interfaces Gpio, Pwm y Uart. 38. Un artículo lo lleva a través de la comprensión y el uso de la tecnología de almacenamiento NVS, cómo usar NVS para guardar números enteros, cadenas, matrices y estructuras. 39. Eche un vistazo al proceso de configuración del dispositivo inteligente de red esp8266 y vincule el dispositivo con la cuenta pública de WeChat, trasplántelo e impleméntelo con éxito en esp8266 rtos3.1. 40. Basado en el marco Espressif idf, un marco Mqtt que es súper estable, desconectado y reconectado, ¡y las fugas de memoria pueden resolverse! ¡Admite esp8266 y esp32! 43. El módulo esp8266-12 se basa en la función ota de la versión rtos3.1 para actualizar de forma remota el firmware por aire, ¡y la resolución de nombre de dominio dns se agrega sobre la base del sitio web oficial! 43. Aquí estoy de nuevo, basado en la versión rtos3.0 SDK programando el controlador SPI ws2812b luces coloridas, ¡todos los códigos son de código abierto y están dedicados a usted! 43. Basado en la versión rtos3.0, el módulo esp8266-12 escanea el área circundante para obtener la información de los enrutadores de punto de acceso Wi-Fi disponibles en las cercanías, que también es adecuado para esp32.











43. Organice y comparta los controladores comunes de la versión esp8266 rtos3.0 que uso a menudo en proyectos, pulsación larga y corta de las teclas de botón, atenuación suave PWM, etc.
43. Con un Esp8285 incorporado de solo 1M, cómo resolver el problema OTA más difícil y ahorrar en gran medida los costos de recursos para desarrollar productos.
43. Analice en detalle los datos impresos por la información de encendido de Esp8266, cómo asegurarse de que la comunicación serial no imprima caracteres ilegibles después del encendido.
43. Alguna experiencia de desarrollo sobre cómo realizar el intercambio de datos entre la red de área local y el terminal de control sin una red externa.
43. Bendiciones de los programadores 1024 retrasados, código abierto compartiendo un proyecto que impulsa ds18b20 para obtener temperatura.
43. El aliyun sdk está directamente conectado a la plataforma Aliyun Internet of Things para realizar la función de Tmall Genie para encontrar compañeros de equipo y control de voz. 43. Cómo leer los datos del archivo csv desde el exterior al comienzo del plan de producción en masa del producto esp, como leer el archivo externo Alibaba Cloud triplet del código. 43. Experiencia en la creación y compilación del entorno más reciente de ESP8266_RTOS_SDK 3.0 en Linux. 43. ¿Cómo volver a desarrollar el módulo Anxinke ESP-01S con solo 1M de flash? Cómo actualizar de forma remota su firmware a través de OTA 44, comparta el paquete que realiza el ajuste suave de la temperatura de color de la luz fría y cálida en el SDK de esp8266 C e intégrelo fácilmente en su proyecto. 45. Cómo usar CMake para compilar el proyecto ESP8266 en Windows, abandonar el método de desarrollo tradicional y mejorar la velocidad de compilación. 46. ​​Comparta la realización del controlador de pantalla IIC Driving OLED 1306 en esp8266 C SDK. 47. Comparta la unidad para obtener el sensor de temperatura y humedad SHT20 implementando I2C en el SDK esp8266 C. 48. Cómo desarrollar de forma secundaria el firmware del comando AT para realizar la conexión del comando AT a la plataforma Amazon AWS IoT.








49. Comparta cómo escribir parámetros en el SDK de esp8266 C externamente y realice la adquisición dinámica de parámetros en el programa.

-------- 学习笔记持续更新,欢迎关注我…


  • 很多人怎么联系我一起学习进步,下面打个小小公告和干货无偿分享:

玩转esp8266带你飞、加群QQ群,提高门槛,不喜的朋友勿喷勿加:434878850
esp8266源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32


前言

在一些平时量产方案中,我们经常不会把一些连接服务器等可变参数固定在程序里面,像阿里三元组这些配置信息,因此,我们可以考虑到通过外部写入某些参数,比如文本、网页、图片等。

而今天,给大家带来的是第一种方案,使用比较传统的方法实现这个想法。后面,我使用NVS功能教大家使用一下。

由于代码简单,文中已放置了全部代码,适用于 ESP全系列模组。

一、演示

烧录一个外置的文本,然后程序代码内读取这个外置的文本的内容;您先跟着我步骤去做,后面我再解释下原理。

1、新建一个 txt 文本 aithinker.txt , 其内容如下,注意格式,中间以空格隔开,用大括号括起来

[xuhongv 18 guangdong]

2、然后烧录到指定的位置 0x1F4000 ,我这里使用 esp-tools命令,或者你也可以使用 ESPDownTools 实现:

D:\Python\python  D:\esptool\esptool.py --port COM49  write_flash  0x1F4000 aithinker.txt

3、然后,通过代码读取出来:

    char user_name[30] = {0};
    char key[30] = {0};
    char passwd[30] = {0};
    char *get_triad = (char *)calloc(1, 256);
    char *start_p = NULL;
    char *offset = NULL;
    char *end_p = NULL;

    //500*4096 相当于  0x1F4000 ,也就是 0x1F4 * 4096
    spi_flash_read(500 * 4096, (void *)get_triad, 256);
    ESP_LOGE(TAG, "get_triad: %s", get_triad);
    do
    {
        start_p = strchr(get_triad, '[');
        if (NULL == start_p)
        {
            ESP_LOGE(TAG, "line:%d triad [ check fail", __LINE__);
            break;
        }
        end_p = strrchr(get_triad, ']');
        if (NULL == end_p)
        {
            ESP_LOGE(TAG, "line:%d triad ] check fail", __LINE__);
            break;
        }
        start_p++;
        offset = strchr(start_p, ' ');
        if (NULL != offset)
        {
            snprintf(user_name, offset - start_p + 1, "%s", start_p);
            start_p = ++offset;
            offset = strchr(start_p, ' ');
            if (NULL != offset)
            {
                snprintf(key, offset - start_p + 1, "%s", start_p);
                offset++;
                snprintf(passwd, end_p - offset + 1, "%s", offset);
                break;
            }
        }
    } while (0);

    free(get_triad);

    printf("get Content:  user_name=%.*s\r\n", strlen(user_name), (char *)user_name);
    printf("get Content:  key=%.*s\r\n", strlen(key), (char *)key);
    printf("get Content:  passwd=%.*s\r\n", strlen(passwd), (char *)passwd);

4、编译上面代码,串口打印为:
在这里插入图片描述

二、原理或疑问

  • 1、为什么选择地址 0x1F4000

答:我这里就烧录到0x1F4000,计算之后是哪个扇区呢?大家可以算下,0x1F4000换算十进制就是‭2048000‬,一个扇区是4096 bytes,而‭2048000 / 4096 = 500 ‬ ,也就是第 500 个扇区了!第500个扇区是非安全区域存储地址,对于4M flash安全的起始扇区是 508 即 0x1FC,计算方法就是2M以外的部分,也就是(1024+1024+4)/4096=508 ,其中 4 是指reserved 部分,详情自己阅读官方的代码块分布!所以,大家的项目中请到此外的区域读写,当然,你也可以按照分区表来实现你的安全区域,本硬件博文只是示范,大家修改下即可!

  • 2、为什么不选择 NVS 来实现?
  • 答:下篇就介绍用这个实现,还可以加密解密数据。

另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

  • 玩转esp8266带你飞、加群QQ群,不喜的朋友勿喷勿加:434878850
  • 个人邮箱:[email protected] 24小时在线,有发必回复!
  • esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
  • 关注下面微信公众号二维码,干货多多,第一时间推送!

在这里插入图片描述

Supongo que te gusta

Origin blog.csdn.net/xh870189248/article/details/121142675
Recomendado
Clasificación