当前位置:网站首页>基于wifi控制的51单片机温度报警器

基于wifi控制的51单片机温度报警器

2022-07-04 15:01:00 吃肉解千愁

基于wifi控制的51单片机温度报警器


新手入门笔记,难免存在很多纰漏。忘各位大佬发现错误后不吝赐教

笔者非电气专业,很多地方没有知识支撑,难免出现纰漏或解释摸棱两可

全套资料链接:百度网盘

我的小程序源码:点击提取

1、功能介绍

  1. 拓展显示器显示当前温度和阈值温度。
  2. 当温度超过设定的阈值后蜂鸣器报警。
  3. 可以通过wifi用手机界面调整参数。

因为之前有几次实验手机连不上单片机,我以为wifi的函数只能改变硬件的电平。但是又经过实验测试,wifi的函数可以直接放语句。这样逻辑就简单了,直接if-else大法。

2、逻辑结构介绍

通过wifi传入的字符改变现有的程序 if else大法

3、单片机前置知识

3.1 为什么选择单片机

单片机能够从现实中采集数据并通过程序来处理。使得电子设备经过程序的控制变得更加智能。方便了人们的生活。

3.2 单片机是什么。

  1. 在我的眼中单片机是微型电脑。
  2. 它有一些拓展接口如:显示屏、温度采集器、蓝牙、wifi等。这些拓展器赋予单片机更加强大的功能。
  3. 浓浓的电气特色。通过程序改变某个位置的电气特征实现功能。

吐槽下只能用C语言的古老语法。

3.3 单片机怎么用

将电气细节封装成小黑盒后程序就变成了调API写C语言小程序。

但是不懂底层电气原理会翻车~,详情见后面的“4.3显示函数“

  1. 软件方向需要编程基础(51单片机的语言是C)
  2. 硬件方向需要懂板子原理。(笔者表示看不懂(也没打算看懂))

4、开发总体流程

传感器和IO口的通信非常难以理解,这也是断掉我学硬件的想法之一 ~~

但是但是但是 通信几乎不能更改,就是说直接调别人写好的API就行了

4.1 主函数里面有什么

  1. 捕获当前温度并显示加判断是否报警
  2. 捕获中断并进入编辑阈值模式

4.2 实现捕获温度函数

使用的是DS18B20温度传感器。根据硬件特性确定计算公式、时序控制温度读取的过程

4.3 实现显示函数

用于展示提示信息和输入的信息。

采用LCD1602 液晶显示。只能显示英语。这里在显示后没有清空屏幕翻了车。

4.4 实现报警函数

if判断下,如果温度高于阈值蜂鸣器将震荡。

4.5 实现修改阈值函数

传入参数:字母

  1. A:进入编辑
  2. B:退出编辑
  3. C:删除一位
  4. D:小数点
  5. 类似‘1’:数字

实现方式:数组哨兵

每次调用后显示函数

4.6 实现wifi传入数据进入修改阈值函数

一开始店家发我的wifi模块不对劲,调了一天,沟通无果后给了个有理有据的差评,店家又补发了一个好的模块:happy:。

if - else 调用修改阈值函数。重点在于wifi的通信。使用的wifi模块是ESP8266-WIFI。

通信的话需要保证wifi和单片机的波特率一样。

函数内通过发送 AT+CIPSEND=0,7 指令,设定发送数据长度,然后发送数据 到 WIFI 模块。

一般 APP 发送出来的数据格式内容为:+IPD,ID 号,发送数据长度:数据。

当手机连接热点成功后,其中+IPD,ID 号就是固定的,用户可根据需要发送 多少数据,然后长度就可以确定。这样在串口接收中断中就可以按照这个格式 进行解析,我们主要关注的是“数据”那块。

例如配套资料里面实验中控制 LED1 开的指令:+IPD,0,1:1 每个数据是10个字符。数据就是s[9]了。

5、小结

最后的代码仍有大大小小的bug,只能说勉强能跑。

通过半个月的单片机学习,我对软件控制多了些了解。对硬件也有了些了解。

原网站

版权声明
本文为[吃肉解千愁]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_51368613/article/details/125546686