手把手带你 arduino 开发:基于ESP32S 的第一个应用-红外测温枪(带引脚图)

智能设备 同时被 2 个专栏收录
18 篇文章 3 订阅
25 篇文章 0 订阅

arduino 开发:基于ESP32S 的第一个简单应用


前言

在上一篇文档 arduino开发指导 的时候介绍了什么是 arduino 以及 arduino 开发环境的搭建,但是仅仅是简单提及了一下使用官方的 demo 验证板子起来了,现在来尝试写第一个简单的 arduino 应用:红外测温枪。︿( ̄︶ ̄)︿

设备选择

这里我选择的是之前推荐的安信可 ESP32S 开发板 传感器用的 GY906 (MLX90614ESF )。通信方式是 I2C (IIC)会用到 ESP32S 的 P21 引脚(对应 I2C 的 SDA) 和 P22 引脚 (对应 I2C 的 SCL)。
这里发一下 安信可官方的 ESP32S 引脚图:这里并不能看出 I2C 引脚 (-_-||)
ESP32S 引脚图
这是帮助我找到 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度(ノ ̄▽ ̄)
IDE
注意串口监视器 波特路与代码保持一致
在这里插入图片描述

总结

之前入手了一个 Spirit 1 爱智盒子,本来这次想结合 Spirit 1 做一个更吊的智能红外测温传感器的,监控我房间温度,但是 Spirit 1 真就没搭载调试程序,官方也没有提供,结果我 ESP32S 连上设备之后,我发过去的消息也看不到,也没办法用发命令给板子只能被设备发现,什么都干不了 (╯‵□′)╯︵┻━┻ 。不过还好,Spirit 1 可以自己进行应用开发,我研究一下,自己写一个调试 demo 再做智能设备吧。o( ̄▽ ̄)d

本文仅个人学习使用,如有错误,欢迎指正, ( ੭ ˙ᗜ˙ )੭谢谢老板!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值