Esp8266学习之旅13动手做个8266毕设小案例,smartConfig+MQTT协议。。。

Esp8266学习之旅13动⼿做个8266毕设⼩案例,smartConfig+MQTT协议。。
本系列博客学习由⾮官⽅⼈员 潜⼼所⼒所写,不做开发板。仅仅做个⼈技术交流分享,不做任何商业⽤途。如有不对之处,请留⾔,本⼈及时更改。
序号SDK版本内容链接1nonos2.0搭建开发环境,开始⼀个“hellow world”串⼝打印。
2nonos2.0利⽤GPIO开始使⽤按钮点亮你的“第⼀盏灯。
3nonos2.0利⽤ "软件定时器 " 定时0.5秒闪烁点亮⼀盏LED。
4nonos2.0⽤PWM控制⼀盏LED的亮度变化。
5nonos2.0SDK⾼级使⽤之封装Post与Get请求云端,拿到“天⽓预报信息”。
6nonos2.0了解 SmartConfig与Airkiss⼀键配⽹,给8266配⽹上云端。⽆需把wifi名字密码写在固件⾥。
挡板砖7nonos2.0了解 softAP热点配⽹模式原理,仿“机智云”定义⾃⼰的热点配⽹模式协议。
8nonos2.0你要的8266作为UDP、TCP客户端或服务端的⾓⾊通讯,都在这了。
9nonos2.0[⼩实战上篇]Windows系统搭建8266的本地Mqtt服务器,局域⽹点亮⼀盏LED灯。
10nonos2.0[⼩实战下篇]Windows系统搭建8266的本地Mqtt服务器,局域⽹点亮⼀盏LED灯。
11rtos2.0接⼊阿⾥智能,点亮⼀盏LED灯,期待天猫精灵语⾳控制的不约⽽⾄!
12nonos2.0图⽂并茂学习阿⾥云主机搭建8266MQTT服务器,实现移动⽹络远程控制⼀盏LED。
13nonos2.0动⼿做个8266毕设⼩案例,smartConfig + MQTT协议轻松实现远程控制⼀盏LED。
14rtos2.0FreeRtos系统学习的正确姿势 ------ 环境搭建、烧录。
15rtos2.0接⼊阿⾥云平台⾮阿⾥智能的SDS服务,点亮⼀盏LED灯。
16nonos2.0基于Nonos移植红外线H1838,实现红外遥控器配⽹,远程控制⼀盏灯。
17nonos2.0esp8266⾃研的快速上电开关五次 (开-关为⼀次) ,⽆需按键触发则8266进去⼀键配⽹模式。
18nonos2.0基于NONOS 实现 OTA 远程升级,实现⽆线“ 热修复 ”升级固件程序。
19nonos2.0驱动 ds18b20、dht11 温湿度传感器,采集温湿度传感器到服务器。
20nonos2.0深⼊学习esp8266的esp now模式,仿机智云做⼀个⼩⽹关,实现⽆需⽹络下轻松彼此连接通讯交互数据。
21nonos2.0浅谈 esp8266 如何在本地局域⽹⽹络情况下实现最⼤效率地和前端实现数据交互。
22nonos2.0esp8266的⼯程如何添加第三⽅静态库⽂件以及如何⾃定义⽂件夹,聊聊那些makeFile的事
23nonos2.0再来⼀波 esp8266 基于 freeRtos系统连接⾃⼰私有的服务器实现OTA远程升级,接触下 lwip的基本知识。
24nonos2.0渗透学习回顾下esp8266的外置spi芯⽚25q系列,熟悉8266代码块在其的分布,得⼼应⼿放置图⽚或其他资料。
25rtos2.0深聊下esp8266的串⼝ Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串⼝驱动⽂件。
26nonos2.0RTOS分析 MQTT 实现过程,实现移植 MQTT协议在 esp8266 rtos实时系统,可断线重连。
27rtos3.0跟紧脚步,⽤VisualStudio Code开发 esp8266 rtos SDK v3.0版本,全新的 idf 框架,节省内存模块化开发。
28rtos3.0教你轻松⾃如使⽤cJson在乐鑫 esp8266 如何解析⼀段json数据以及如何⽣成⼀段json数据。
29rtos3.0百万条消息免费之使⽤TCP直连模式MQTT协议接⼊阿⾥云物联⽹平台,⽀持私家服务器对接⽀持阿⾥云规则引擎。
30rtos3.0SDK编程使⽤ IIC总线驱动 0.96⼨的OLED显⽰屏,显⽰天⽓预报信息。
31rtos3.0当esp8266遇到 Html,该怎么内置⽹页控制设备,理清内置⽹页的实现过程,实现⽆需路由器⼿机也可以控制esp8266。
序号SDK版本内容链接32rtos3.0细聊HmacMD5的加密⽅法带来的安全性,并实践在esp8266上,最⼤保障传输的过程的信息的安全性。
33rtos3.0如何优雅地像乐鑫原⼚封装esp8266底层寄存器的逻辑思维,做成⾃⼰的静态库库⽂件,让第三⽅⼈使⽤?
34nonos3.0编程使⽤ SPI 驱动基于Max7219芯⽚的⼋位数码管,显⽰⽇期信息。
35nonos3.0借助机智云平台做⼀个商业化的七彩RGB灯泡可调整体⽅案项⽬,炫彩夺⽬⾼⼤尚。
36rtos3.0认识Rtos 3.0 sdk ⼯程结构,如何向esp-idf⼯程靠近的,如何⾃定义头⽂件编译?
37rtos3.0你要的基本外设功能都在这⾥了,包括Gpio、Pwm 和 Uart 接⼝使⽤。
38rtos3.0⼀篇⽂章带你搞掂存储技术 NVS 的认识和使⽤,如何利⽤NVS保存整型、字符串、数组以及结构体。
39rtos3.0带你捋⼀捋市⾯上的配⽹智能设备 esp8266 并绑定设备的过程,移植并成功实现在 esp8266 rtos3.1 sdk。
40rtos3.0基于乐鑫idf框架,研究出超稳定、掉线重连、解决内存泄露问题的Mqtt框架!⽀持esp8266和esp32!
41rtos3.0esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官⽹基础之上增加dns域名解析!
42rtos3.0我⼜来了,基于rtos3.0版本 SDK编程 SPI 驱动 ws2812b 七彩灯,代码全部开源奉献给你们!
43rtos3.0基于rtos3.0版本扫描周围获取附近可⽤的 Wi-Fi 热点路由器信息,同样适合esp32。
44rtos3.0整理分享那些我在项⽬中常⽤的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。
45rtos3.0内置仅1M的Esp8285,如何攻破最棘⼿的OTA问题,⼤⼤节省资源成本开发产品
46rtos3.0详细分析Esp8266上电信息打印的数据,如何做到串⼝通讯上电不乱码打印;
47rtos3.0⽆需外⽹,如何实现在本地局域⽹与控制端做数据交换的⼀些开发经验;
48rtos3.0迟来的1024程序员祝福,开源分享⼀个驱动 ds18b20 获取温度的⼯程。
49rtos3.2aliyun sdk 直连接⼊阿⾥云物联⽹平台,实现天猫精灵队友零配⽹功能和语⾳控制。
……持续更新,欢迎关注我,QQ讨论:434878850
很多⼈怎么联系我⼀起学习进步,下⾯打个⼩⼩公告和⼲货⽆偿分享:
很多⼈怎么联系我⼀起学习进步,下⾯打个⼩⼩公告:
⽬录:
⽂章⽬录
⼀、前⾔。
时间年末,真的是越来越忙啦。⼴东的天⽓越来越冷了,各位朋友注意保暖~。最近发现创⽴的QQ,很多加⼊都是寥寥所事,为了提⾼进⼀步的⼈员质量,我决定设置为付费加,并不是所谓的利益!⽽是提⾼员的素质,我不想看到⼀个伸⼿⼀个拿资料,并不是毫⽆回报的。**但是这⾥发布的博客对应的Demo都是免费啦!**望各位谅解!
⼩徐 2018-1-13  17:03
1.1 操作步骤。
图⽚不清晰,请放⼤浏览器浏览倍数!关于MQTT和smartConfig不懂,请认真看看我的8266系列博⽂!
如果您的8266设备第⼀次配⽹或者您想改变已经连接的wifi路由,请点击按键,同时⼿机APP输⼊账号和密码,点击搜索!
设备配⽹成功后,红灯灭。否则红灯⼀直亮!
控制端发送0或1,控制设备开关灯!此灯是绿灯!
本次实验的是webSocket也就是服务器提供的,实现上位机的操作,如果你会安卓开发,可以尝试从我的上⼏天发布的实现Android上位机!
1.2 电路图;
其实本博⽂和我写的这篇 是差不多的,只是在MQTT的demo之上加了个smartConfig功能,可以实现不⽤写死了密码在代码⾥⾯!
⼆、部分代码。
2.1 ⾸先我们在user_main()先初始化GPIO⼝。
原油脱硫剂//LED初始化
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15); //选择GPIO15,此GPIO连接是绿灯 GPIO_OUTPUT_SET(GPIO_ID_PIN(15), 1); //默认GPIO15为⾼,也就是关灯
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12); //选择GPIO12,此GPIO连接是红灯 GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0); //默认GPIO12为⾼,也就是开灯,表⽰配⽹不成功!
2.2 在user_main()定义不断轮询是否连接⽹络的定时器,回调函数 Check_WifiState()。
os_timer_disarm(&checkTimer_wifistate); //启动定时器前先取消定时器定时
os_timer_setfn(&checkTimer_wifistate, (os_timer_func_t *) Check_WifiState,
带外衰减NULL); //设置定时器回调函数
防雷开关os_timer_arm(&checkTimer_wifistate, 1000, 1); //启动定时器
2.3 在Check_WifiState() 查询当前⽹络状态。如果已经连接则关闭红灯!
void Check_WifiState(void) {
uint8 getState;
struct ip_info ipConfig;
wifi_get_ip_info(STATION_IF, &ipConfig);
getState = wifi_station_get_connect_status();
//查询 ESP8266 WiFi station 接⼝连接 AP 的状态
if (getState == STATION_GOT_IP && ipConfig.ip.addr != 0) {
os_printf("----- wifi 连接成功!红灯关闭啦啦!---\r\n");
GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);
os_printf("----- wifi 连接成功!断开定时器啦!---\r\n");
os_timer_disarm(&checkTimer_wifistate);
sntp_setservername(0, ""); // set sntp server after got ip address
sntp_init();
os_timer_disarm(&sntp_timer);四球机
os_timer_setfn(&sntp_timer, (os_timer_func_t *) sntpfn, NULL);
os_timer_arm(&sntp_timer, 1000, 1); //1s
}
}
2.4 同样 在user_main()初始化按键,以及按键的点按回调函数!
keyInit();
2.5 按键的点按回调函数。
LOCAL void ICACHE_FLASH_ATTR keyShortPress(void) {
os_printf("---------- 按键触发,开始进去SmartConfig配⽹ \n\n\n-----");
smartconfig_init();
}
2.6 收到服务器下发数据的处理。
void mqttDataCb(uint32_t *args, const char* topic, uint32_t topic_len,
const char *data, uint32_t data_len) {
MQTT_Client* client = (MQTT_Client*) args;
//如果接收到指令是1,GPIO15输出为低,也就是LED开灯,同时发布消息,主题是/xuhong/LED/out,信息是LED status is open ... if (data[0] == '1') {
GPIO_OUTPUT_SET(GPIO_ID_PIN(15), 0);
MQTT_Publish(client, "/xuhong/LED/out", "LED status is open ...",
strlen("LED status is open ..."), 0, 0);
}
//如果接收到指令是0,GPIO15为⾼,也就是LED关灯,同时发布消息,主题是/xuhong/LED/out,信息是LED status is off ...
if (data[0] == '0') {
GPIO_OUTPUT_SET(GPIO_ID_PIN(15), 1);
MQTT_Publish(client, "/xuhong/LED/out", "LED status is off ...",
strlen("LED status is off ..."), 0, 0);
毛巾挂件}
}
三、截图。

本文发布于:2024-09-26 02:15:05,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/142761.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实现   连接   服务器   远程   控制   版本   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议