在本文中,我们使用Espruino Pico构建了一个简单的热传感器,该传感器能够在超过特定温度时触发警报并驱动更强大的负载。通过修改代码,可以创建高效的“窗口热控制”。
介绍
Espruino Pico(图 1)是一个带有ARM Cortex STM32F401CDU6 微控制器、内置 JavaScript 解释器和 PCB 安装 USB 端口的小板。可以使用非常易于使用的 Chrome 应用程序 Espruino Web IDE 进行编程。它的一些技术特点如下:
CPU:ARM Cortex STM32F401CDU6
22个GPIO引脚
九个模拟输入
21 个 PWM
两串
三个SPI
三个I2C
每个 GPIO 端口在 3.3 V 下工作,但也能很好地承受 5 V
针脚间距:两组2.54mm的九针和一组1.27mm的八针
板上的两个 LED 二极管(红色和绿色)和一个按钮
板上 3V 和 250mA 稳压器,用于 3.5V 和 16V 之间的输入电压
板载 FET 可用于驱动大电流输出
电流吸收:在睡眠模式下,仅 0.05 mA,2,500 mAh 电池的电池寿命超过 2.5 年
尺寸:15 × 33 × 3 毫米
重量:2克
使用集成变量 LED1 和 LED2,可以从固件访问红色和绿色 LED 二极管。可以使用 BTN 变量通过软件管理按钮。通过按下按钮连接设备,将启动 DFU 引导加载程序,允许您更改所有 Espruino Pico 固件。JST PHR-2 表面贴装连接器有 JST 鼓垫。有关该设备的更多信息,请访问 Espruino Pico 的网站。
图 1:Espruino Pico 及其引脚
编程 Espruino Pico
如图2所示,Espruino Pico的主要编程方式有:
通过 JavaScript
通过基于 Scratch 的图形编程语言
通过点击编辑器上的特定按钮可以在两种语言之间切换。因为两个源程序是同步的,所以一种编程语言中的所有更改都反映在另一种编程语言中。固件可以加载到设备中(连接到 USB)并通过按下另一个按钮(例如 COM8)通过虚拟串行通道进行跟踪。显然,计算机必须识别出该项目。
图 2:Espruino Pico 签名编程和上传
原型
购买新设备的第一步是熟悉它。除了 LED 二极管的常规闪烁(相当于编程语言的全局“Hello world”)之外,Espruino Pico 方法的一个特别有用的 *** 作是使用特定传感器测量温度,该方法适用于多种变化。 。 该原型机的 *** 作特性非常基本且极简,但它可以在未来对硬件和软件进行调整,以生产出更有用和更专业的系统。其特点可概括如下:
使用 LM35 传感器进行温度测量
通过超级采样提高测量精度
直接在 Espruino Web IDE 控制台上显示温度
在某些热条件下打开两个 LED 二极管
此外,光信号的工作模式如下:
如果温度高于 23°C,则红色 LED 二极管亮起。
如果温度低于 18°C,则绿色 LED 二极管亮起。
如果温度在 18°C 和 23°C 之间,则所有 LED 保持关闭。
接线示意图,或者更好的是,组件的简单接线如图 3 所示。组装可以在面包板上完成,也可以使用一些跳线完成,它非常适合连接到 Espruino Pico 的引脚。为 LM35 模拟温度计供电需要 4 V 至 20 V 的连续滤波电压。电池、温度计和智能设备的质量必须连接。LM35 的模拟输出必须直接连接到 Espruino Pico B1 端口,在系统中作为 ADC 模拟输入进行管理。在这个项目中,开发系统连接到 PC 的 USB 端口供电,并直接在浏览器中查看温度。
图 3:Espruino Pico 上的温度计接线
固件
用 Javascript 编写的固件非常简单。显然,您必须熟悉这种奇妙的编程语言的原理。经典语言系统程序员(C、C++ 和 Basic)会发现 Javascript 语言强加的几个区别。“功能”特性是整个系统运行的核心。它包含在“seTInterval”函数中,因此它可以在整个时间连续重复。事实上,开发环境中并没有 Arduino 系统典型的“循环”功能。LM35 温度计产生的电压的模拟测量在无限循环内执行。它的输出与温度成正比和线性(以摄氏度为单位)。它不需要外部校准,测量范围为 –55˚C 至 150˚C,适用于 –550 mV 至 1,500 mV 范围内的模拟输出。它使用起来非常简单且价格合理。它吸收约 60 µA 的电流。在 ADC 读数中,Espruino Pico 返回一个介于 0 和 1 之间的数字电压,作为 0 V 和 3.3 V 之间的等效输入电压。我们建议您阅读这方面的文档。该代码的超级采样功能可实现更精确和稳定的测量。我们可以通过一个示例来了解系统如何解码 25˚C 的温度:该代码的超级采样功能可实现更精确和稳定的测量。我们可以通过一个示例来了解系统如何解码 25˚C 的温度:该代码的超级采样功能可实现更精确和稳定的测量。我们可以通过一个示例来了解系统如何解码 25˚C 的温度:
LM35 温度计提供 0.25 V 的电压(相当于 25°C 时的 250 mV)。
门 B1 的读数返回值 0.0833(对应于 250 mV)。
该值乘以 3.3,以便将其标准化到 0-3 的范围:0.25。
最后,将该值乘以 100 以将其转换为摄氏度。
因此,通过三个控件比较获得的温度,以预测三种不同的警报 *** 作条件:
如果温度高于 23˚C,红色 LED 二极管打开,绿色 LED 关闭。
如果温度低于 18˚C,绿色 LED 二极管打开,红色 LED 关闭。
最后,如果温度在 18°C 和 23°C 之间,两个 LED 都会关闭。
每一秒,整个循环无限期地重复。下面列出了 Javascript 源代码。
变量读取;
var 平均值;
变量我;
设置间隔(函数(){
平均值 = 0;
对于 (i = 0; i 《 100; i++) {
阅读=模拟阅读(B1);
阅读=阅读* 3.3;
读数 *= 100;
平均+=阅读;
}
平均值 = 平均值 / 100;
控制台.log(平均);
如果(平均 》 23){
LED1.write(true);
LED2.write(false);
}
如果(平均 《 18){
LED1.write(false);
LED2.write(true);
}
如果(平均 》= 18 && 平均 《=23){
LED1.write(false);
LED2.write(false);
}
}, 1000);
原型应用
使用原型真的很容易。您现在要做的就是连接各种设备。图 4 显示了观察到的温度如何以 1 秒的时间间隔显示在 Web 编辑器上。
图 4:使用 Espruino Pico 的温度计 *** 作
结论
文章中已经提出了全功能温度计的基本结构。通过增加启动大负载的电源控制设备,以及用于计算图表和统计的监控和数据存储系统,系统可以大大扩展。
审核编辑:郭婷
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)