介绍
随着物联网技术的发展,越来越多的硬件设备被连接到互联网。meshblu-connector-arduino 是一款 npm 包,它提供了物联网设备与 meshblu 云服务进行连接的功能,支持 Arduino 设备。这篇文章将逐步介绍如何使用 meshblu-connector-arduino 包进行物联网设备连接。
安装
在启动 meshblu-connector-arduino 之前,我们需要先安装一些必要的软件及硬件:
- 安装 Node.js,确保版本号大于 6。这个软件包含了 npm,可以方便地安装和管理 meshblu-connector-arduino。
- 安装 Arduino IDE,这是 Arduino 开发环境,可用来编写和上传代码到 Arduino 物联网设备上。
- 连接 Arduino 设备到计算机,确保计算机可以识别设备。
接下来,我们打开命令行工具,输入以下命令开始安装 meshblu-connector-arduino:
npm install meshblu-connector-arduino --save
开始使用
准备硬件
在连接设备到互联网之前,我们需要先准备好设备硬件及网络连接。在这个例子中,我们使用 ESP8266 Wi-Fi 模块连接到 meshblu 服务,这个模块可以通过串口通讯连接到 Arduino 上。
第一步是设置 ESP8266 Wi-Fi 模块的 Wi-Fi 信息,可在 Arduino IDE 中上传以下程序:
-- -------------------- ---- ------- -------- ------------------ -------------- ------------ --- ---- ------- - --------------------- ------------------------ ------------ ---------------------------- ------------ --------------------------------- ----------- ------ ---- - -------------------- ------ --- - ------------------------ ------ ------- - --------------------- - ---- - ------- - --- - ----- --------------------------- ------------- ------------------------------ - ---- ------ --
这个程序读入了 Wi-Fi 网络的信息,包括 WiFi 名称和密码,并把信息发送给 ESP8266 Wi-Fi 模块。ESP8266 Wi-Fi 模块会连接到指定的 Wi-Fi 网络。
安装好硬件后,我们开始准备上传代码到 Arduino 上。
上传代码
首先,我们需要在 Arduino IDE 中打开一个新的项目。在打开窗口中,我们可以对项目名和路径进行编辑,也可以选择存放位置。在打开项目后,我们需要输入以下信息为新的项目创建 Sketch:
-- -------------------- ---- ------- -------- ------- -------- -------- -------- --------------- -------- -------------------- ---------------- ----------------- ---------- ------------ ---- ------- - ------------------- ----- --------- -- -------------------- -------------- ----- -------------- -- ------------- - ------------ -------------------------- -- ---------- - --------------- -------------------------------- -------------------------- - ---- ------ - ----------------- - ---- ------------------------ ---- - - ---- --------- - ----------- ---- - ------------------------------ ----------- - ------ ---- --------------------------- -------------------------- -
注意,[server]
,[uuid]
,[token]
,[ssid]
,[password]
都需要被替换为自己的配置,可以通过 meshblu 云服务的后台控制台获得。
我们提供了三个函数:
onAssemble
,当有来自云平台的自定义消息时会被调用。onReady
,在成功连接到 meshblu 后调用,这表明设备已经准备好通信了。loop
,这个函数包含了大多数的设备逻辑。它将不断调用meshblu.update()
方法,以保持设备与云服务的通信连接。
最后,我们使用命令行上传 Sketch 到 Arduino:
arduino-cli compile --fqbn arduino:avr:uno sketch arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno sketch
其中,--fqbn
指定了硬件的类型,/dev/ttyACM0
是连接到计算机的串行地址。Sketch 应该可以编译和上传到设备上。
远程控制和数据订阅
现在我们已经把设备连接到了 meshblu 弹性消息总线上,可以通过其他设备或在线控制台远程控制设备或订阅它的数据。在这个例子中,我们将使用物联网控制台的演示版,它包括一个网页控制器和全局性命令行窗口。
从下面的代码字符串中复制 UUID,此 UUID 在代码中输入到 meshblu 实例。ID 将保留一段时间,以便可以使用控制台将消息发送到设备。
-- -------------------- ---- ------- ------------------------- ------------ --------------- -------- ----------------------- ------ ---- ------- ------------- ----------------- ---------- ---- ---------- - ---------- -------------- ----------- ---- - --- ---
在 meshblu 控制台中,创建一个新的配对(Pairing),并添加该配对的 UUID 到库存存储库(Inventory Archive)中。在 meshblu-connector-arduino 代码中添加 meshblu.onMessage(&onMessage);
,其中 onMessage
函数将会在 Meshblu 实例接收到消息时被调用,它可以用来控制设备。
-- -------------------- ---- ------- ---- --------------- ---- - --------- ----- ---- - -------- ----- ---- - --------------- - ------------------- ---------- -------------------- --------- ----- ----- --- - ----------- -- ------------ ----- -- -- - ------------------------- ------ - ---- -- ------------ ------ -- -- - ------------------------- ----- - -
修改 onReady
函数,以添加 meshblu 实例的订阅程序:
void onReady() { meshblu.subscribe("config"); JsonObject& data = meshblu.createMessageObject(); data["msg"] = "Hello from meshblu-connector-arduino"; meshblu.sendMessage(data); }
更新文件并上传插件到设备后,在控制台中使用“LED”和“on”和“off”命令,以测试控制设备的远程命令。
结论
通过学习本文,您已经了解了如何准备硬件并如何使用 meshblu-connector-arduino npm 包来控制 IoT 设备。您现在可以远程控制设备或订阅其数据。如果您更深入地阅读 meshblu-connector-arduino 的文档,您可以发现更多细节,并在更广泛的物联网项目中获得更多好处。此外,您可以自己尝试使用mqtt库或node-serialport包直接与Arduino通信以连接IoT设备。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f401d8e776d08040c76