前言
在上一篇文档 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
本文仅个人学习使用,如有错误,欢迎指正, ( ੭ ˙ᗜ˙ )੭谢谢老板!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。