0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MicroPython软件相结合的无线设计方案

工程师兵营 来源:互联网 作者:佚名 2018-06-25 09:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

物联网 (IoT) 应用的开发人员需要确保他们的无线传感器系统能够无缝连接到基于云的软件和服务。但是,这通常需要选择和使用多个无线接口。确保这些接口都能满足他们的要求,可让他们不再将注意力集中在更高级别的物联网应用本身。

为了解决这个问题,许多供应商都提供了开发板和软件,帮助物联网开发人员快速部署能够通过局域网、中型网络和广域网进行无线连接的传感器设备。

本文将介绍 Pycom Ltd.提供的一个此类解决方案,并说明其特征和特性,然后展示如何应用。

对于大多数物联网应用而言,高效的无线连接是物联网设备设计的关键要求。迄今为止,没有任何一种无线技术成为首选的连接解决方案。事实上,没有任何一种无线技术可能占据优势地位,因为无线提供商总能提供更加有效的替代方案。

物联网应用的使用案例非常多,这就使得单一连接解决方案的概念变得更加复杂。相同的物联网应用可能提出不同的连接要求,这取决于用户的物理位置、数据吞吐量要求和其他条件。有时,同一个应用可能要求同一部物联网设备支持使用蓝牙与附近用户进行交互,使用 Wi-Fi 与其他本地资源交互,使用 LTE 蜂窝网络在 Wi-Fi 范围外保持连接,甚至是使用 LoRaWAN 或 SigFox 与流入中央物联网网关或控制器的其他地理位置分散型物联网设备相连接。

如果这些设备能够支持使用所有这些技术进行灵活连接,那么将为物联网应用开发人员带来显著竞争优势。早期实现这种多技术连接的方法导致设计过于复杂、成本过高,或者体积过大,以至无法满足物联网设计要求。即使使用较早的无线收发器,开发人员也面临着与射频信号路径优化、降噪、物理布局等相关的挑战。

对于开发人员而言,为单个无线技术构建优化的硬件解决方案已经非常困难。在旨在支持多种无线技术的硬件设计中,复杂性甚至还会显著增加。即便在设计了合适的硬件之后,软件工程师还要应对物联网设计中争夺相同有限资源的多个协议栈和软件服务。

不足为奇的是,有效的多技术无线连接解决方案的部署,在最好的情况下也是有限的。Pycom 的多技术无线板和软件可降低无线物联网开发的复杂性,只需组合一些硬件和软件即可,从而解决了这些难题。

无线选项

Pycom FiPy 和 GPy 是 55 x 20 x 3.5 毫米(mm)板,旨在为物联网设计提供完整的多技术无线解决方案。与大多数无线产品不同,FiPy 支持蓝牙 4.2、IEEE 802.11b/g/n Wi-Fi、窄带 LTE、LoRaWAN 和 Sigfox。GPy 板不包含 LoRaWAN 和 Sigfox,但提供与 FiPy 相同的功能。本文重点介绍 FiPy 板。

在物联网设计产品中,支持 LTE 蜂窝网络是一种快速兴起的趋势。Pycom 的 LTE 解决方案是为其不断扩大的支持蜂窝网络的电路板系列而设计的,支持 LTE Cat M1 和 NB-IoT,在降低功耗的同时保持与大多数物联网设备要求相符的吞吐量水平。通过利用这些不同的连接选项,开发人员可以优化其无线实现,以满足静态或动态应用对范围、吞吐量和功耗的需求。

该板为除连接之外的物联网设计要求提供了一个合适的平台。FiPy 的核心是 Espressif ESP32 SoC,集成了双处理器、8 MB 闪存、4 MB 的 RAM,还有一个提供蓝牙和 Wi-Fi 连接的射频无线电子系统。当网络处理器执行通信协议栈时,主处理器可以运行用户代码。

SoC 带有多通道 12 位模数转换器 (ADC) 和一对 8 位数模转换器 (DAC),可以满足基本物联网感测要求。除了标准串行接口、GPIO 和串行接口,Pycom 还通过板的可配置端口,提供模拟和射频功能(图 1)。

