如何使用 Bolt 和 Arduino 来控制 LED 亮度
即使家中不需要,也持续开启灯管照明,不仅成本高昂,有时还会让人感到烦躁。如果能用指尖轻松控制灯管的亮度,那该多好!今天这个项目将帮助你开发一个小型原型,让你只需几个命令就能在家控制灯管亮度。我们将使用 Bolt 和 Arduino 来控制最多六个 LED 的亮度,通过 Arduino 提供的六个 PWM 通道来实现亮度调节。
收集所有所需元件
本项目所需的所有元件如下所示,均可在市场以合理的价格轻松购买到。
1. 螺栓
2. Arduino Uno
3. LED
4. 电阻(330欧姆)
5. 面包板
6. 跳线(公/公)
7. Arduino 用 USB 数据线
Bolt
Bolt 物联网平台让您无论身处何地,都能安全、可靠地控制设备并采集物联网设备的数据。只需点击几下,即可部署机器学习算法,快速检测异常并预测传感器数值,获取实用的洞察。了解更多信息,请访问 boltiot.com。
脉宽调制
该技术用于控制数字信号的振幅,以实现对需要供电或电力的设备和应用的控制。其核心原理是通过快速切换数字信号的开关状态,并调节“开”相的宽度(即占空比),从而控制向设备提供的功率大小。从电压成分的角度来看,这相当于为设备提供一个稳定且具有平均电压值的电源输入,该电压值取决于开启时间所占的比例。了解更多请点击此处。
硬件组装
1. 收集所有部件,并检查LED是否正常工作。
2. 将LED的阴极连接到GND线,阳极连接到一个330欧姆电阻上。
3. 将电阻的另一端连接到6个PWM通道(即引脚3、5、6、9、10和11)。
4. 将Arduino的GND连接到面包板的GND线上。
5. 将Bolt的发送端(Tx)和接收端(Rx)分别连接到Arduino的接收端(Rx)和发送端(Tx)。
6. 最后,将Bolt的5V引脚连接到Arduino的5V引脚,将Bolt的GND引脚连接到Arduino的GND引脚。
注意:有关具体操作,请参考电路图。
设置Bolt
1. 注册以创建账户。
2. 在您的手机上下载 BoltIot 应用,登录账户后添加您的新 Bolt 设备。了解如何添加设备的详细方法。
3. 获取您的 Bolt 设备 ID,如下所示。
4. 要获取您账户的云服务API密钥,请前往“API”并点击“启用”,如图所示。
注意:上述API密钥和Bolt设备ID非常重要,请切勿与任何人共享。
Bolt Cloud API
应用程序编程接口(API)是一组特定的规则(即代码)和规范,软件程序可遵循这些规则进行彼此通信。它充当不同软件程序之间的接口,促进它们之间的交互,类似于用户界面在人与计算机之间实现交互的作用。
Bolt Cloud API 提供了连接Bolt设备与第三方系统(例如移动应用、Web服务器、Python程序等)的通信接口。该API包含非常直观的控制、监控、通信及实用功能,适用于连接到您账户的Bolt设备。
使用Bolt Cloud API调用时,我们需要Bolt设备ID以及之前获得的API密钥。从网页浏览器发起API调用的一般语法如下所示:
其中的被替换为 Bolt Cloud API,以及 Bolt 设备 ID。例如——
Arduino 代码
1. 从 GitHub 下载 boltiot-arduino-helper 库并添加到 Arduino 库中。点击此处下载。
2. 将下方提供的代码上传至Arduino Uno。
注意:在上传前,请先移除Bolt与Arduino之间的Tx和Tx连接线。
使用API控制亮度的调用方法
要通过API控制LED的亮度,我们将使用Bolt云的UART API。首先,通过以下serialBegin API调用来初始化Bolt与Arduino之间的串行通信:
若要以特定亮度打开LED,则需要使用以下serialWrite API调用:
我们需要将参数替换为两个值:第一个参数是需要改变亮度的LED引脚编号,第二个参数是对应该LED的PWM值。
注意:这两个参数之间必须用空格(' ')分隔,且数据变量的末尾也需添加空格。
例如,若要控制第3号引脚(即LED 1)的亮度,PWM值为120,则API调用中的数据变量应如下所示:
注意:数据变量末尾也需留一个空格。
为了获取每次serialWrite API调用的响应,我们随后会使用serialRead API,其调用方式如下:
注意:上述所有API调用中,请将API密钥和Bolt设备ID替换为从Bolt账户获取的相应信息。
工作原理
工作原理非常简单:Arduino会持续检查从Bolt接收到的串行指令。如果指令字符串与“ON”匹配,则执行相应的功能。
当接收到“ON”命令后紧跟数据变量时,Arduino首先从该数据变量中提取引脚编号和PWM值。然后Arduino检查引脚编号是否在有效范围内;若不在,则返回响应消息:“引脚编号应为1到6之间”。
如果一切正常,Arduino便会执行analogWrite指令,向指定引脚写入对应的PWM值,从而控制LED的亮度。完成亮度调节后,它会返回响应消息:“Pin was set to pwm value”(引脚已设置为PWM值)。
通过这种方式,用户可在同一时间最多控制6个LED的亮度。
本文编译自hackster.io





