收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
【对于穿透的理解】
顾名思义,开启穿透就是不用管wifi协议怎么实现的~
我们只用专注于在A设备和B设备间使用串口收发数据,
就好像A和B直接用导线相连~ 就好像穿透了~
+++可推出穿透模式
【ESP8266的一般使用顺序】
这里的“一般”指的是:ESP8266连接当前环境的热点,与服务器建立TCP连接,传输数据。
AT+CWMODE=1:设置工作模式(STA模式)
AT+RST:模块重启(生效工作模式)
AT+CWJAP=“111”,“11111111”:连接当前环境的WIFI热点(热点名,密码)
AT+CIPMUX=0:设置单路连接模式
AT+CIPSTART=“TCP”,“xxx.xxx.xxx.xxx”,xxxx:建立TCP连接
AT+CIPMODE=1:开启透传模式
AT+CIPSEND:透传模式下,传输数据
+++:退出透传模式
1.3mqtt协议
普通的socket连接对服务器的消耗太大,所以出现了类似MQTT这种轻量级、低消耗的协议来维护长连接。维护长连接需要采用心跳机制…
2.云平台部分【阿里云】
tips:点灯的产品流转规则~没必要用json格式,二进制就行。
所谓的产品流转规则就是数据的流转规则,而数据又依托存放在topic中。
故:产品流转规则就是设计A设备使用的topic数据传送到B设备使用的topic.
3.上位机部分【安卓app】
我之前的android studio 开发app博客专题合集——mqtt.jar包.
4.下位机部分【stm32+AT指令】
库移植操作:
4.1mqtt协议库
这个库有6个函数,作用如函数名所示
4.2esp8266at指令库
这个库有12个函数,对at指令做了封装,直接调用相应函数(不用死记at指令)
4.3main.c
4.3.1 宏定义
4.3.2 main函数
4.3.3 自定义函数
USART1接收中断代码
/\*\*\*\*\*\* USART1接收中断代码 \*\*\*\*\*/
// ES8266驱动串口接收中断处理函数
void HAL\_UART\_RxCpltCallback(UART_HandleTypeDef \*huart)
{
if(huart->Instance == USART1) // 判断是由哪个串口触发的中断
{
//将接收到的数据放入接收usart1接收数组
usart1_rxbuf[usart1_rxcounter] = usart1_rxone[0];
usart1_rxcounter++; //接收数量+1
//重新使能串口1接收中断
/\*\*【易错~~接受回调函数中别忘再次使能】\*/
HAL\_UART\_Receive\_IT(&huart1,usart1_rxone,1);
}
}
进入错误模式代码
/\*\*\*\*\*\*\*\*\*\*\*\* 进入错误模式代码 \*\*\*\*\*\*\*\*\*\*\*\*/
//进入错误模式等待手动重启
void Enter\_ErrorMode(uint8_t mode)
{
HAL\_GPIO\_WritePin(LED_G_GPIO_Port,LED_G_Pin,GPIO_PIN_SET);
while(1)
{
switch(mode){
case 0:user\_main\_error("ESP8266初始化失败!\r\n");break;
case 1:user\_main\_error("ESP8266连接热点失败!\r\n");break;
case 2:user\_main\_error("ESP8266连接阿里云服务器失败!\r\n");break;
case 3:user\_main\_error("ESP8266阿里云MQTT登陆失败!\r\n");break;
case 4:user\_main\_error("ESP8266阿里云MQTT订阅主题失败!\r\n");break;
default:user\_main\_info("Nothing\r\n");break;
}
user\_main\_info("请重启开发板");
//HAL\_GPIO\_TogglePin(LED\_R\_GPIO\_Port,LED\_R\_Pin);
HAL\_Delay(200);
}
}
初始化函数
/\*\*\*\*\*\*\*\*\*\*\*\*\* STM32 MQTT业务代码 \*\*\*\*\*\*\*\*\*\*/
//MQTT初始化函数
void ES8266\_MQTT\_Init(void)
{
uint8_t status=0;
//初始化|检查esp8266好坏
if(ESP8266\_Init())
{
user\_main\_info("ESP8266初始化成功!\r\n");
status++;
}
else Enter\_ErrorMode(0);
//连接手机热点|家庭wifi
if(status==1)
{
if(ESP8266\_ConnectAP(WIFI_NAME,WIFI_PASSWD))
{
user\_main\_info("ESP8266连接热点成功!\r\n");
status++;
}
else Enter\_ErrorMode(1);
}
//连接阿里云IOT服务器
if(status==2)
{
if(ESP8266\_ConnectServer("TCP",MQTT_BROKERADDRESS,1883)!=0)
{
user\_main\_info("ESP8266连接阿里云服务器成功!\r\n");
status++;
}
else Enter\_ErrorMode(2);
}
//登陆MQTT
if(status==3)
{
if(MQTT\_Connect(MQTT_CLIENTID, MQTT_USARNAME, MQTT_PASSWD) != 0)
{
user\_main\_info("ESP8266阿里云MQTT登陆成功!\r\n");
status++;
}
else Enter\_ErrorMode(3);
}
//订阅主题
if(status==4)
{
if(MQTT\_SubscribeTopic(MQTT_SUBSCRIBE_TOPIC,0,1) != 0)
{
user\_main\_info("ESP8266阿里云MQTT订阅主题成功!\r\n");
}
else Enter\_ErrorMode(4);
}
}
单片机状态上报——————依据项目修改
/\*\*\*\*\*\*\* 单片机状态上报 \*\*\*\*\*\*\*\*\*\*\*\*\*/
//单片机状态上报
void STM32DHT11\_StatusReport(void)
{
//获取温湿度信息
uint8\_t temperature;
uint8\_t humidity;
uint8\_t get_times;
// 获取温湿度信息并用串口打印,获取十次,直到成功跳出
for(get_times=0;get_times<10;get_times++)
{
if(!dht11Read(&temperature, &humidity))//Read DHT11 Value
{
user\_main\_info("temperature=%d,humidity=%d \n",temperature,humidity);
break;
}
}
//上报一次数据
uint8\_t led_r_status = HAL\_GPIO\_ReadPin(LED_R_GPIO_Port,LED_R_Pin) ? 0:1;
uint8\_t led_g_status = HAL\_GPIO\_ReadPin(LED_G_GPIO_Port,LED_G_Pin) ? 0:1;
uint8\_t led_b_status = HAL\_GPIO\_ReadPin(LED_B_GPIO_Port,LED_B_Pin) ? 0:1;
sprintf(mqtt_message,
"{\"method\":\"thing.service.property.set\",\"id\":\"181454577\",\"params\":{\
\"DHT11\_Temperature\":%.1f,\
\"DHT11\_Humidity\":%.1f,\
\"Switch\_LEDR\":%d,\
\"Switch\_LEDG\":%d,\
\"Switch\_LEDB\":%d\
},\"version\":\"1.0.0\"}",
(float)temperature,
(float)humidity,
led_r_status,
led_g_status,
led_b_status
); //阿里云数据上报格式~
![img](https://img-blog.csdnimg.cn/img_convert/29af2c838d06836ef540611189b19468.png)
![img](https://img-blog.csdnimg.cn/img_convert/d587919f78c7ac731942ee1ad8b4d44b.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**
1715908185164)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**
**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**