Pycom FiPy 板图片(点击放大)

图 1:Pycom FiPy 板引出了其处理器的引脚,开发人员可以将其映射到处理器的集成模拟和数字功能。(图片来源:Pycom)

除了广泛的功能外,FiPy 还提供节能特性,以满足以电池供电的物联网设计的节能要求。例如,开发人员可以将处理器置于深度休眠模式,并使用专用的超低功耗 (ULP) 处理器来处理 I/O 活动,电力消耗低至 25 微安 (μA)。ULP 处理器独立于主处理器工作,可执行用户代码来访问 GPIO,或者使用 SoC 的集成 ADC 或 DAC 执行数据转换,为开发人员提供灵活的低功耗操作平台,而不会影响外设工作。

插件硬件增强

对于具有更广泛感测要求的物联网设计,开发者可将 FiPy 与 Pycom 的 Pysense 感测板和 Pytrack 位置跟踪板结合起来。

对于感测应用,Pysense 板提供 STMicroelectronics LIS2HH12 加速计Silicon Labs SI7006-A20 温度/湿度传感器、Lite-On LTR-329ALS-01 环境光传感器、NXP Semiconductors MPL3115A2 压力传感器——所有这些均通过板的共享 I2C 串行总线进行连接(图 2)。在正常工作状态下,所有这些传感器都消耗最小的功率。例如,NXP MPL3115A2 压力传感器在正常采样模式下仅消耗 40 μA,而功耗最大的传感器 Lite-On LTR-329ALS-01 环境光传感器则消耗大约 250 μA。其他两个传感器分别消耗大约 150 μA。

将 FiPy 插入 Pysense 板图片

图 2:通过将 FiPy 插入 Pysense 板,开发人员可以构建出能够使用多个无线连接选项的多传感器物联网设备。(图片来源:Pycom)

由于 Pysense 和 FiPy 的功耗需求相对较低,开发人员可以使用电池运行基于 Pycom 的设计长达数年。Pysense 板包括 Texas Instruments 的 BQ24040 电池充电器 IC 和连接器,使用带有 JST 连接器的合适可充电电池(例如 TinyCircuits ASR00007 270 毫安小时 (mAh) 锂离子聚合物 (LiPo) 电池)为设计供电。

对于位置跟踪应用,Pytrack 板结合了精确的全球导航卫星系统 (GNSS) GPS 传感器和加速计,以及与 Pysense 中所用相同的 LiPo 电池充电子系统。

Pysense 和 Pytrack 传感器板上的针座提供了一个简单的解决方案,可构建专用于每个物联网应用的硬件平台。开发人员只需将 FiPy 板插入适当的扩展板,即可创建特定的硬件配置。对于不需要 LoRaWAN 或 Sigfox 连接的应用,开发人员可以改为使用 GPy 板。

插件软件增强

对于原型开发而言,组合多个板来扩展整体硬件功能是常见而重要的功能。但在过去,基础设计的硬件增强可能会在软件方面带来重大挑战,因为开发人员要努力寻找和集成支持特定硬件配置所需的不同软件驱动程序和中间件。由于能够支持 MicroPython,Pycom 让应用软件开发变得非常简单,就如同将插件板用于物联网设备硬件一样。

MicroPython 采用 Python 语言,利用面向硬件的支持来增强其功能。同时,MicroPython 消除了嵌入式系统中不需要的 Python 功能,增强了性能,同时减少了资源受限的嵌入式设计的存储器空间占用。

与 Python 相同,MicroPython 让开发人员只需导入一个模块即可添加特定软件功能。例如,开发人员只需加载 ADC 模块和读取值,即可对 FiPy 的集成 ADC 进行编程(列表 1)。

Copyimportmachineadc=machine.ADC()#createanADCobjectapin=adc.channel(pin='P16')#createananalogpinonP16val=apin()#readananalogvalue

列表 1:与 Python 相同,MicroPython 允许开发人员通过导入软件模块来增强其软件功能,从而提供了一种简单方法来添加硬件特定的功能,如从模数转换器 (ADC) 读取数据,如下所示。(代码来源:Pycom)

正如开发人员可以轻松地通过扩展板来增强设计一样,他们可以通过导入适当的模块来增加补充支持。将无线板插入扩展板后,开发人员只需将相应的 MicroPython 模块添加到其代码中即可。

MicroPython 的编程模型让开发人员能够无缝地使用这些模块来快速实现物联网应用。与列表 1 所示的对 ADC 硬件的软件支持相同,对硬件扩展(例如 Pysense)的软件支持只需开发人员导入相应的模块即可。除了一套完整的传感器专用模块,还提供了演示其在典型软件应用中使用的示例软件,可以随时使用。例如,为了读取 Pysense 的 SI7006A20 温度和湿度传感器,在实例化用于读取传感器的温度值 (si.temperature()) 和湿度值 (si.humidity()) 的 SI7006A20 对象 (SI7006A20(py)) 之前,开发人员只需导入 Pysense 模块和传感器专用模块(列表 2)。

CopyfrompysenseimportPysensefromLIS2HH12importLIS2HH12fromSI7006A20importSI7006A20fromLTR329ALS01importLTR329ALS01fromMPL3115A2importMPL3115A2,ALTITUDE,PRESSUREpy=Pysense()mp=MPL3115A2(py,mode=ALTITUDE)#Returnsheightinmeters.ModemayalsobesettoPRESSURE,returningavalueinPascalssi=SI7006A20(py)lt=LTR329ALS01(py)li=LIS2HH12(py)print(mp.temperature())print(mp.altitude())mpp=MPL3115A2(py,mode=PRESSURE)#ReturnspressureinPa.ModemayalsobesettoALTITUDE,returningavalueinmetersprint(mpp.pressure())print(si.temperature())print(si.humidity())print(lt.light())print(li.acceleration())print(li.roll())print(li.pitch())print(py.read_battery_voltage())

列表 2:开发人员可以学习 Pycom Pysense API 和相关软件示例,以便使用 Pycom Pysense 硬件板中集成的传感器特定 MicroPython 模块。(代码来源:Pycom)

由于采用了这种模块化方法,实现无线连接同样简单。开发人员只需为所需的无线技术导入适当的模块,以及用于 HTTPS 或 MQTT 等协议的其他模块。除了这些无线通信模块之外,Pycom 示例软件还演示了开发人员如何快速建立 Wi-Fi 连接,并使用 MQTT 与 Adafruit IO 等基于云的服务进行交互(列表 3)。Adafruit IO 在原型开发免费服务计划中提供,是简单的云资源,设计用于创建物联网数据流流程,包括输入数据流、数据管理和分析。

CopyfrommqttimportMQTTClientimportmachineimporttimefromnetworkimportWLANdefsub_cb(topic,msg):print(“Received:“+msg)wlan=WLAN(mode=WLAN.STA)wlan.connect("yourwifinetwork",auth=(WLAN.WPA2,"wifipassword"),timeout=5000)whilenotwlan.isconnected():machine.idle()print("ConnectedtoWifi\n")client=MQTTClient("device_id","io.adafruit.com",user="your_username",password="your_api_key",port=1883)client.set_callback(sub_cb)client.connect()client.subscribe(topic="youraccount/feeds/lights")whileTrue:print("SendingON")client.publish(topic="youraccount/feeds/lights",msg="ON")time.sleep(1)print("SendingOFF")client.publish(topic="youraccount/feeds/lights",msg="OFF")time.sleep(1)

列表 3:Pycom 的示例软件演示了开发人员如何使用几个简单的 Wi-Fi 模块调用(以黄色突出显示),通过 MQTT 与基于云的资源(例如此处所示的 Adafruit IO)进行交互。(代码来源:Pycom)

Pycom 多技术无线板与 MicroPython 相结合,为开发无线物联网设计提供了强大的平台,能够动态响应不断变化的连接环境。很多物联网应用都要求随时访问传入的数据流。但是,举例来说,每当局域网发生故障,或者由于干扰或网络事件导致本地 Wi-Fi 信号强度下降时,应用将无法访问旨在通过 Wi-Fi LAN 与云进行交互的物联网设备。但是,对于 Pycom 板,开发人员只需切换到另一个无线连接选项即可。

例如,要通过 LTE 蜂窝服务连接,开发人员只需使用 MicroPython LTE 模块。相同的底层方法允许开发人员在 Wi-Fi 和 LTE 蜂窝连接之间进行切换,而无需更改构建来与主机交互或提供应用级别功能的更高级代码。例如,要使用 LTE 连接,开发人员只需加载 LTE 模块,并且实例化相应的 LTE 对象,然后连接到提供商服务。因此,开发人员只需稍作改动,即可在应用中切换到 LTE 连接(列表 4)。

CopyfrommqttimportMQTTClientimportmachineimporttimefromnetworkimportLTEdefsub_cb(topic,msg):print(“Received:“+msg)lte=LTE()lte.connect()whilenotlte.isconnected():machine.idle()print("ConnectedtoLTE\n")client=MQTTClient("device_id","io.adafruit.com",user="your_username",password="your_api_key",port=1883)client.set_callback(sub_cb)client.connect()client.subscribe(topic="youraccount/feeds/lights")whileTrue:print("SendingON")client.publish(topic="youraccount/feeds/lights",msg="ON")time.sleep(1)print("SendingOFF")client.publish(topic="youraccount/feeds/lights",msg="OFF")time.sleep(1)

列表 4:Pycom 示例软件演示了开发人员如何使用 LTE 连接(以蓝色突出显示)而不是 Wi-Fi(在列表 3 中以黄色突出显示),执行与云资源交互的更高级操作。(代码来源:Pycom)

同样的常规方法也适用于将连接切换到蓝牙、LoRaWAN 或 Sigfox,以响应变化的条件。因此,开发人员可以构建出能够轻松支持各种无线连接技术的物联网设备。当操作或功能要求需要切换到不同的连接选项时(甚至在运行时期间进行切换),开发人员就可以轻松实现所需的动态切换功能,以保持可用性或满足不断变化的性能要求。

总结

