当前位置:   article > 正文

基于ESP32开发板用米思齐应用WIFI(重点/高级)+EEPROM+MQTT+OTA升级相关功能的应用示例_如何让自己的开发板支持米思齐

如何让自己的开发板支持米思齐

我是一个业余的电子爱好者,会用易语言、e4a等中文的编程,最近玩了几种单片机开发板,使用米思齐进行编程,发现米思齐应对简单的编程还行,功能复杂一些编程就很难使用了,特别是像我这样C语言基础差的朋友,所在在这里把我学习的案例和分析笔记共享给新手朋友,我分析的不一定完全对,但是相关的功能都测试OK了,新手朋友们可以参考学习一下

功能讲解:

  1. WIFI : 重点是如果使用ESP32自建一个热点,然后使用手机将要连接网络SSID和PSK发送给ESP32,然后ESP32调用得到的SSID和PSK后连接指定的WIFI网络
  2. EEPROM : 如何将得到的SSID和PSK存入rom中,断电不丢失
  3. MQTT+OTA : 使用OTA进行远程的固件升级

笔记:
1.eeprom使用前必须先申请一个内存区域
2.地址的变量一定要是整数型,保存的内容可以是任意型,但是一定要让写和读的变量类型一致,否则读取的值不正确
3.写入操作后一定要执行写入覆盖的操作,写入地址按字符长度需要进行预留偏移
4.每个eeprom操作都需要加一个延时
5.初始化结尾处添加一个延时,有助于解决引脚电平值刚启动时的不稳定
6.WIFI的名称和密码对应的变量类型必须设置为char或者char*

字符串类型转换到char类型的方法(c+语言)
char WIFI[20]; //先声明变量类型;[20]是小标,必须
strcpy(WIFI,字符串.c_str()); //先使用c_str()函数在用strcpy赋值给WIFI
WIFI名称使用变量需要做转换的原因是WIFI.h的功能是使用C语言编写的,其不支持C+语言中新增的字符串变量,故而需要转换
本次案例未采用c_str的方案,而是用字符串变量保存到eeprom中后再用char变量读取

在使用WIFI初始化的模块中,因为代码在变量赋值的前面故而无法编译,可以复制相应的代码放到指定的位置

使用方案:
1.先建一个AP开启udp
2.手机连接上AP,然后使用udp调试工具发送带SSIID和PSK的字符串给ESP32
3.ESP32收到数据后进行分解分别存储SSID和PSK到指定的eeprom地址
4.重启ESP32,重启的过程中会先读取eeprom地址中的SSID和PSK,然后进行WIFI连接
在这里插入图片描述
在这里插入图片描述


#include <EEPROM.h>
#include <TimeLib.h>
#include <NtpClientLib.h>
#include <WiFi.h>
#include <WiFiUDP.h>
#include <WiFi.h>
#include <WiFi.h>
#include <PubSubClient.h>
WiFiClient espClient;
P
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/512011
推荐阅读
相关标签
  

闽ICP备14008679号