Espressif esp8266 aprendendo notas rtos3.0: compartilhe como escrever parâmetros externamente no esp8266 C SDK e realize a aquisição dinâmica de parâmetros no programa.


  • Esta série de aprendizado de blog é escrita por uma equipe não oficial com meio coração , não uma placa de desenvolvimento. É apenas para troca e compartilhamento técnico pessoal, não para qualquer uso comercial. Se houver algo errado, por favor deixe uma mensagem e eu vou mudar a tempo.

Uma série completa de notas sobre a tecnologia de desenvolvimento ESP8266 baseada em C SDK

1. NONOS SDK sem desenvolvimento de sistema operacional

1. Configure um ambiente de desenvolvimento e inicie uma impressão de porta serial "hello world". 2. Use o GPIO para começar a usar o botão para acender sua "primeira luz". 3. Use o "temporizador de software" para piscar e acender um LED por 0,5 segundos. 4. Entenda o PWM e use o PWM para controlar a mudança de brilho de um LED mais profundamente. 5. O pacote Post and Get do uso avançado do Espressif SDK original solicita a nuvem para obter as "informações de previsão do tempo". 6. Entenda a configuração de rede com um clique do SmartConfig e Airkiss, não há necessidade de escrever o nome e a senha do wifi no firmware. 7. Entenda o princípio do modo de rede de distribuição de ponto de acesso softAP e defina seu próprio protocolo de modo de rede de distribuição de ponto de acesso imitando "Gizwits Cloud". 8. A função do 8266 que você está procurando como UDP, cliente TCP ou comunicação do servidor está aqui. 9. [Pequeno Combate Prático Parte 1] O sistema Windows constrói um servidor Mqtt local de 8266 e acende uma luz LED na LAN. 10. [Pequeno Combate Prático Parte 2] O sistema Windows constrói um servidor Mqtt local de 8266 e acende uma luz LED na LAN. 11. Conecte 8266 ao Ali Smart, acenda uma luz LED e aguarde o controle de voz do Tmall Genie! 12. Aprenda a construir um servidor 8266MQTT no host de Aliyun com imagens e textos e realize o controle remoto de um LED na rede móvel. 13. Vamos fazer um pequeno caso de 8266 conjunto completo, o protocolo smartConfig + MQTT pode facilmente realizar o controle remoto de um LED. 14. A postura correta do aprendizado do sistema FreeRtos do esp8266 --- construção e queima do ambiente. 15. A Internet das Coisas do esp8266 é outro fluxo claro. O 8266 está conectado ao serviço SDS inteligente não Alibaba da plataforma Alibaba Cloud e acende uma luz LED.














16. O Esp8266 é baseado no infravermelho transplantado Nonos H1838, realiza uma rede de distribuição de controle remoto infravermelho e controla remotamente uma lâmpada. 17. O esp8266 auto-desenvolvido interruptor de ligar rápido cinco vezes (ligar-desligar é uma vez), e o 8266 entra no modo de rede de distribuição de uma chave sem um gatilho de botão. 18. O esp8266 implementa a atualização remota OTA com base no NONOS e realiza o programa de firmware de atualização sem fio "hot repair". 19. esp8266 conduz sensores de temperatura e umidade ds18b20, dht11 e coleta sensores de temperatura e umidade para o servidor. 20. Estudo aprofundado do modo esp now do esp8266, imitando Gizwits para fazer um pequeno gateway para realizar comunicação mútua e troca de dados sem rede. 21. Fale brevemente sobre como o esp8266 realiza a interação de dados com o front-end com eficiência máxima no caso de rede LAN local. 22. Como adicionar arquivos de biblioteca estática de terceiros e como personalizar pastas no projeto esp8266, fale sobre esses makeFiles. 23. A programação Espressif esp8266 NONOS SDK 3.0 usa SPI para conduzir um tubo digital de oito dígitos baseado no chip Max7219 para exibir informações de data.







2. RTOS SDK com desenvolvimento de sistema operacional

23. Outra onda do esp8266 é baseada no sistema freeRtos para se conectar ao seu próprio servidor privado para realizar a atualização remota OTA e entrar em contato com o conhecimento básico do lwip. .
24. Aprendizagem de infiltração Revise o chip externo spi 25q série de esp8266, familiarize-se com a distribuição de 8266 blocos de código nele e coloque fotos ou outros materiais com facilidade.
25. Vamos falar sobre a programação de interrupção de comunicação Uart da porta serial do esp8266 e preparar os arquivos do driver da porta serial da versão NONOS e do sistema RTOS para você. 26. O RTOS analisa o processo de implementação do MQTT e implementa o transplante do protocolo MQTT no sistema esp8266 rtos em tempo real, que pode ser desconectado e reconectado. 27. Acompanhe de perto e use o VisualStudio Code para desenvolver a versão esp8266 rtos SDK v3.0, uma nova estrutura idf e economize memória para desenvolvimento modular. 28. Ensine como usar cJson facilmente no Espressif esp8266 para analisar um pedaço de dados json e como gerar um pedaço de dados json. 29. Espressif esp8266, que tem milhões de mensagens de graça, usa o protocolo MQTT do modo de conexão direta TCP para se conectar à plataforma Alibaba Cloud IoT, suporta conexão de servidor privado e suporta o mecanismo de regra Alibaba Cloud. 30. Use o barramento IIC para conduzir um display OLED de 0,96 polegadas para exibir informações de previsão do tempo. 31. Quando o esp8266 encontrar Html, como controlar o dispositivo com a página da Web integrada, esclarecer o processo de implementação da página da Web integrada e perceber que o celular pode controlar o esp8266 sem roteador.






