在SenseCAP K1100传感器原型套件上使用LoRaWAN(一)

原文链接:Getting Started with LoRaWAN on SenseCAP K1100 sensor prototype kit (Part 1) 由Jean-Luc Aufranc撰写。
本文共计 4114 字,预计阅读 8 分钟

备注1:本文翻译自 CNX Software 泰国站。第一部分本文)会介绍该套件,并展示了如何使用 Arduino 对其进行编程从而将传感器数据传输到 LoRAWAN 网关并将其显示在 Wio 终端上之后再使用 Grafana 等开源工具在私有 LoRaWAN 网络中处理数据。下一次则会发布展示该套件 AI 功能的相关文章

备注2:Seeed Studio,即深圳矽递科技股份有限公司,简称“矽递科技”。该公司成立于 2009年,经营范围包括半导体及电子产品、机电设备、计算机、光机电一体化设备的技术开发等。

备注3: Wio 终端即Wio Terminal,是由矽递科技推出的一种基于samd51的微控制器,由Realtek RTL8720DN支持、可以兼容Arduino和MicroPython目前只有Arduino支持无线连接。Wio终端本身配备了2.4LCD屏幕机载IMU(LIS3DHTR)麦克风蜂鸣器microSD卡槽,光传感器和红外发射器(IR 940nm)。除此之外,它还有两个用于Grove生态系统的多功能Grove端口,以及用于更多插件的40个兼容树莓派的引脚GPIO。

备注4:Microchip Technology Incorporated美国微芯科技公司简称“微芯半导体是全球领先的单片机和模拟半导体供应商,为全球数以千计的消费类产品提供低风险的产品开发、更低的系统总成本和更快的产品上市时间。

如今的数字化时代,物联网和大数据的应用更加普遍了。在这些应用的过程中,都需要通过传感器去收集大量的数据。

为了实现数字化转型,矽递科技(Seeed Studio)推出了 SenseCAP K1100 套件。该套件配备了所有必要的传感器和设备,包括 Wio 终端、AI 视觉传感器、LoRaWAN 模块等等。通过这个即插即用的平台,用户就可以轻松地创建出一个传感器,并将其用于数据搜集,从而解决目前面对的各种难题和挑战。

矽递科技的 SenseCAP K1100 传感器套件

在详细查看SenseCAP K1100 传感器套件之前,我们先一起了解一下相关的定义和专业术语:

IOT即“物联网”,是指连接到互联网的设备网络。它可以让我们通过互联网去控制和使用各种设备,例如:多种开关设备、电器、汽车、手机、通讯工具、农业设备、建筑物、房屋,以及我们日常使用的各种家电。

LoRaWAN是“Long Range Wide Area Network”的缩写,是一种基于 LoRa 协议的无线电技术,是专为低功耗远距离的通信而设计。它在物联网开发领域越来越流行,应用场景很多,例如:连接智能设备。

SenseCAP K1100:是由矽递科技设计的一款紧凑型传感器原型套件,应用了 LoRaWAN 和 AI 技术,其开发的主要目的是为了帮助开发人员和制造商们更简单的去创建物联网原型。通过该套件的 Grove LoRa-E5 模块用户还可以为 Wio 终端添加 LoRaWAN 连接,原本 Wio 终端(Wio Terminal)是只能支持 Wi-Fi 和蓝牙无线通信的。本篇文章中,我会重点介绍:如何通过私有 LoRaWAN 网络去收集传感器数据。

SenseCAP K1100 套件的内容

SenseCAP K1100 套件中包含有一个 Wio 终端(Wio Terminal),它是一个兼容 Arduino 的 HMI 控制器,该控制器带有 WiFi 和蓝牙。

矽递科技的 Wio 终端连接到土壤传感器和 LoRaWAN 模块中

矽递科技的 Wio 终端连接到土壤传感器和 LoRaWAN 模块中

Wio终端的规格:

  • MCU – Microchip ATSAMD51P19 Arm Cortex-M4F,运行频率为 120 MHz
  • Wi-Fi 和蓝牙 – 瑞昱RTL8720DN Arm Cortex-M4 微控制器,具有双频(2.4 GHz 和 5 GHz)WiFi
  • GPIO – 40 针,与树莓派相同的针脚位置
  • 板载传感器和功能
    • 板载 3 轴数字加速度计 (LIS3DHTR)
    • 光传感器
    • 麦克风和蜂鸣器
    • 红外线发射器
  • 2.4英寸液晶屏
  • 支持TinyML(人工智能和机器学习)