开发人员可以使用专门为支持多种无线技术(包括蓝牙、Wi-Fi、LTE、LoRaWAN 和 Sigfox)而构建的 Pycom 板,快速满足新兴的无线连接要求。通过将这些板与基于 MicroPython 的软件相结合,开发人员可以快速实现能够响应不断变化的无线连接要求的物联网设备。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2939

    文章

    47324

    浏览量

    407969
  • 超低功耗
    +关注

    关注

    5

    文章

    229

    浏览量

    19003
  • 模数转换器
    +关注

    关注

    26

    文章

    3951

    浏览量

    129728
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    智能装配如何与AR技术相结合

    的兴起,为装配流程带来了新的解决思路和应用场景。将AR与智能装配相结合,正逐步成为制造业数字化转型的重要方向。  一、AR技术赋能装配的价值  AR技术通过虚拟信息与真实环境的叠加,将复杂的装配指令、零部件数据和工艺要求
    的头像 发表于 12-03 16:15 411次阅读

    电磁频谱监测平台系统设计方案

    电磁频谱监测平台系统设计方案
    的头像 发表于 10-23 16:03 321次阅读
    电磁频谱监测平台系统<b class='flag-5'>设计方案</b>

    电磁频谱管理系统设计方案

    电磁频谱管理系统设计方案
    的头像 发表于 10-20 14:02 260次阅读
    电磁频谱管理系统<b class='flag-5'>设计方案</b>

    电磁频谱监测系统软件设计方案

    电磁频谱监测系统平台设计方案
    的头像 发表于 09-28 16:03 140次阅读
    电磁频谱监测系统<b class='flag-5'>软件设计方案</b>

    电磁频谱监测系统设计方案

    电磁频谱监测系统平台设计方案
    的头像 发表于 09-28 15:58 480次阅读
    电磁频谱监测系统<b class='flag-5'>设计方案</b>

    vscode的rtthread micropython插件没有创建工程的图标,为什么?

    我想用micropython开发ESP32,请问我的vscode已经安装了RT-Thread micropython插件,为什么在下方没有创建micropython的“+”图标呢?
    发表于 09-28 13:13

    micropython 文件同步失败是怎么回事?

    您好! 在自己的stm32f407vet6开发板上,构建的rt-thread添加了micropython模块。 下载运行执行正常。执行将文件下载到开发板或者点击“文件同步”时,总提示 “所连接设备可能未处于repl状态或者不是一个micropython设备”。 这是怎么回
    发表于 09-17 07:28

    ENV添加micropython软件包出现异常的原因?

    的python27.dll和platformenv_releasedenvtoolsPython27换一下。结果还是错误?。 没办法了,就行下一步添加micropython软件包。按照教程走出现了这个东西我直接
    发表于 09-12 08:06

    旋智科技家用分体空调电控设计方案

    在家用空调技术不断迭代的今天,旋智凭借强大的芯片研发与系统集成能力,推出了一套完整的家用分体空调电控设计方案。这套方案从硬件到软件,从基础功能到智能升级,全方位提升空调的性能与用户体验,让每一次调温都成为舒适享受。
    的头像 发表于 08-18 14:02 4919次阅读
    旋智科技家用分体空调电控<b class='flag-5'>设计方案</b>

    作战仿真推演系统软件平台设计方案

    行业芯事行业资讯
    北京华盛恒辉科技
    发布于 :2025年06月10日 22:08:34

    RK3568驱动指南|第十二篇 GPIO子系统-第135章 GPIO子系统与pinctrl子系统相结合实验

    RK3568驱动指南|第十二篇 GPIO子系统-第135章 GPIO子系统与pinctrl子系统相结合实验
    的头像 发表于 05-23 13:47 749次阅读
    RK3568驱动指南|第十二篇 GPIO子系统-第135章 GPIO子系统与pinctrl子系统<b class='flag-5'>相结合</b>实验

    无框电机:高性能与紧凑设计相结合

    和外壳。这种设计使其具有更高的灵活性、更紧凑的结构和更优的性能,特别适用于对空间、重量和性能要求的应用场景。 无框电机的组成 无框电机:高性能与紧凑设计相结合 转子上装有永磁体,直接安装在设备的负载轴上,与负载一起旋转。 定子(
    的头像 发表于 03-20 18:29 1434次阅读

    无线红外单点温度传感器解决方案

    无线红外单点温度传感器方案结合了非接触测温与无线传输的优势,适用于多种场景。通过合理选择组件和优化设计,可实现高精度、低功耗的温度监测。
    的头像 发表于 02-28 14:48 1034次阅读
    <b class='flag-5'>无线</b>红外单点温度传感器解决<b class='flag-5'>方案</b>

    AN126-用于稳压器的2线虚拟遥感-千里眼与遥感相结合

    电子发烧友网站提供《AN126-用于稳压器的2线虚拟遥感-千里眼与遥感相结合.pdf》资料免费下载
    发表于 01-12 10:04 0次下载
    AN126-用于稳压器的2线虚拟遥感-千里眼与遥感<b class='flag-5'>相结合</b>

    将高温炉与光伏发电相结合:400V变660V变压器的创新解决方案

    将高温炉与光伏发电相结合:400V 变 660V 变压器的创新解决方案 在全球积极探索可持续能源利用的征程中,高温炉与光伏发电的结合无疑是一项极具创新性与前瞻性的举措,而 400V 变 660V
    的头像 发表于 12-10 15:37 571次阅读
    将高温炉与光伏发电<b class='flag-5'>相结合</b>:400V变660V变压器的创新解决<b class='flag-5'>方案</b>