Espressif esp8266 apprenant les notes rtos3.0 : partagez comment écrire des paramètres en externe dans esp8266 C SDK, et réalisez l'acquisition dynamique des paramètres dans le programme.


  • Cette série d'apprentissage de blog est écrite par un personnel non officiel avec un demi- cœur , pas un conseil de développement. Il s'agit uniquement d'échanges et de partages techniques personnels, et non d'un usage commercial. S'il y a quelque chose qui ne va pas, veuillez laisser un message et je le changerai à temps.

Une série complète de notes sur la technologie de développement ESP8266 basée sur C SDK

1. NONOS SDK sans développement de système d'exploitation

1. Configurez un environnement de développement et démarrez une impression de port série "hello world". 2. Utilisez le GPIO pour commencer à utiliser le bouton pour allumer votre "première lumière". 3. Utilisez la "minuterie logicielle" pour faire clignoter et allumer une LED pendant 0,5 seconde. 4. Comprendre PWM et utiliser PWM pour contrôler plus profondément le changement de luminosité d'une LED. 5. Le package Post and Get de l'utilisation avancée du SDK original d'Espressif demande au cloud d'obtenir les "informations de prévision météo". 6. Comprendre la configuration réseau en un clic SmartConfig et Airkiss, pas besoin d'écrire le nom et le mot de passe wifi dans le firmware. 7. Comprenez le principe du mode réseau de distribution de points d'accès softAP et définissez votre propre protocole de mode réseau de distribution de points d'accès à l'imitation de "Gizwits Cloud". 8. Le rôle de 8266 que vous recherchez en tant que communication client UDP, TCP ou serveur est ici. 9. [Small Practical Combat Part 1] Le système Windows construit un serveur Mqtt local de 8266 et allume une lumière LED dans le LAN. 10. [Little Practical Combat Part 2] Le système Windows construit un serveur Mqtt local de 8266 et allume une lumière LED dans le LAN. 11. Connectez 8266 à Ali Smart, allumez une lumière LED et attendez avec impatience le contrôle vocal de Tmall Genie ! 12. Apprenez à construire un serveur 8266MQTT sur l'hôte d'Aliyun avec des images et des textes, et réalisez le contrôle à distance d'une LED sur le réseau mobile. 13. Faisons un petit boîtier de l'ensemble complet 8266, le protocole smartConfig + MQTT peut facilement réaliser le contrôle à distance d'une LED. 14. La posture correcte de l'apprentissage du système FreeRtos d'esp8266 --- construction et gravure de l'environnement. 15. L'Internet des objets de l'esp8266 est un autre flux clair.Le 8266 est connecté au service SDS intelligent non-Alibaba de la plate-forme Alibaba Cloud et allume une lumière LED.














16. Esp8266 est basé sur l'infrarouge H1838 transplanté de Nonos, réalise un réseau de distribution de télécommande infrarouge et contrôle à distance une lampe. 17. L'esp8266 auto-développé interrupteur de mise sous tension rapide cinq fois (on-off est une fois), et le 8266 entre en mode réseau de distribution à une touche sans déclencheur de bouton. 18. esp8266 implémente la mise à niveau à distance OTA basée sur NONOS et réalise le programme de mise à niveau du micrologiciel de "réparation à chaud" sans fil. 19. esp8266 pilote les capteurs de température et d'humidité ds18b20, dht11 et collecte les capteurs de température et d'humidité sur le serveur. 20. Étude approfondie du mode esp now d'esp8266, imitant Gizwits pour créer une petite passerelle permettant de réaliser une communication mutuelle et un échange de données sans réseau. 21. Expliquez brièvement comment esp8266 réalise l'interaction des données avec le frontal avec une efficacité maximale dans le cas d'un réseau LAN local. 22. Comment ajouter des fichiers de bibliothèque statiques tiers et comment personnaliser les dossiers dans le projet esp8266, parlez de ces makeFiles. 23. Espressif esp8266 La programmation NONOS SDK 3.0 utilise SPI pour piloter un tube numérique à huit chiffres basé sur la puce Max7219 pour afficher les informations de date.







2. SDK RTOS avec développement du système d'exploitation

23. Une autre vague d'esp8266 est basée sur le système freeRtos pour se connecter à son propre serveur privé afin de réaliser la mise à niveau à distance OTA et d'entrer en contact avec les connaissances de base de lwip. .
24. Apprentissage par infiltration Passez en revue la série de puces spi externes 25q d'esp8266, familiarisez-vous avec la distribution des blocs de code 8266 et placez facilement des images ou d'autres matériaux.
25. Parlons de la programmation de l'interruption de communication Uart du port série de l'esp8266 et préparons pour vous les fichiers du pilote du port série de la version NONOS et du système RTOS. 26. RTOS analyse le processus de mise en œuvre de MQTT et implémente la transplantation du protocole MQTT dans le système en temps réel esp8266 rtos, qui peut être déconnecté et reconnecté. 27. Suivez attentivement et utilisez VisualStudio Code pour développer la version v3.0 du SDK esp8266 rtos, un nouveau framework idf et économiser de la mémoire pour le développement modulaire. 28. Vous apprendre à utiliser facilement cJson sur Espressif esp8266 pour analyser un morceau de données json et comment générer un morceau de données json. 29. Espressif esp8266, qui a des millions de messages gratuits, utilise le protocole TCP MQTT en mode de connexion directe pour se connecter à la plate-forme Alibaba Cloud IoT, prend en charge la connexion au serveur privé et prend en charge le moteur de règles Alibaba Cloud. 30. Utilisez le bus IIC pour piloter un écran OLED de 0,96 pouce afin d'afficher les informations sur les prévisions météorologiques. 31. Lorsque esp8266 rencontre Html, comment contrôler l'appareil avec une page Web intégrée, clarifier le processus de mise en œuvre de la page Web intégrée et réaliser que le téléphone mobile peut contrôler esp8266 sans routeur.






