ESP32 S3开发小结
小结
在历经状态机设计,爆栈,中文字体缺失,URL编码问题,C++野指针,页面竞争,任务假死,二维码无法扫描等亿系列问题后,终于弄好了。
目标
采用OAuth2的设备码授权方式,设备请求用户代码并向用户展示,由用户在自己的设备上进行授权,授权完成后ESP32拿到令牌,然后对用户资源进行访问。
已实现功能
系统
采用FreeRTOS任务模式,实现多任务并发,结合排他锁解决并发竟态问题。
WIFI
支持断线重连,当出现断线时自动切换任务。
UI
支持切换不同页面,为不同功能页提供显示功能。
OAuth
支持自动轮询授权情况,并支持当授权链接失效时自动重新获取以及生成二维码。
不足
感觉还不是最佳实践,系统健壮性不高,无法支撑复杂功能(未验证)
屏幕还是太小了,128*64的分辨率一个正常包含链接的二维码都塞不下去,目前只能用二维码展示用户授权所需的用户代码,无法展示完整授权链接,可能需要制作一个专用APP用于扫码来拼接授权链接并在用户端调起授权。
下一步方向
寻找最佳实践的设计,增加系统健壮性,目前状态机设计还有提升空间
支持复杂的交互操作,支持16键输入控制系统以及页面,实现菜单选择等
接入NFC控件,便于用户进行碰一碰授权操作
接入蓝牙通信,动态控制设备连接附近WIFI(可能需要制作配套APP)
接入MQTT,实现远程控制(已实现样例)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 GoodBoyboy 's Blog|惬意小屋-点滴记忆!
Invitation
GoodBoyboy
5201314***
created:09/04/2015
Welcome to MyBlog
Use this card to join MyBlog and participate in a pleasant discussion together .
Welcome to GoodBoyboy 's Blog,wish you a nice day .
评论
ArtalkUtterances