ESP8266实现WIFI局域网连接手机APP监控

主要功能

  1. STM32采集温湿度信息.
  2. 人体红外感应模块, 检测到有人活动, LED3亮.
  3. 手机APP通过WIFI连接, 可查看温湿度信息, 可控制LED1, LED2, 蜂鸣器.
  4. STM32与电脑上位机串口连接, 可查看调试信息.
  5. 手机APP可发送信息给电脑上位机.

物料清单

  1. 野火STM32F103指南者开发板(自带ESP8266的WIFI模块)
  2. DHT11温湿度传感器
  3. HC-SR501人体红外感应传感器
  4. 网络调试助手(秉火物联)

功能框图

功能框图


代码分析

(源码及相关文件随后放在文末, 可根据源码结合过程解读理解)

基本上是以野火的ESP8266模块的源码为基础, 在其上添加了串口调试信息显示, 去掉了手机APP控制LED3的功能, 改为人体红外感应模块检测控制LED3.

ESP8266与STM32通信过程解读:
就是手机APP发送"一些命令"给ESP8266
ESP8266就发给STM32
sSTM32中断接收"这些命令"放到strEsp8266_Fram_Record结构体里
接收完毕进入程序 失能中断 看"这些命令"包含了什么
如果有开灯, 则开灯, 然后把结果放到cStr中
如果有开蜂鸣器, 则开蜂鸣器, 然后把结果放到cStr中
如果有接收数据, 则接收数据, 然后把结果放到cStr中
如果要发回APP, 则把cStr发回给APP
APP根据结果, 更改(温湿度)信息

使用手机APP后总结:
所以可以自定义APP发送数据通过ESP8266到stm32上
但是不能显示stm32通过ESP8266发回给APP的数据
因为这涉及到APP的源码


过程中所遇到的问题

  1. 在用野火的AT指令测试调试的代码时, ESP8266上电串口调试助手出现乱码
      乱码的部分是ESP8266发送给STM32的部分显示乱码, STM32发送给串口调试助手的部分显示正常, 个人认为应该是波特率的问题, 随后将STM32与ESP8266通信的波特率从115200改为74880, 显示正常了.

  2. 上电后显示正常, 但是发送AT指令后, ESP8266回复信息显示乱码
      个人认为还是波特率的问题, 又将波特率从74880改回115200, 虽然上电后显示乱码, 但是AT指令回复显示正常了.

  3. 部分指令回复ERROR
      这个问题可能有2种情况, 第一种情况是可能指令格式不对, 不符合当前的模式. 比如如果你之前设置了多连接模式(CIPMUX=1), 接着发送数据没有带网络连接ID号(AT+CIPSEND=<length>), 这时会返回ERROR; 第二种情况是查询波特率(AT+UART_CUR?)之类的命令返回ERROR, 对于这种情况我暂时没找到原因, 在此先挖一个坑, 有机会以后回来填一下, 当然如果有知道原因的朋友们可以说一下, 万分感谢!

  4. ESP8266成功连上手机热点, 但是不能识别到指定IP地址通信
      这种情况下, 我更改了网络调试助手的IP地址, 改成了和ESP8266相同的网关, 这样应该在同一局域网中, 结果成功了.


GitHub Gitee


SHOUT OUT TO
ESP2866常见问题,问题集锦,总有您想要的!
ESP8266作为客户端通过路由器连接服务器的简单实现
WiFi模块调试问题:AT+CIPSTART=“TCP”,“192.168.43.212”,8080 ERROR CLOSED

  • 11
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值