树莓派基金会发布了基于一款全新的 RP2040 芯片构建的首款微控制器级产品:Raspberry Pi Pico,售价仅 4 美元。

如果你使用过 Arduino 或支持 MicroPython 的开发板,那么树莓派 Pico 上手会很容易,并且能快速搭建起 IoT 物联网应用。

  Pi Pico 开发板   

树莓派 Pico 规格参数:

format,png.jpg

format,png.jpg

  在Pico 使用MicroPython  

安装 MicroPython

你可以通过将 Pico 由 USB 连接到 PC,然后将程序文件拖放到 Pico 上来实现编程。安装步骤如下:

1、通过下面的按钮下载 MicroPython 的 UF2 文件。

2、按住 Pico 开发板上的 BOOTSEL 按钮,然后将 Pico 插入树莓派或 PC 的 USB 接口,然后松开 BOOTSEL 按钮。

3、Pico 会被识别为大容量存储设备。

4、将下载的 MicroPython UF2 文件放入 RPI-RP2 卷上。你的 Pico 将自动重启,然后 MicroPython 就开始运行了。

format,png.jpg

  IoT物联网开发  

1.云端开发

我们在 IoT 控制台的设备管理页面,我们需要先创建一个产品Pico温湿度计,数据通信以JSON格式,认证方式为设备秘钥,功能定义添加物模型属性温度和湿度。如下图:

format,png.jpg

我们在设备管理页面,基于Pico温湿度计产品,注册一个设备,并获取设备身份认证的三元组。如下图:

format,png.jpg

2.设备端开发

format,png.jpg

通过命令行安装 umqtt

>>> import upip
  • >>> upip.install('micropython-umqtt.simple')
  • Installing to: /lib/
  • Installing micropython-umqtt.simple 1.3.4 from https://files.pythonhosted.org/packages/bd/cf/697e3418b2f44222b3e848078b1e33ee76aedca9b6c2430ca1b1aec1ce1d/micropython-umqtt.simple-1.3.4.tar.gz
  • 复制代码

    使用设备三元组,建立MQTT连接

    import utime
  • from umqtt.simple import MQTTClient
  • import ujson
  • product_key = '产品productKey'
  • device_name = '设备deviceName'
  • device_secret = '设备deviceSecret'
  • client_id = 'pico'
  • sign_method = 'hmacsha1'
  • mqtt_client_id = '{0}|securemode=3,signmethod={1}|'.format(client_id,sign_method)
  • username = '{0}&{1}'.format(device_name, product_key)
  • password = get_password(client_id,product_key,device_name,device_secret,sign_method)
  • broker_address = '{0}.iot-as-mqtt.cn-shanghai.aliyuncs.com'.format(product_key)
  • broker_port = 1883
  • client = MQTTClient(client_id=mqtt_client_id,
  •         server=broker_address,
  •         port=broker_port,
  •         user=username,
  •         password=password,
  •         keepalive=300)
  • client.set_callback(callback)
  • client.connect()
  • 复制代码

    设备主动上报物模型数据:

    publish_topic = '/sys/{0}/{1}/thing/event/property/post'.format(product_key, device_name)
  • data = {
  •         'id': '13548753493',
  •         'version': '1.0',
  •         'params': {
  •             'temperature': 21,
  •             'humidity': 68
  •         }
  •     }
  • message = ujson.dumps(data)
  • client.publish(publish_topic, message)
  • 复制代码

    3.联机运行

    烧录Python程序后,我们看到设备状态为在线,物模型数据中可以看到最新上报的温度和湿度值。

    format,png.jpg

    在监控运维的日志服务里,也可以看到设备上报数据的日志。如下图:

    format,png.jpg