友情提示:380元/半年,儿童学编程,就上码丁实验室。
Sigfox是当前用于城市规模感测网络传输技术方案之一,已经遍及了全球 50 个国家。(参考Sigfox 网络覆盖的国家范围https://www.sigfox.com/en/coverage)。
使用 BBC micro:bit 连接 Sigfox 物联网网络会是一个很好帮助孩子们理解传感器与感测网络如何运作的理想方式。micro:bit 是新式以电池提供电力的传感器装置典范,上传的感测数据全都来自于 micro:bit 内建的传感器,包含了温度、光线强度与加速器等感测数据。而
micro:bit 物联网装置可以用两颗 AAA 干电池提供电力,让它可以在城市里的任何一处角落运作,免受于电力与网络的种种限制来将装置绑定在特定位置。在这篇文章里,将一步步带着各位创作出专属您的 BBC micro:bit 物联网装置,而且还能像在下方影片里看到的一样,将这个物联网装置连接上 Sigfox 网络。
在上面的影片里,我们可以看到Sigfox 后台会实时显示接收自 micro:bit 上传的感测资料。举例来说,接收到的资料 0017 0310 2310 9860 就包含了讯息序号 0017、温度 31.0、光线强度 231.0 与加速度 986.0(如下图)。
硬件的准备
制作 micro:bit 物联网装置,我们需要以下装置:
1.附有电池盒的 BBC micro:bit 电路板以及两颗 AAA 干电池。
2.给 micro:bit 使用的分线板。在这篇文章里使用的是 Kitronik breakout board。
https://www.kitronik.co.uk/5601b-edge-connector-breakout-board-for-bbc-microbit-pre-built.html
3.采用 WISOL 收发器模块制作的Sigfox 分线板:我们的 micro:bit 将透过 WISOL WSSFM10RxAT 模块传送感测数据到 Sigfox 网络。
要购买 WISOL Sigfox 分线板的话,可以浏览 Sigfox 官方的开发板列表并且点击「Zone」按键来以您的所在区域筛选出合适的产品,例如:射频配置区域 1(RCZ1)适用于欧洲地区、射频配置区域 2(RCZ2)适用于美国。
https://partners.sigfox.com/products/kit?or%5Bcategories%5D%5B0%5D=kit&or%5Bavailability%5D%5B0%5D=available&q=&limit=12&page=0
选择以 WISOL WSSFM10RxAT(x字样是射频配置区域编号)为核心的分线板,并提供 3.3 V 直流电,而非 5 V。例如,在欧洲,您可以选用 SNOC BRKWS01;
https://partners.sigfox.com/products/sigfox-breakout-board-brkws01
在美国,您可以选用 Sea Slug Labs WISOL WSSFM10R 做为分线板(这篇文章是使用此分线板)。
https://seasluglabs.io/collections/frontpage/products/wisol-wssfm10r2-dual-voltage-breakout-board
可以从 Tindie 市集购买到 WISOL Sigfox 分线板。
https://www.tindie.com/products/Upton/breakout-board-of-wisol-module-for-sigfox-network/#
如果您要使用这款分线板,记得依据您的所在区域挑选正确的 U.FL 天线频段:
U.FL 天线
•射频配置区域 1(RCZ 1)适用于欧洲及中东地区,中心频率为 868 MHz
•射频配置区域 2(RCZ 2)适用于美国,中心频率为 902 MHz
•射频配置区域 3(RCZ 3)适用于日本,中心频率为 923 MHz
•射频配置区域 4(RCZ 4)适用于澳大利亚、新西兰及其他亚洲地区,中心频率为 920 MHz
*重点提醒:供电给 micro:bit 之前,务必确定 WISOLSigfox 分线板已经有天线连接,否则将有可能毁损 WISOL 模块。
硬件的连接
将 micro:bit 插入边缘连接器分线板。依据下方图示来将 micro:bit 边缘连接器分线板连接到 WISOL Sigfox 分线板。
•micro:bit Pin P0(TX)→ Wisol Pin RX(Blue)
•micro:bit Pin P1(RX)→ Wisol Pin TX(Green)
•micro:bit Pin 3 V → Wisol Pin 3.3 V(Red)
•micro:bit Pin GND → Wisol Pin GND(Black)
连接完成后,我们的物联网装置看起来应该像这样:提供电力的干电池在左测、U.FL 电路板天线在下侧边缘。这个连结说明了 micro:bit 各个脚位功能。
源代码
进入micro:bit可视化程序编辑工具网页。
1. 点击右侧汇入(Import)按键
2. 点击汇入 URL(Import URL)
3. 输入网址: https://github.com/lupyuen/microbit-sigfox
4. 加载档案后,点击上方的积木(Blocks)来展开可视化程序界面
程序的设置
在上方的 Setup Sigfox 方块里,点击 COUNTRY 下拉式选单,并选取你所在的国家,这将让程序使用各别国家的正确设定值来将感测数据并传送到 Sigfox 网
这个方块同时还指定了传感器名称 tmp、lig 与 acl,后续,我们将会上传这些感测数值到 Sigfox 网络。
点击上方 JavaScript 标签选单,您会发现可视化程序实际上是以 JavaScript 程序的型式储存起来。这一款 JavaScript 类型称为 Static TypeScript。Static TypeScript 已经针对 micro:bit 进行优化,并且能够有效率地编译成机械码,而点击积木(Blocks)标签选单可将画面切换回方块模式。
读取传感器
背景运行(Run In Background)上的三个方块负责定期读取 micro:bit 内建的传感器,并将感测数值上传到 Sigfox 网络。
micro:bit 能在幕后同时进行多项工作,我们借助这项多任务处理的能力以及每一个传感器的处理逻辑来管理每一个传感器,也因此,我们能以不同的时间间隔来读取各个传感器。
温度感测方块读取温度传感器并将温度感测值指定给 tmp 变数。接着,tmp 变量透过 Send To Sigfox 函式传送到 Sigfox 网络。函式的第一个参数(tmp)正是我们即将传送的温度感测值。
温度感测方块会等待 20 秒(也就是 20,000 毫秒),然后才又重复当 True(While True)方块里的执行步骤。
光线强度感测方块与加速器感测方块用着相同的方式运作,同样是先读取 micro:bit 上的传感器,然后在将感测到的数值传送到 Sigfox 网络,要特别注意的是,传感器名称tmp、lig 与 acl 需与 Setup Sigfox 函式里的参数名称一致。
感测数值的汇集
Sigfox 是连接物联网装置的专用网络,所以它只允许传送少量且不常发送的讯息–每则讯息最多 12 个字节、每日最多 140 则讯息。为了达到 Sigfox 讯息传送的优化,我们用三种感测数值组合出一则讯息,并每间隔 20 秒传送到 Sigfox 网络。
我们的 Sigfox 讯息看起来像是这样:0017 0310 2310 9860
其中包含:
•讯息序号(0017)
•温度(tmp = 31.0)
•光线强度(lig = 231.0)
•加速度(acl = 986.0)
micro:bit 配对
下载物联网程序到 micro:bit 之前,我们需要先完成 micro:bit 与计算机的配对。
1. 将 micro:bit 连接到您计算机的 USB 口
2. 点击右上方的更多(More)图示(齿轮状的那个图示),然后点击配对装置(Pair Device)
3. 点击配对装置(Pair Device)对话窗口里的配对装置(PairDevice)
4. 在显示的列表里,选择您的 micro:bit,然后点击 Connect
如果没有侦测到 micro:bit,可以依循指示更新 micro:bit 韧体后,重复上述动作。
https://makecode.microbit.org/device/usb/webusb/troubleshoot
下载并执行程序
点击左下方的下载(Download)按键来将程序下载到 micro:bit。下载完成后,程序就会开始执行。
稍等一下,显示监控台 Show Console(Device)按键就会出现,然后点击这个按键,要确定不是显示监控台(仿真器)Show Console(Simulator)按键喔。
我们看到的这些温度(tmp)、光线强度(lig)与加速度(acl)感测数值的图表是从程序读取传感器后实时转换后绘制出来的。图表下方是侦错控制面板。侦错控制面板里显示着由程序产生的侦错用讯息,这些讯息有助于程序的除错,因为它显示了已经读取到的感测数值以及 Sigfox 讯息的传送状态,需要特别留意这几行:
这是您使用的这个 WISOL 模块独一无二的 Sigfox 装置标识符(Device ID)与授权码(Porting Authorization Code),用于开通您的 Sigfox 网络接取,也可以查看侦错控制面板里的侦错纪录模板。
https://github.com/lupyuen/microbit-sigfox/blob/master/README.md
现在我们的 micro:bit 已经刻录有物联网程序。无论何时,只要 micro:bit 有透过 USB 界面或是干电池提供电力,micro:bit 就是一个不断读取感测数值并上传 Sigfox 网络的物联网装置。
断开 micro:bit 与计算机的连接,并且改以干电池提供电力。现在就来看看由我们的 micro:bit 上传到 Sigfox 网络的讯息吧。
监看 Sigfox 讯息
依 Sigfox 分线板制作者提供的步骤来在线开通 WISOL Sigfox 模块。您将会一步步被导引至 Sigfox 后台主页去注册一个使用者账号。点击 Device→Messages 来确认从您的 micro:bit 上传至 Sigfox 云端的讯息。这些讯息会在后台接收到 micro:bit 上传数据的同一时间,实时显示在屏幕上。如果你发现后台没有接收到任何讯息,试着将 micro:bit 拿到户外,若在室外,则让 micro:bit尽可能靠近窗台。
讯息数据(例如 0017 0310 2310 9860)包含讯息序号(0017)、温度(31.0)、光线强度(231.0)以及加速度(986.0)。
您需要具体化传感器数据吗?或是符合某些感测数据规则时就触发警示吗?这都可以在 Sigfox callback feature 中实现。现在,您有了专属的物联网装置,能用干电池提供电力,也能从城市的任何一处角落发送感测数据了。
作者:李立源 Lee Lup Yuen
参考原文
https://medium.com/@ly.lee/%E9%80%A3%E6%8E%A5-bbc-micro-bit-%E8%88%87-sigfox-%E7%89%A9%E8%81%AF%E7%B6%B2-36b0d453151e?sk=ad9099aabefe2a09ad4956589773621f