从 InPlay IN100 BLE Beacon 传感器到 Arduino ESP32 BLE/WiFi 网桥

描述

该项目演示了一个概念验证,其中来自 InPlay IN100 BLE Beacon 的广播温度数据被 ESP32 上运行的 Arduino BLE 扫描仪应用程序接收。ESP32 解码温度数据,并使用 HTTP post 通过 WiFi 将数据传输到 Machinechat 的 JEDI 物联网应用软件,在那里可以对其进行可视化和操作。

image

硬件

软件

  • JEDI Pro
    适用于物联网数据收集、可视化、监控和数据存储的软件,可集成到物联网解决方案中。功能包括:收集来自传感器、设备和机器的数据;构建直观的实时和历史数据以及系统视图指示板;创建规则,自动监控和响应数据情况;通过电子邮件和短信接收警报通知。

  • Arduino
    Arduino是一个基于易于使用的硬件和软件的开源电子平台。

  • InPlay配置工具
    NanoBeacon配置工具是一个软件程序,用于测试和编写NanoBeacon DK(开发套件)的配置。

背景

Machinechat JEDI Pro是物联网应用软件,能够从多个来源收集数据,包括HTTP,串行,LoRaWAN, MQTT和内部。收集的数据可以通过运行在JEDI上的MQTT代理进行可视化、存储、操作和访问。
InPlay的IN100 NanoBeacon SoC是一款功能强大且高效的BLE信标解决方案,基于其专有的超低功耗SoC设计平台,采用蓝牙5.3技术。IN100消除了对软件编程的需求,使其成为无需代码的SoC设计。为开发人员提供了配置工具,可根据其应用需求为各种操作模式配置器件。

实现

对于这个项目演示,将在InPlay IN100 BLE信标开发套件上设置一个简单的应用程序,每秒发送广播数据。广播数据将包括设备名称“IN100”、VCC数据和内部温度数据。DFRobot ESP32C3开发板将使用Arduino应用程序进行编程,该应用程序包括BLE信标扫描仪功能,以接收和解码来自IN100的广播数据。此外,ESP32连接到WiFi网络和HTTP将温度传感器数据发布到Machinechat JEDI,以便在数据指示板上可视化。

设置InPlay BLE Beacon传感器

1 - 将编程板连接到IN100开发板之一,并从运行Nanobeacon配置工具的计算机插入USB电缆。
image

2 运行配置工具,连接IN100开发板。连接后,将使用Advertising Set#1的默认设置。选择Edit 按钮来配置自定义设置。
image

3 - 在“Advertising Data ”中选择“Settings ”选项卡。
image

4 - 按如下所示配置设置。设备名称“ Device Name 输入“IN100”。对于制造商特定数据“*Manufacturer Specific Data ,将ID保留为默认值,编辑数据以包括VCC和内部温度(大端)。完成设置后,选择Run in RAM* 按钮开始发送广播数据包。
image

设置Beetle ESP32C3 Arduino应用程序

1 - 甲虫ESP32C3上设置Arduino。参见链接Arduino环境配置

2 - 安装应用程序所需的库。通过Arduino的库管理器添加以下库:

ArduinoJson

3 - 为了正确运行,代码大小需要使用Huge (3MB) Partition方案,而不是默认的1.2MB APP和1.5MB SPIFFS分区

image

4 - 最新源代码BeetleESP32C3BLE_InplayBeacon.ino应用程序,在github上的链接如下:

安装Machinechat JEDI

如果尚未安装Machinechat JEDI,请参见以下内容:

配置JEDI数据指示板

一旦IN100开始播放广播,ESP32开始运行BLE扫描仪/WiFi/HTTP应用程序,请检查设备指示板,查看JEDI是否正在接收数据。

image

在JEDI中,选择Data Dashboards 选项卡,然后选择ADD CHART 来添加一个新图表。

image

结论

该项目展示了一种快速简便的方法,通过WiFi将BLE信标传感器数据传递给Machinechat的JEDI物联网应用软件。InPlay的IN100提供低成本、低功耗、无代码的BLE信标技术,可轻松与多种传感器技术结合开发BLE信标传感器。DFRobot的Beetle ESP32C3提供了一个小型、灵活、低成本的ESP32开发板,可在BLE和WiFi技术之间架起桥梁。

更多参考