前言
在上一篇文档 arduino 开发领导 的时候介绍了什么是 arduino 以及 arduino 开发环境的搭建,然而仅仅是简略提及了一下应用官网的 demo 验证板子起来了,当初来尝试写第一个简略的 arduino 利用:红外测温枪。︿(~︶~)︿
设施抉择
这里我抉择的是之前举荐的安信可 ESP32S 开发板 传感器用的 GY906 (MLX90614ESF)。通信形式是 I2C(IIC)会用到 ESP32S 的 P21 引脚 (对应 I2C 的 SDA) 和 P22 引脚 (对应 I2C 的 SCL)。
这里发一下 安信可官网的 ESP32S 引脚图:这里并不能看出 I2C 引脚(-_-||)
这是帮忙我找到 I2C 引脚的引脚图 (感激知乎的兄弟分享 o(~▽~)d):
这是 DF 家的 ESP32E 引脚,基本上差不多,也很有参考价值:
二、应用步骤
1. 导入库
上一篇文档 有具体的抉择库的教程,这里我次要说一下如何导入网上找的第三方库。
简略一点就是把库文件夹,放到 arduino 装置目录下的 libraries 文件夹里:
而后在 arduino-IDE 中增加即可:
2. 读入数据
MLX90614ESF 库写得曾经十分欠缺了,咱们不须要再去配置什么 I2C 地址和命令,只有在 setup 之前申明一个 mlx 类,
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
而后间接调用对应的接口就能够启动传感器
// 启动红外模块
mlx.begin();
获取数据
double readObjectTempC(void); // 获取指标的摄氏温度
double readAmbientTempC(void); // 获取周围环境的摄氏温度
double readObjectTempF(void); // 获取指标的华氏温度
double readAmbientTempF(void); // 获取周围环境的华氏温度
之后在 steup 中设置波特率,而后在 loop 通过串口将数据打印进去就行
Serial.begin(115200); // 设置串口波特率
Serial.print(mlx.readAmbientTempC()); // 将周围环境的摄氏温度打印到串口上
之后点击 IDE 的右上角图标(图中 1 地位)关上串口监视器,而后点击图中 2 图标保留文件,点击 3 地位图标编译上传应用程序。就能探测到感应到温度了!不过数据如同不太准 我怎么可能才 32 度(ノ~▽~)
留神串口监视器 波特路与代码保持一致
总结
之前动手了一个 Spirit 1 爱智盒子,原本这次想联合 Spirit 1 做一个更吊的智能红外测温传感器的,监控我房间温度,然而 Spirit 1 真就没搭载调试程序,官网也没有提供,后果我 ESP32S 连上设施之后,我发过来的音讯也看不到,也没方法用发命令给板子只能被设施发现,什么都干不了 (╯‵□′)╯︵┻━┻。不过还好,Spirit 1 能够本人进行利用开发,我钻研一下,本人写一个调试 demo 再做智能设施吧。o(~▽~)d
本文仅集体学习应用,如有谬误,欢送斧正,(੭ ˙ᗜ˙)੭谢谢老板!