最近在玩STM32,索性写点笔记,加深印象,或者有助于新人摸索参考,不多说,进入正题。
单片机:STM32F407
模块:8266
模块:DHT22
模块:BH1750
BH1750:I2C通讯,关于I2C通讯的过程,我这里就不多说,直接说驱动的步骤:
1、总线初始化;
2、向传感器发送写信号,然后配置分辨率;
3、向传感器发送设备地址和读信号;
4、读数据;
很简单,具体代码见附件。
DHT22:这个用的是单总线的通讯方式,个人感觉最关键的点有2个:1、发送初始信号前要延时至少3S以上,等待电压稳定,防止电压抖动;2、器件手册上的时序;
8266:这个比较简单,采用的是AT指令的模式,光看代码就能看懂。
上结果吧:
+-------------+----------+-----------------+---------+---------+------------------+------+------+
| temperature | humidity | light_intensity | current | voltage | time | id | date |
+-------------+----------+-----------------+---------+---------+------------------+------+------+
| 27.30 | 33.80 | 5759 | 0.00 | 0.00 | 2020-04-28 13:50 | 1 | NULL |
| 26.90 | 34.20 | 4294 | 0.00 | 0.00 | 2020-04-28 14:00 | 2 | NULL |
| 26.60 | 34.30 | 6185 | 0.00 | 0.00 | 2020-04-28 14:10 | 3 | NULL |
| 26.60 | 34.40 | 5759 | 0.00 | 0.00 | 2020-04-28 14:20 | 4 | NULL |
| 26.50 | 34.70 | 5376 | 0.00 | 0.00 | 2020-04-28 14:30 | 5 | NULL |
+-------------+----------+-----------------+---------+---------+------------------+------+------+
单片机源程序如下:
所有程序51hei提供下载:
代码.rar
(4.53 KB, 下载次数: 48)
|