在我们的
MicroPython编程edge系列的第一篇文章,我们讨论了如何收集传感器读数,并使用
Digi XBee 3蜂窝LTE-M套件,以及Digi的免费配置软件,
数码网络XCTU,以及一些简单的MicroPython代码。欢迎来到本系列的第2部分。
Digis XBee 3系列嵌入式射频模块提供的边缘智能使得将数据发送到云端变得轻而易举。对于这个动手系列中的第二个项目,我们展示了如何将从Digi XBee 3 Cellular LTE-M模块测量的温度读数上传到“数据流”上
数码远程管理器®(Digi RM)
开发者可以免费使用这个数据和设备管理平台。Digi XBee 3 Cellular线支持开放通信标准,因此它还可以与亚马逊物联网平台、微软Azure、Adafruit共享数据。io、b谷歌Cloud IoT、ThingSpeak、IBM Watson等等。在未来的项目中寻找一些实践教程。
我们第一个项目的读者会记得MicroPython是一种基于Python 3的开源编程语言,经过修改以适应小型设备并针对微控制器进行了优化。通过使用MicroPython,您可以从网络边缘快速创建到云服务的连接。
发送数据到数字远程管理器
许多物联网系统将数据提供给互联网上的在线云平台。他们通常在当地采样一些值,比如温度,然后将读数发送到令人眼花缭乱的在线应用程序中的任何一个,用于记录、处理和数据可视化。在这个项目中,我们将使用一个简单的传感器进行一些温度测量,然后将它们作为“数据流”发送到Digi Remote Manager,该数据流可以以不同的方式可视化,通过开放API访问或存储以供以后使用。
我们从“感知、转换和发送值”项目中使用的完全相同的硬件设置开始,包括TMP36温度传感器。
设置硬件
如果你错过了我们的第一篇文章,请访问
边缘计算的动手MicroPython编程示例:第1部分并通过以下项目为第二个项目做准备:
- 入门:演示如何设置所需的硬件和软件。
- Hello World示例:教如何上传代码到Digi XBee 3。
- 感知,转换和发送值:显示如何读取温度读数并将其作为文本消息发送。
一旦您设置好Digi XBee 3硬件,连接TMP36温度传感器,将其连接到配置软件,并在XCTU中打开MicroPython终端,您就可以开始了。你的设置应该看起来像这样:
![XBee3 XCTU TMP36](//www.phdurl.com/images/blog/xbee3-xctu-tmp36-1024x768.jpg)
TMP36, Digi XBee 3 Cellular, XBIB连接到XCTU的MicroPython终端
卡塔尔世界杯8强即时走地关于Digi Remote Manager
Digi Remote Manager使您能够配置和管理动态设备网络,具有一系列应用程序开发,设备管理工具和api。Digi Remote Manager最重要的功能之一是能够在现场的任何地方通过空中(OTA)更新设备。如果您正在构建具有远程、广泛分散或难以访问的模块的应用程序,或者正在构建大型部署,这一点尤其重要。访问
shop.digi.com开始使用Digi Remote Manager。
数字远程管理器帐户设置
如果需要帮助设置或使用帐户,请参阅Digi Remote Manager用户指南。
您的远程管理器帐户的用户名和密码将让您的Digi XBee 3 Cellular上传数据流,在这种情况下温度测量。它提供了一层适合于这个简单示例的安全性。还有许多额外的安全和身份验证层可用于为生产应用程序提供更多的保护,不过我们现在不讨论这些层,只关注基础知识。
图书馆上传
为了使我们的代码更简单、更易读,我们依赖于两个
库上传到Digi XBee 3 Cellular模块内的文件系统。这些库是预先编写的代码的集合。它们提供了简单的方法来调用复杂的例程,而不会使程序本身变得混乱。对于本例,我们将使用remotemmanager库,以及remotemmanager所需的urequests库。
- 在这个GitHub页面上找到remotemmanager .py和urequests.py库:https://github.com/digidotcom/xbee-micropython/tree/master/lib。
- 右键单击每个文件名并选择Download,在计算机上创建每个文件名的本地副本。(GitHub用户也可以克隆或下载整个仓库在这里:https://github.com/digidotcom/xbee-micropython)。
- 将您的Digi XBee 3和XBIB板添加到XCTU后,打开工具菜单和选择文件系统管理器。
- 点击开放将文件系统管理器连接到您的Digi XBee 3s文件系统。
- 导航左侧列中的“本地路径”文件夹,找到刚刚下载的remotememanager .py和urequests.py文件。
- 使用右侧“Remote Path”文件夹打开“lib”目录(“/flash/lib”)。
- 从本地目录中拖动remotemmanager .py和urequests.py文件,并将它们放到远程“lib”目录中,将它们存储在XBee 3上。
- 完成后,关闭“文件系统管理器”窗口。
目前,在REPL中的Ctrl-F提示符处粘贴MicroPython程序是在启动时运行程序的唯一方法。一旦这个粘贴的程序开始执行,它就可以从文件系统导入模块,也可以向文件系统写入文件。从文件系统文件启动在Digis的开发路线图上,所以在未来的固件中期待这个特性。
该模块的配置与第一个模块相同
感知,转换和发送一个值项目。如果有任何变化,将Digi XBee 3 Cellular安装到XBIB板上,并通过USB连接到计算机,启动XCTU程序。
- 添加无线电模块,然后在列表中单击该设备进行配置。
- 双相障碍“波特率”应设置为115200年[7]和美联社API启用设置为MicroPython REPL [4]。
- 使用顶部的铅笔图标将这些设置写入模块。
加载代码
将下面的代码复制到文本编辑器(如Notepad)中。请务必输入您自己的用户名和密码,将“your_username_here"和"your_password_here在上传代码之前。默认情况下,该程序每分钟向Digi Remote Manager数据流发送一次温度读数,持续24小时(1440个样本)。您可以通过更改wait_time或周期变量。
请记住,在上传此示例代码之前必须对其进行编辑。
1 2 3. 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20. 21 22 23 24 25 26 27 28 29 30. 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# Digi XBee3蜂窝数字远程管理器示例 #使用TMP36测量温度并将其发送到Digi远程管理器 #默认每分钟重复一次,共1440次,一天后停止 #输入您的Digi RM用户名和密码,替换“your_username_here”等。在上传此代码之前! 进口RemoteManagerConnection 进口ADC 进口睡眠 进口atcmd 周期重复次数 wait_time测量间隔#秒 用户名输入您的用户名! 密码#输入密码! 设备云连接信息 stream_id温度 stream_type浮动 stream_units华氏度 描述“温度” #准备连接 凭证密码:密码} stream_info“描述”:描述, “id”: stream_id, “类型”: stream_type, “单位”: stream_units} ai_desc={ 连接, REGISTERING_TO_NETWORK, CONNECTING_TO_INTERNET, RECOVERY_NEEDED, NETWORK_REG_FAILURE, AIRPLANE_MODE, USB_DIRECT, PSM_DORMANT, BYPASS_MODE_ACTIVE, MODEM_INITIALIZING, } watch_ai(): old_ai1 0 x00: new_ai人工智能) ! =old_ai: 未知的))) old_ai=new_ai 其他的: 睡眠(0.01) #主程序 #创建连接 rm=凭证) #更新数据源信息 ”“) 试一试: rm。update_datastream (stream_id stream_info) “完成”) 作为艾凡: 状态str(e) \ \ 例外:, e) 真正的: “检查连接…”) watch_ai () “连接”) 范围(周期): #读取温度值并打印调试 temp_pin“D0”) temp_raw。read () %temp_raw) 把温度转换成合适的单位 temperatureC10) %temperatureC) temperatureF32.0); %temperatureF) #发送数据点到Digi RM ”“) 试一试: 状态#将数据发布到设备云 “完成”) 。status_code) 作为艾凡: \ \ 例外:, e) 在周期之间等待 睡眠(wait_time) |
使用它
随着数据到Digi远程管理器示例的运行,每分钟将有一个新的温度测量上传到Digi RM数据流。如果您保持默认设置,您将收到1440个上传,间隔一分钟,或24小时。监控数据流。
- 登录到数字远程管理器,并选择数据服务选项卡。
- 点击名为“temperature”的流来选择它。
- 找到下面的图表和原始数据区域。向上拖动分隔线以扩大该区域可能会有所帮助。
- 点击原始数据查看已上传的数据点
- 点击图表查看温度数据的线形图。可以生成每日、每周、每月和每年的汇总图表。
数字远程管理器有一个完整的API用于与其他在线系统共享您的数据。由于它的RESTful接口,它可以接受来自web浏览器的标准请求(使用HTTP GET)。使用此链接查看您的温度数据。系统会提示你输入用户名和密码。
输出将是XML格式,看起来像这样:
![Digi Remote Manager XML响应](//www.phdurl.com/images/blog/xml-response-drm-1024x707.png)
Digi Remote Manager XML响应
总结
这个Digi Remote Manager示例演示了一种集中物联网系统数据上传的方法。您现在可以创建多个传感器,它们都将数据在线传输到一个中心位置。您创建了您的第一个Digi RM帐户,找到了您的数据并将其可视化。我们还介绍了使用XCTU中的文件系统管理器将库上传到Digi XBee 3蜂窝。文件系统管理器还可以管理许多在线物联网平台所需的密钥文件和安全证书。在未来的文章中,我们将探讨如何将数据上传到其他云应用程序、触发警报、提高电池寿命、降低带宽成本等等。
欢迎您对本系列的反馈。请在下面的评论中提出任何问题或建议。