Wio终端的引脚说明

Wio终端的引脚说明

套件模块部分的规格:

  • 基于STM32WLE5JC MCU的LoRa-E5 LoRaWAN模块;射频功率:+20.8 dBm,支持EU868/US915/AU915/AS923/KR920频段
  • SHT40温湿度传感器模块
  • SGP30 模块作为空气质量传感器(VOC 和 eCO2 气体传感器)
  • 土壤水分模块
  • 带摄像头的视觉 AI 模块

SenseCAP K1100 传感套件的 AI 视觉显示

SenseCAP K1100 传感器的工作原理

SenseCAP K1100 传感器使用光电作为传感元件,之后通过转换将“被测光”的变化转换为电信号。

SenseCAP K1100 光传感器的工作原理

SenseCAP K1100 的温度传感器依赖于热电偶方法。它由 2 根金属线组成,可以形成一个电接头。由于塞贝克效应,热电偶会产生与温度相关的电压,该电压也可以解释为测量温度。

SenseCAP K1100 的相对湿度传感器是通过聚胺膜或醋酸聚合物来测量湿度。当薄膜吸水或失水时,两个电极之间的介电常数会发生变化,电容会被记录下来并转换成电信号。

SenseCAP K1100 上 SHT40 温湿度传感器的数据

开始评测 SenseCAP K1100 套件

前期准备

准备阶段,需要注意我们接下来会用到以下内容来测量环境数据,并将其发送到私有的 LoRaWAN 网络:

  • Wio终端
  • USB Type-C 数据线
  • LoRa-E5 模块
  • SHT40模块
  • 一台主机
  • 一个 LoRaWAN 网关
  • LoRaWAN 云平台

硬件连接

现在,我开始使用 SenseCAP K1100。通过将其连接 SHT40 传感器模块我们就可以测量空气温度和相对湿度,以及 Wio 终端内置传感器和麦克风的光和噪声情况。之后,通过Grove LoRa-E5 模块在开发板和 LoRaWAN 网关之间建立连接。

SenseCAP K1100 与Wio终端、LoRaWAN传感器连接

我们还将使用具有 4G LTE 互联网连接的Dragino LG308 -AS923-TH-EC25 多通道 LoRaWAN 网关。

Dragino LG308 LoRaWAN网关

软件安装及说明

以下是软件部分要遵循的步骤

1、安装 Arduino IDE

2、添加 Wio 终端所需的板文件。在 Arduino 顶部菜单中,转到 tp  File -> Preferences并复制/粘贴https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json进入 Additional Boards Manager URLs 框:

Arduino 首选项:为 Wio 终端添加板文件

3、单击工具 -> 板 -> 板管理器并搜索 Wio 终端。

在 Wio 终端安装开发板

4、现在转到工具 -> 板并选择板Seeeduino Wio 终端

在 Wio 终端选择开发板

5、为 SHT40 温湿度传感器添加 Arduino 库。下载文件 arduino-i2c-sht4x.zip,然后转到Sketch -> Include Library -> Add .ZIP Library并选择 arduino-i2c-sht4x

6、下载 Disk91_LoRaE5.zip 后以同样方式添加 LoRa-E5 Arduino 库

7、在 Seeed_Arduino_LCD.zip 中添加 Seeed Arduino LCD 库

8、然后我们修改了 LoRa-SHT40-TFT.ino 示例的代码以使其适应我们的环境,并在 Wio Terminal 显示屏上显示信息:


9、完成上面的设置之后,我们还需要修改一些代码来设置该 LoRaWAN 板所需的信息,如下所示:

  • DevEUI 编号(8 个字节)
  • AppEUI 编号(8 字节)
  • APPKEY 编号(16 字节)
  • 设置 OTAA 连接
  • 指定工作频段。比如在泰国是AS923

10、现在将程序上传到开发板 Wio 终端。该板的一个优点是它会自动进入 Bootloader 模式,这样我们就不需要按任何按钮了。

SenseCAP K1100 Arduino SHT40 LoRaWAN示例代码