32. Fale detalhadamente sobre a segurança trazida pelo método de criptografia HmacMD5 e pratique-o no esp8266 para maximizar a segurança das informações no processo de transmissão. 33. Como encapsular elegantemente o pensamento lógico dos registradores de nível inferior do esp8266 como a fábrica original do Espressif e criar seu próprio arquivo de biblioteca estática para uso de terceiros? 34. A programação Espressif esp8266 NONOS SDK 3.0 usa SPI para conduzir um tubo digital de oito dígitos baseado no chip Max7219 para exibir informações de data. 35. O chip esp8266 da Espressif usa a plataforma de nuvem Gizwits para fazer um projeto de solução geral ajustável de lâmpada RGB colorida comercializada, que é deslumbrante e nobre. 36. Entenda a estrutura do projeto do esp8266 Rtos 3.0 SDK, como o esp8266 aborda o projeto esp-idf e como personalizar a compilação do arquivo de cabeçalho? 37. As funções periféricas básicas que você procura estão todas aqui, incluindo o uso de interfaces Gpio, Pwm e Uart. 38. Um artigo leva você ao entendimento e uso da tecnologia de armazenamento NVS, como usar o NVS para salvar números inteiros, strings, arrays e estruturas. 39. Dê uma olhada no processo de configuração do dispositivo inteligente de rede esp8266 e vinculando o dispositivo com a conta pública WeChat, transplante e implemente-o com sucesso no esp8266 rtos3.1. 40. Baseado no framework Espressif idf, um framework Mqtt que é super estável, desconectado e reconectado, e vazamentos de memória podem ser resolvidos! Suporte esp8266 e esp32! 43. O módulo esp8266-12 é baseado na função ota da versão rtos3.1 para atualizar remotamente o firmware pelo ar, e a resolução do nome de domínio dns é adicionada com base no site oficial! 43. Aqui estou eu de novo, com base na versão rtos3.0 SDK de programação SPI driver ws2812b luzes coloridas, todos os códigos são de código aberto e dedicados a você! 43. Com base na versão rtos3.0, o módulo esp8266-12 verifica a área circundante para obter as informações dos roteadores de ponto de acesso Wi-Fi disponíveis nas proximidades, que também são adequados para esp32.











43. Organize e compartilhe os drivers comuns da versão esp8266 rtos3.0 que costumo usar em projetos, pressionamento longo e curto de teclas de botão, escurecimento suave de PWM, etc.
43. Com um Esp8285 embutido de apenas 1M, como resolver o problema OTA mais difícil e economizar muito os custos de recursos para desenvolver produtos.
43. Analise detalhadamente os dados impressos pelas informações de inicialização do Esp8266, como garantir que a comunicação serial não imprima caracteres ilegíveis após a inicialização.
43. Alguma experiência de desenvolvimento sobre como realizar a troca de dados entre a rede local e o terminal de controle sem rede externa.
43. Bênçãos dos atrasados ​​1024 programadores, código aberto compartilhando um projeto que impulsiona ds18b20 para obter temperatura.
43. O aliyun sdk está diretamente conectado à plataforma Aliyun Internet of Things para realizar a função do Tmall Genie para encontrar companheiros de equipe e controle de voz. 43. Como ler os dados do arquivo csv de fora no início do plano de produção em massa do produto esp, como ler o arquivo externo Alibaba Cloud triplet do código. 43. Experiência em construir e compilar o ambiente mais recente do ESP8266_RTOS_SDK 3.0 no Linux. 43. Como desenvolver novamente o módulo Anxinke ESP-01S com apenas 1M de flash? Como atualizar remotamente seu firmware através do OTA 44, compartilhar o pacote que realiza o ajuste suave da temperatura de cor da luz fria e quente no esp8266 C SDK e integrá-lo facilmente ao seu projeto. 45. Como usar o CMake para compilar o projeto ESP8266 no windows, abandonar o método tradicional de desenvolvimento e melhorar a velocidade de compilação. 46. ​​​​Compartilhe a realização do driver de exibição OLED 1306 de condução IIC no esp8266 C SDK. 47. Compartilhe a unidade para obter o sensor SHT20 de temperatura e umidade implementando I2C no esp8266 C SDK. 48. Como desenvolver firmware de comando AT secundário para realizar a conexão de comando AT com a plataforma Amazon AWS IoT.








49. Compartilhe como escrever parâmetros no esp8266 C SDK externamente e realize a aquisição dinâmica de parâmetros no 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
  • 关注下面微信公众号二维码,干货多多,第一时间推送!

在这里插入图片描述

Acho que você gosta

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