在本文中,我们利用Espruino Pico设计了一个简单的热传感器,它能够在超过特定温度时触发报警器并驱动更强大的负载。通过修改代码,还可以创建高效的“窗口热控制”。
Espruino Pico(图1)是一块带有Arm Cortex STM32F401CDU6微控制器(MCU)、内置JavaScript解释器和PCB板载USB端口的小型电路板。可以使用非常易用的Chrome app Espruino Web IDE对其进行编程。它的一些技术特点如下:
可以使用集成变量LED1和LED2从固件访问红色和绿色两个LED二极管。还可使用BTN变量通过软件管理按钮。通过连接设备并按下按钮,DFU引导加载程序将会启动,这样就可以更改所有Espruino Pico固件。其上还带有JST鼓垫,用于安装JST PHR-2表贴连接器。有关该设备的更多信息,请访问Espruino Pico的网站。
图1:Espruino Pico及其引出线。
如图2所示,Espruino Pico的主要编程方式有:
可通过点击编辑器上的特定按钮实现两种语言之间的切换。因为两个源程序是同步的,所以一种编程语言中的所有更改都会反映在另一种编程语言中。可以将固件加载到设备中(连接到USB),然后通过按下另一个按钮通过虚拟串行通道(例如COM8)进行跟踪。显然,计算机已识别了该物品。
图2:Espruino Pico签名编程和上传。
购买新设备的第一步就是要熟悉它。除了传统的LED二极管闪烁(相当于编程语言全球性的“Hello world”)之外,Espruino Pico一项特别有用的操作是使用特定传感器来测量温度,该方法也适用于多种变量。该原型的操作特性非常基本、简单,但它可以在未来调整硬件和软件,从而产生更多有用、专业的系统。其特点可概括如下:
此外,信号灯的操作模式如下:
元器件的布线原理图或简单接线如图3所示。可以在面包板上完成组装,也可以使用一些跳线来实现,这样非常适合连接到Espruino Pico的引脚。LM35模拟温度计需要采用4V至20V的连续滤波电压进行供电。必须要将电池、温度计和智能设备连接起来;还必须将LM35的模拟输出直接连接到Espruino Pico B1端口,而在系统中作为ADC模拟输入进行管理。本项目中将所开发的系统连接到PC的USB接口进行供电,并可以直接在浏览器中查看温度。
图3:Espruino Pico上的温度计接线。
固件是采用Javascript所编写,非常简单。显然,我们必须熟悉这种美妙的编程语言的原理。经典语言系统的程序员(C、C++和Basic)会发现Javascript语言强加了几个区别。“function(函数)”功能是整个系统运行的核心,它包含在“setInterval”函数中,因此可以在整个时间内连续重复进行。事实上,开发环境中没有“loop(循环)”函数,这是Arduino系统的典型特征。对LM35温度计所产生的电压进行模拟测量在无限循环内执行。其输出与温度成正比并且是线性的(以℃为单位)。它不需要外部校准,测量范围为–55℃至150℃,模拟输出范围为–550mV至1,500mV,使用起来非常简单且价格实惠。其所消耗的电流大约为60µA。在ADC读数中,Espruino Pico会返回一个介于0和1之间的数字电压,作为0V和3.3V之间的等效输入电压。建议各位阅读一下这方面的文档。该代码的超采样功能可实现更精确、稳定的测量。可以使用以下示例了解系统如何解码25℃的温度:
因此,通过三个控件对所获得的温度进行比较,就可预测三种不同的报警操作条件:
每一秒,整个循环都会无限重复。下面列出了Javascript源代码。
var reading;
var average;
var i;
setInterval(function() {
average = 0;
for (i = 0; i < 100; i++) {
reading = analogRead(B1);
reading = reading * 3.3;
reading *= 100;
average += reading;
}
average = average / 100;
console.log(average);
if(average > 23) {
LED1.write(true);
LED2.write(false);
}
if(average < 18) {
LED1.write(false);
LED2.write(true);
}
if(average >= 18 && average <=23) {
LED1.write(false);
LED2.write(false);
}
}, 1000);
原型使用起来真的很容易。现在要做的就是连接各种设备。图4显示了所观察到的温度如何以1s的时间间隔显示在Web编辑器上。
图4:使用Espruino Pico的温度计操作。
本文提出了全功能温度计的基本结构。该系统还可通过添加功率控制装置启动大负载,以及监控和数据存储系统进行图形计算和统计,实现极大的扩展。
(原文刊登于EDN姊妹网站EEWeb,参考链接:Building a Thermal Alarm with Espruino Pico,由Franklin Zhao编译。)
本文为《电子技术设计》2023年2月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里。