11、打开串行监视器以检查程序的输出。如果一切正常,它将显示 LoRaWAN 连接成功的位置和传感器的值,例如:温度 = 25.46 度,湿度 = 58.39%,光 = 7% 和噪声 = 55 dB

Wio 终端上串行监视器lorawan传感器数据

12、进行到这一步,我们就可以查看 Wio 终端控制器上显示的传感器数了

SenseCAP K1100 上显示出来的 LoRaWAN 传感器

Wio终端板从传感器读取数值后,就会以 AES-128(高级加密标准)格式重新编码,并通过LoRa-E5模块无线传输。如果它在 LoRaWAN 网关的范围内,则数据将被转发到 LoRaWAN 网络,等以下我们一起查看一下。与此同时,这里有一段简短的视频演示,上面展示了显示屏上正在刷新的数据。

相关视频连接,点击此处可查看

编程 Wio 终端时遇到的一个小问题

我尝试通过 Arduino IDE 将程序代码上传到 Wio 终端时遇到了问题。在上传的时候卡住了,就一直不动。

Wio终端 Arduino选择端口时出现错误

因为计算机无法识别 Wio 终端,并显示错误“未知 USB 设备(设备描述符请求失败)”,如下图所示。

未知USB设备描述请求失败

尽管我多次尝试手动重置板子并进入 Bootloader,但尝试下图中的方法时仍不成功。

Wio复位端子

所以我决定联系矽递科技帮助我解决这个问题,但他们的技术支持教给我的方法跟我使用的是一样。一番折腾之后,我发现原来解决问题的关键是“快速双击”,最初我按了两次按钮,比较快,但速度还不够。反复滑动开关多次尝试后,我终于能够再次使用 Wio 终端了。(我无法计算我尝试了多少次,总之次数很多!)。

这意味着计算机终于可以再次正确地读到 USB 端口了,我们可以在正常情况下继续评测了。先不要太开心,重点来了,如果进行到这一步板子再次卡住不动了,我们就需要手动进入 Bootloader 模式。

私有 LoRaWAN IoT 本地平台

SenseCAP K1100 的 LoRaWAN网络线性调频堆栈

现在我已经将 SenseCAP K1100 套件中的数据发送到网关中了,我会通过个人私有的 LoRaWAN IoT 平台对其进行处理。它基于各种开源组件,如下所述:

  • ChirpStack开源 LoRaWAN 网络和应用服务器,注册 LoRaWAN IoT 设备号并通过充当发送者(发布)的 MQTT 代理(消息队列遥测传输)以 AES128 格式解密接收到的数据

Chirpstack 上的数据展示

Chirpstack 上的数据展示

  • 用于编程、基于 Node-RED 流的开发工具。它是通过 MQTT 协议从 ChirpStack 接收(订阅)并从有效负载中获取数据并根据 BASE64 格式对其进行解码。它将传感器数据存储在 InfluxDB 数据库中,并在 LINE 通知应用程序中检查和配置通知设置

SenseCAP K1100 的 LoRaWAN SHT40 Node Red

  • InfluxDB是一个开源的时间序列数据库,存储传感器和 LoRaWAN 网关数据,并自动按时间序列排序,这让我们可以分析任何时间段的数据

InfluxDB Studio SensorCAP K1100数据库

  • 我还使用了 Grafana实时仪表板来可视化来自 InfluxDB 数据库的数据

SenseCAP K1100在 Grafana 的可视化

  • LINE Notify:当传感器高于或低于指定值时,LINE 消息应用程序只会通过 LINE Notify API 通知我们一次,这就意味着不会有重复值的通知

写在最后:SenseCAP K1100 的受众群是谁?

我个人认为 SenseCAP K1100 传感器原型套件适用于希望使用 LoRaWAN 无线连接来创建具有各种传感器的原型、编写代码 (Arduino) 和测试概念验证 (PoC) 的学生、教学者、制造商的实验者等人群。但是,如果想要应用于实的应用中,工业级类的传感器还是更加适合和可靠。以上这些内容就是目前我从矽递科技及供应商处得知的。

十分感谢矽递科技给我寄送的 SenseCAP K1100 传感器原型套件。它目前的的售价 99 美元,运费需要另外付。在下次的评测中,我将使用 Grove Vision AI 模块来测试 SenseCAP K1100 用于人脸检测时的具体情况。

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论