小白学物联网基于Esp8266
模版就是生产力
编辑于 2026年02月03日 17:06

第一节:安装keil,在安装和使用keil的过程中遇到问题,都可以来找我,欢迎大家加我v:13860674322,私聊发安装包资料给你。单片机的编辑、烧录工具用的是keil,使用keli还需要stm32芯片包。需要keil的同学可以私信我。

首先需要一台电脑,电脑模拟单片机串口主机,打开串口调试助手,发送at指令查看单片机是否有响应。Esp8266有两种配置模式,一种是配置成客户端模式,一种是配置成服务端模式。Esp8266配置成客户端模式时,设置配网信息、要连接的服务器的ip地址与端口,在电脑端打开网络调试助手,打开端口,利用串口调试助手往esp8266发送数据包内容,网络调试助手等待数据上传。Esp8266配置成服务端模式时,设置配网信息、开发的端口,也在电脑端打开网络调试助手,打开端口,利用串口调试助手往esp8266发送数据包内容,网络调试助手当做客户端,设置ip地址与等待数据上传。

4GDTU即4G透传模块,也可以实现4G的功能。

单片机调试过程中,串口调试是一把利器,用好printf就可以实现医生问诊病人一样,让单片机把重要的信息打印出来,我们再根据串口打印的信息,来推测可能的问题,进而调试代码。在本次代码调试中用到Stm32f103的两个串口,其中一个串口用于与esp8266进行数据交互,另一个串口用于打印调试信息。在esp8266的配置中,利用单片机发送at指令,等待esp8266返回响应,因此在代码中利用while进行阻塞等待OK指令的返回。

Esp8266是否有数据可以在单片机的串口是否收到数据来判断,串口是否有数据是通过串口标志位来进行判断的。

现在分别用单片机代码来将esp8266配置成客户端或者服务器,与电脑端的网络调试助手进行消息的交互。当服务器与客户端建立连接时,可以互相发送消息。现在进行消息交互的演示。

接下来是协议的解析。每一帧数据包数据格式是固定的,工程应用上往往会给数据包加数据包头,数据包尾,有的还会加上校验。数据包的内容往往是键值对的方式,比如key:value。数据包往往是物联网数据采集终端读取传感器的数据,用key:value的方式,进行打包,比如温度:25摄氏度,湿度30%,然后加头加尾加校验,进而进行数据上传。网络调试助手服务端进行数据包的展示。服务端选用客户端对网络数据进行下发,终端对下发的数据进行解析,提取出键值对,比如完成灯的亮灭操作。

有能力的同学可以自己写服务器的代码,服务器的处理逻辑通常包括,如果要处理多个TCP设备可以处理netty框架,想要手机端进行控制,手机与服务器用的是https协议,如果要涉及数据的存储,还要用到数据库,如果自己搞,并且设备还要指定访问。确实比较复杂,因此要用到大神开发的mqtt,来实现免服务器的开发。

欢迎大家加我v:13860674322,私聊发资料给你。

硬件部分

硬件部分采用的是模块集成的开发方式,硬件的核心是主控单片机,主控单片机选用的是stm32f103,单片机可以买最小核心板,有能力的同学也可以自行设计单片机最小系统板,包括单片机芯片,晶振以及代码烧录口这些。外设方面,传感器的外围电路设计主要包括供电引脚有信号引脚,常见的传感器协议包括IIC,SPI,串口这些。供电部分应该用晶振进行滤波。

外设也可以购买模块来减少开发的时间。人机交互方面常见的有oled,市面上oled有iic通讯,spi通讯,iic的通讯线会少一点。Spi,iic通讯会封装好读写函数,读写某个地址的寄存器,实现对显示的输出。

GNSS模块通常是用串口进行输出,因此也可以将GNSS模块用串口转TTL接入串口调试助手,如果在室外没有信号遮挡有很多的数据包,其中比较重要的是GNGGA。解析GNGGA可以得到N,E,H

六轴传感器本身输出的是原始的加速度和角速度数据,要获取物体的具体姿态(如俯仰角、横滚角、偏航角),可以使用四元素的办法将六轴的数据得到欧拉角,比如我们常说的pitch,roll,yaw,pitch是俯仰角,roll是滚转角,yaw是偏航角。