今日头条
M5Stack 是一款特别适合开发物联网应用的开发套件(见图 1)。它是开源的,并且与 Arduino 兼容。它允许在很短的时间内创建物联网应用程序,并可以使用一系列不同的扩展板。通过将扩展板堆叠在主机下方并用磁铁固定它们来添加扩展板。通过显示器上的图形界面,可以查看任何信息,包括文本和图形。根据项目规范,还可以创建声音和光输出。该套件包括主机、USB TYPE-C 数据线、一些要贴在按键或其他部件上的贴纸、手册和用于端口连接的电缆。该设备可以用不同的编程语言进行编程。它配备了 TFT-LCD,即使在高分辨率下,您也可以查看文本、图片和图像。四个侧面包括连接到 GPIO 端口的连接器,专为创客设计,以保证易用性和很大的灵活性。它具有可单独控制的 Xtensa 32 位 240Mhz LX6 双核处理器。支持标准 WiFi 和蓝牙,配备 16MB Flash 和 8MB PSRAM、用于充电、程序下载和串行通信的 USB TYPE-C 接口、集成的 2.0 英寸电容式触摸屏和内置振动系统。它还具有用于精确同步的集成 RTC 模块。电源由 AXP192 芯片处理。电池容量为 390 mAh,保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。为了保证易用性和很大的灵活性。它具有可单独控制的 Xtensa 32 位 240Mhz LX6 双核处理器。支持标准 WiFi 和蓝牙,配备 16MB Flash 和 8MB PSRAM、用于充电、程序下载和串行通信的 USB TYPE-C 接口、集成的 2.0 英寸电容式触摸屏和内置振动系统。它还具有用于精确同步的集成 RTC 模块。电源由 AXP192 芯片处理。电池容量为 390 mAh,保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。为了保证易用性和很大的灵活性。它具有可单独控制的 Xtensa 32 位 240Mhz LX6 双核处理器。支持标准 WiFi 和蓝牙,配备 16MB Flash 和 8MB PSRAM、用于充电、程序下载和串行通信的 USB TYPE-C 接口、集成的 2.0 英寸电容式触摸屏和内置振动系统。它还具有用于精确同步的集成 RTC 模块。电源由 AXP192 芯片处理。电池容量为 390 mAh,保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。支持标准 WiFi 和蓝牙,配备 16MB Flash 和 8MB PSRAM、用于充电、程序下载和串行通信的 USB TYPE-C 接口、集成的 2.0 英寸电容式触摸屏和内置振动系统。它还具有用于精确同步的集成 RTC 模块。电源由 AXP192 芯片处理。电池容量为 390 mAh,保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。支持标准 WiFi 和蓝牙,配备 16MB Flash 和 8MB PSRAM、用于充电、程序下载和串行通信的 USB TYPE-C 接口、集成的 2.0 英寸电容式触摸屏和内置振动系统。它还具有用于精确同步的集成 RTC 模块。电源由 AXP192 芯片处理。电池容量为 390 mAh,保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。这保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。这保证了良好的自主性。该设备还具有 SD 卡插槽和小型扬声器。可以在官方网站上找到很多其他信息。
图 1:M5Stack 的优雅美学
以下是它的一些重要特性:
ESP32-D0WDQ6-V3芯片;
FT6336U芯片管理的电容式触摸屏;
振动电机;
四侧 GPIO 的连接器;
PSRAM 8 MB;
16 MB 闪存;
USB C 型;
2.0 英寸 320 x 240 英寸 IPS 液晶屏;
FT6336U触摸屏;
1W 扬声器;
MPU6886 6轴;
实时时钟 BM8563;
16 Gb 最大卡槽;
390 mAh 3.7 V 锂电池;
2.4G 3D天线;
工作温度在0°C和40°C之间;
重量,52 克。
准备 M5Stack 设备
M5Stack 可以使用 Arduino IDE 进行编程,但为此必须正确安装库和其他基本组件。安装过程非常简单,但必须遵循一些规则才能从开发环境中准确识别电路板。建议不时检查正在使用的库的更新。即使官方网站对要遵循的程序提供了非常清晰的解释,以下简短列表也会非常有用:
安装 Arduino IDE;
安装CP210X“USB转串口”驱动;
在 Arduino IDE 中安装 ESP32 Boards Manager;
安装 M5Stack 库。
不得在控制台窗口中执行所有这些操作。
连接和链接
M5Stack 是一个完整的系统,因此需要添加的组件很少。特别是,只需要连接一个用作模拟温度计的外部 LM35 温度计。它允许温度监控,并且在许多情况下被证明非常有用。它可以在室内和室外使用。温度计的接线允许仅使用三根连接电缆(包含在套件中)连接 LM35 传感器,如图 2 所示。请记住,热传感器必须以至少 4 V 的电压供电,虽然连接到 3.3V 电压有时会产生积极的结果,但不建议这样做。
图 2:温度计的简单连接
LM35温度计
LM35 是一种温度传感器,可提供与温度成比例的电压。它在 -55°C 和 +150°C 的温度范围内工作,电源电压为 4 V 至 30 V。其模拟输出等于每摄氏度 10 mV。图 3显示了集成 LM35 及其引脚、应用图和输出与温度相关的特性曲线。将其与 ADC 转换器和 MCU 一起使用时,很容易将电压转换为以摄氏度为单位的温度。
图 3:LM35 温度计端子与输出图和应用图
草图
该程序是用 Arduino IDE 构建的,但使用了 M5Stack 库的一些功能,包括“M5Stack.h”文件。图 4显示了该过程的一般流程图。
图4:程序流程图
草图的初始部分提供了变量的声明和归零。setup() 函数,在固件执行期间仅重复一次,包含以 9600 波特率初始化串行端口,这对于控制和调试操作很有用,初始化引用设备 M5Stack 的 M5 对象,设置TFT 显示器和程序屏幕的固定元素的绘图。每秒循环执行的 loop() 函数包含系统的操作和动态部分。其中,来自 LM35 温度计的样本是通过超级 ADC 采样获得的。模拟端口的扫描在端口号 35 上执行。一般来说,以下端口与模拟输入相关:
通道 1 输入:引脚 35;
通道 2 输入:引脚 36。
必须特别注意超级采样程序,它可以更精确地测量系统分辨率。以下代码进行了非常精确的采样:
总和 = 0;
for (int k = 1; k <= 100; k ++) {
RawValue = analogRead (35);
总和 + = 原始值;
}
总和 / = 100;
电压 = (总和 / 2048.0) * 3300;// 以毫伏为单位
tempC = 电压 * 0.1;
下一步是计算传感器电压和测得的温度。然后计算最低和最高温度,以便清楚地了解一般情况。后两者是通过对变量的特殊检查来计算的,使用以下代码:
双 minTemp = 200;
双最大温度 = 0;
tempC = 电压 * 0.1;
if (tempC> maxTemp)
maxTemp = tempC;
if (tempC
minTemp = tempC;
通过使用模块的特殊图形功能,该信息显示在彩色显示器上。如果列表没有错误,可以编译并加载到 M5Stack 上,它会立即开始工作并显示环境温度测量的结果,如图 5 所示。在这个特定的草图中,用于管理屏幕的功能如下:
M5.Lcd.fillCircle(x, y, r, 颜色);
M5.Lcd.fillRect(x, y, w, h, 颜色);
M5.Lcd.fillScreen(颜色);
M5.Lcd.printf(日期);
M5.Lcd.setCursor(x, y);
M5.Lcd.setTextColor(颜色);
M5.Lcd.setTextSize (n);
显然,该库提供了许多用于管理显示的附加功能,以及专用于其他目的的其他功能。建议读者查看该库的官方文档。
图 5:温度计代码部分截图
用法
温度计的使用非常简单,如图 6 所示。只需打开设备并加载软件。温度是实时测量的。LM35 集成的速度和准确性提供了非常可靠的读数。电路已经包含在一个优雅的盒子中这一事实有助于非常快速地创建一个系统,而无需特殊的容器。用户可以根据自己的不同需求修改设备的功能。
图 6:运行中的温度计
结论
毫无疑问,M5Stack 是一款漂亮的设备和出色的开发系统。基于ESP32,确保安全操作。它已经是其优雅的盒子这一事实允许开发人员避免进一步的设计操作。文章中描述的温度计是一个简单的基础,可以进一步实现,例如,您可以轻松实现以华氏度为单位的温度显示,或者创建全天记录的温度图表,甚至可以将数据保存在 SD 内存中。有很多事情要做。
附件
本文附有温度计的草图。安装正确的库后,只需复制、编译并上传到 M5Stack。附件是:
附件sketch.ino
还应该记住,Arduino IDE 提供了将“.ino”源存储在文件夹中的功能。
m5stack温度
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !