文章目录
最后代码已上传!!!!
代码文章链接
github 代码链接在该文章最后
写在前面
本人编程小白一枚,第一次接触 STM32 所编写的项目。后续会逐步分块更新,并会在最后一篇文章上传源代码。
若有 刚学 STM32 ,懂得 串口通信,可以学一下本项目,增强下自己学习的信心!!!
若是 STM 32 串口都不大懂,建议 小破站 搜索 正点原子 或 野火 进行学习,博主也是在这两个大佬的视频下学习的。 真心强烈推荐!
需求分析
1. 获取水浊度信息
2. 获取温湿度信息(一般监测水质,周边也会监测温湿度)
3. OLED 屏幕显示这些信息
4. 将信息发送到 ONE-NET 平台显示
硬件使用
1. 水浊度传感器 TSW30 (该硬件选得不好,无法全部沉到水里)
2. 温湿度传感器 DHT11
3. OLED 4针( 后续使用 I2C 协议)(具体忘记什么型号了)
4. WiFi 传感器 ( ESP8266 模块)
5. STM32f103 RCT6
实现简单分析
1. 获取水浊度信息
水浊度传感器原理:这款浊度传感器利用光学原理,通过溶液中的透光率和 散射率来综合判断浊度情况。传感器内部是一个红外线对管,当光线穿过一定量 的水时,光线的透过量取决于该水的污浊程度,水越污浊,透过的光就越少。光 接收端把透过的光强度转换为对应的电流大小,透过的光多,电流大,反之透过的光少,电流小。
通过某宝商户提供的用户手册,该水浊度传感器将传感器输出的电流信号转换为电压信号,通过单片机进行 AD 转换数据处理。
所以,这边采用的是 STM32 的 ADC 模拟/数字转换。
2. 获取温湿度信息
打开对应的 DHT11 手册
![](https://i-blog.csdnimg.cn/blog_migrate/323001b4812181788bba51327dc5b94c.png)
通过对应的时序图,来确定自己应该如何编写程序。(具体的后续会在具体介绍的博文中)
3. OLED显示
OLED 四针的 采用 I2C 协议进行显示
先使用字符库软件 PCtoLCD2002.exe 把自己想要的字符库生成引入(转化为16进制数)
![](https://i-blog.csdnimg.cn/blog_migrate/c2c2ac61481fd760dbf66d0fb25cfa07.png)
再编写程序,将字符库写入 OLED 中
4. 发送信息到 ONE-NET 平台
STM32 采集对应的传感器数据,使用 MQTT 协议通过 ESP8266 WiFi 模块发送数据到 ONE-NET 平台
ESP8266 通过 AT 指令,连接 WiFi ,并 TCP 连接到 ONE-NET 平台
发送对应的协议包,例如 connect 连接包,再解析 ONE-NET 平台发送的数据,判断发送的协议包成功
再发送 数据流,并在 ONE-NET 上显示出来
![](https://i-blog.csdnimg.cn/blog_migrate/827dfbe3f8d7cc4a108e3930d31164a1.png)
5.提供具体对应链接
- 水浊度传感器
- 温湿度传感器
- ESP8266 模块
后续会逐步更新
最后
第一次尝试编写博客,若是有什么建议,欢迎批评指出。
后续会逐步分块更新,并会在最后一篇文章上传源代码。
最后一篇文章已更新,代码在该篇文章最后
一文带你了解 MQTT 协议 代码在该文章最后
若是该文章对你有作用或是觉得文章写得还行,帮忙点点赞,三连!
![](https://i-blog.csdnimg.cn/blog_migrate/447562d103f414f59b812504a3413105.jpeg)