32. Parlez en détail de la sécurité apportée par la méthode de cryptage HmacMD5 et pratiquez-la sur l'esp8266 pour maximiser la sécurité des informations dans le processus de transmission. 33. Comment encapsuler avec élégance la pensée logique des registres de bas niveau esp8266 comme l'usine d'origine d'Espressif, et créer votre propre fichier de bibliothèque statique pour une utilisation par des tiers ? 34. Espressif esp8266 La programmation NONOS SDK 3.0 utilise SPI pour piloter un tube numérique à huit chiffres basé sur la puce Max7219 pour afficher les informations de date. 35. La puce esp8266 d'Espressif utilise la plate-forme cloud Gizwits pour créer un projet de solution globale réglable d'ampoule RVB colorée commercialisée, qui est éblouissante et noble. 36. Comprendre la structure de projet du sdk esp8266 Rtos 3.0, comment esp8266 aborde-t-il le projet esp-idf et comment personnaliser la compilation du fichier d'en-tête ? 37. Les fonctions périphériques de base que vous recherchez sont toutes ici, y compris l'utilisation des interfaces Gpio, Pwm et Uart. 38. Un article vous explique comment comprendre et utiliser la technologie de stockage NVS, comment utiliser NVS pour enregistrer des entiers, des chaînes, des tableaux et des structures. 39. Jetez un œil au processus de configuration de l'appareil intelligent réseau esp8266 et de liaison de l'appareil avec le compte public WeChat, transplantez-le et implémentez-le avec succès dans esp8266 rtos3.1. 40. Basé sur le framework Espressif idf, un framework Mqtt super stable, déconnecté et reconnecté, et les fuites de mémoire peuvent être résolues ! Prend en charge esp8266 et esp32 ! 43. Le module esp8266-12 est basé sur la fonction ota de la version rtos3.1 pour mettre à jour à distance le micrologiciel par liaison radio, et la résolution du nom de domaine DNS est ajoutée sur la base du site officiel ! 43. Me revoici, basé sur la version rtos3.0 du pilote SPI de programmation ws2812b lumières colorées, tous les codes sont open source et dédiés à vous ! 43. Basé sur la version rtos3.0, le module esp8266-12 analyse la zone environnante pour obtenir les informations des routeurs hotspot Wi-Fi disponibles à proximité, ce qui convient également à esp32.











43. Organisez et partagez les pilotes communs de la version esp8266 rtos3.0 que j'utilise souvent dans les projets, appui long et court sur les touches Bouton, gradation fluide PWM, etc.
43. Avec un Esp8285 intégré de seulement 1M, comment résoudre le problème OTA le plus difficile et économiser considérablement les coûts de ressources pour développer des produits.
43. Analysez en détail les données imprimées par les informations de mise sous tension de Esp8266, comment vous assurer que la communication série n'imprime pas de caractères brouillés après la mise sous tension.
43. Une certaine expérience de développement sur la façon de réaliser l'échange de données entre le réseau local et le terminal de contrôle sans réseau externe.
43. Bénédictions des 1024 programmeurs en retard, open source partageant un projet qui pilote ds18b20 pour obtenir la température.
43. Le sdk aliyun est directement connecté à la plate-forme Aliyun Internet of Things pour réaliser la fonction de Tmall Genie pour trouver des coéquipiers et le contrôle vocal. 43. Comment lire les données du fichier csv de l'extérieur au début du plan de production de masse du produit esp, comme la lecture du fichier externe Alibaba Cloud triplet à partir du code. 43. Expérience de la création et de la compilation du dernier environnement ESP8266_RTOS_SDK 3.0 sous Linux. 43. Comment redévelopper le module Anxinke ESP-01S avec seulement 1M de flash ? Comment mettre à jour à distance son firmware via OTA 44, partager le package qui réalise le réglage en douceur de la température de couleur de la lumière froide et chaude dans le SDK esp8266 C, et l'intégrer facilement dans votre projet. 45. Comment utiliser CMake pour compiler le projet ESP8266 dans Windows, abandonner la méthode de développement traditionnelle et améliorer la vitesse de compilation. 46. ​​Partagez la réalisation du pilote d'affichage IIC pilotant OLED 1306 dans le SDK esp8266 C. 47. Partagez le lecteur pour obtenir le capteur de température et d'humidité SHT20 en implémentant I2C dans le SDK esp8266 C. 48. Comment développer secondairement le micrologiciel de commande AT pour réaliser la connexion de commande AT à la plate-forme Amazon AWS IoT.








49. Partagez comment écrire des paramètres dans le SDK esp8266 C en externe et réalisez une acquisition dynamique des paramètres dans le programme.

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


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

玩转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
  • 关注下面微信公众号二维码,干货多多,第一时间推送!

在这里插入图片描述

Je suppose que tu aimes

Origine blog.csdn.net/xh870189248/article/details/121142675
conseillé
Classement