资源 在Raspberry Pi Pico上添加蜂窝网络
需要的元件 blues wireless Notecard blues wireless Notecarrier-AL Raspberry Pi Pico Adafruit BME680 blues wireless Notehub.io MicroPython 原理及流程 介绍 上周Raspberry Pi团队发布了他们的第一个微控制器Pico时,它拥有定制的双核M0,而且售价只有4美元。 我本周收到了Pico,这是一个令人印象深刻的小型设备,具有许多GPIO,外设以及对C和MicroPython的支持。并且由于Notecard Python库初始就支持MicroPython,CircuitPython和Python,因此我想将Notecard与之连接起来,并展示如何使用两者将蜂窝网络连接添加到Pico项目中。 在本文中,我将向你展示如何: 将MicroPython闪存到Raspberry Pi Pico。 接线并通过I2C连接到Notecard。 与MicroPython中的Notecard通信。 添加一个BME680温湿度传感器,并将读数发送到Notecard和Notehub.io云服务。 本项目的完整源代码,包括notecard和BME680传感器的库,位于位于notecard-pico GitHub repo,你可以在下载区下载。 刷新MicroPython 首先,我需要在Pico上安装MicroPython。我最初使用的是来自Pico官方文档的UF2镜像,但很快发现,在我最初的实验中,该发行版不包含MicroPythonujson库,并且由于Notecard会使用到JSON,而note-python库取决于JSON支持,我不得不寻找一个替代方案。 值得庆幸的是,Pimoroni团队拥有MicroPython的Pico兼容分支,其中包含ujson,因此我从他们的repo下载了最新的UF2(下载区也有) 。然后,按照官方的入门指南,当我将开发板插入USB并将UF2文件拖到计算机上的RPI-RP2大容量存储设备上时,我按住Pico上的BOOTSEL按钮,这样我就能在MicroPython上运行Pico。 即将在官方发行版中支持ujson和其他扩展的MicroPython模块。 在REPL中打招呼 为了创建Pico固件,官方文档和指南建议使用Thonny IDE,因为我将VS Code用于Python和CircuitPython开发,所以我也将其用于本项目。我从“ VS代码扩展”选项卡安装了MicroPython扩展,创建了一个项目,并通过/dev/tty.usbmodem0000000000001USB串行端口连接到Pico上的REPL ,感觉就像z-index:9999;。 过去,我在ESP32上做过一些MicroPython工作,而我最喜欢的体验之一是设备上的REPL。在物理连接到微控制器的同时检查GPIO和切换引脚真是太神奇了。因此,一旦连接,我就导入了machine库并切换了Pico板上的LED,该LED位于Pin 25。 ![2021-01-26_17_39_20_o3EpjtNx8L (2)](https://gggg-image.oss-cn-beijing.aliyuncs.com/lgkimg/2021-01-26_17_39_20_o3EpjtNx8L (2).gif) 连接到Pico时运行MicroPython代码 连接了Pico之后,就该添加Notecard了。 什么是Notecard? 由于Pico没有配备Wi-Fi,蜂窝网络或蓝牙,因此我决定将其连接到Blues Wireless Notecard,以增加蜂窝网络IoT的优势。Notecard是一款支持蜂窝网络和GPS功能的设备到云数据泵,具有500 MB数据和10年的蜂窝网络服务,价格为49美元。没有激活费,也没有月租费。 Notecard是一种30 x 34毫米的小型SoM,可以通过其m.2连接器嵌入到自定义项目中。但是,Blues还提供了一系列扩展板,称为Notecarriers,其中包括用于Notecard的m.2插槽以及许多用于原型制作的功能。对于这个项目,我使用了Notecarrier-AL ,它具有板载蜂窝网络和GPS天线,一个LiPo电池端口和一个引脚排针,非常适合本项目。 在云方面,Notecard已预先配置了与Notehub.io对话,Bluehu Wireless服务可实现从设备到云的安全数据流。Notecard将数据流分配给Notehub中的项目,然后本项目将数据同步到那些项目中以路由到你的云应用程序。 将Notecard连接到Pico Notecard可以通过串行或I2C连接到任何MCU或SBC。我为本项目选择了I2C,并使用Pico引脚图将Notecard的电源,GND,SDA和SCL引脚上的跳线连接到Pico。 Pico通过I2C连接到Notecard 在Notehub.io上创建项目 我的下一步是放下硬件一分钟,打开浏览器选项卡,然后在Notehub.io创建一个新项目。这是一个非常简单的过程,blues无线开发人员门户网站包含有关创建帐户,项目等的分步说明。一个新项目获得的关键是一个名为ProductUID的标识符,该标识符用于将Notecard与Notehub.io相关联,因此我所有的数据最终都存储在正确的位置。 使用MicroPython与Notecard对话 连接设备并准备好ProductUID之后,我准备连接到固件中的Notecard。首先,我下载了最新版本的note-python library 库,并将notecard目录复制到了Pico上的lib目录中。 接下来,我main.py在Pico上添加了几行代码以导入库,配置与Notecard的I2C连接,并发送hub.set request ,该请求用于设置ProductUID并设置一些同步规则。 然后,我上传main.py并更新lib目录然后运行我的代码。自从我使用初始化Notecard库以来没出过bug,随着我的固件执行,我所有的请求和响应都将显示在终端中。 添加传感器 我进行了Pico和Notecard的通信,但是要使其成为一个真正的项目,我需要添加一个传感器。我选择了我的首选产品Adafruit BME680,并将其连接到Pico上的I2C。 Adafruit BME680连接到Pico 与Notecard一样,我添加了一个库,以使其更易于使用BME680。由于我使用的是MicroPython,因此该库的CircuitPython版本无法原样使用,但在进行一些轻微修改后仍可以正常工作。如果你继续学习,可以我的GitHub repo中使用adafruit_bme680.py学习该库。 添加后,我修改了main.py源代码以导入库,初始化传感器并每60秒获取一次温度和湿度读数。 然后,我将所有内容加载到Pico上,并在终端上观看环境读数。 发送数据到Notehub.io 连接BME680并读取办公室中的温度和湿度后,就该将数据发送到“记录卡”(和云)了!我main.py最后一次修改了程序,每次阅读都会发送一个note.add请求。 当从BME680获取新读数时,我还添加了几行以打开Pico LED,并在将数据发送到Notecard之后将其关闭。我的程序的完整资源如下。 最后,我上传main.py并在Pico上运行了它。 当Notecard接收到新数据(称为“记录”)时,它安全地连接到Notehub.io云服务,并将该数据发送到我的项目,我通过访问本项目的事件仪表板进行了确认。 Notehub.io仪表板中的温度和湿度读数。 Notecard是一款功能强大的小型设备,并且具有MicroPython支持,可以轻松地在Pico驱动的项目中添加低成本,免费的蜂窝网络物联网!要了解有关“Notecard”的更多信息,请访问blues.io。 最后 所有需要的文件在下载区均可找到。 via:https://www.hackster.io/brandonsatrom/adding-cellular-to-the-raspberry-pi-pico-b8a4b6