小言_互联网的博客

树莓派 Pico仅4美元, IoT物联网开发实战

443人阅读  评论(0)

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

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

  Pi Pico 开发板   

树莓派 Pico 规格参数:


  在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 就开始运行了。

  IoT物联网开发  

1.云端开发

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

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

2.设备端开发

通过命令行安装 umqtt


   
  1. >>> import upip
  2. >>> upip.install( 'micropython-umqtt.simple')
  3. Installing to: /lib/
  4. 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连接


   
  1. import utime
  2. from umqtt.simple  import MQTTClient
  3. import ujson
  4. product_key =  '产品productKey'
  5. device_name =  '设备deviceName'
  6. device_secret =  '设备deviceSecret'
  7. client_id =  'pico'
  8. sign_method =  'hmacsha1'
  9. mqtt_client_id =  '{0}|securemode=3,signmethod={1}|'.format(client_id,sign_method)
  10. username =  '{0}&{1}'.format(device_name, product_key)
  11. password = get_password(client_id,product_key,device_name,device_secret,sign_method)
  12. broker_address =  '{0}.iot-as-mqtt.cn-shanghai.aliyuncs.com'.format(product_key)
  13. broker_port =  1883
  14. client = MQTTClient(client_id=mqtt_client_id, 
  15.         server=broker_address, 
  16.         port=broker_port, 
  17.         user=username, 
  18.         password=password, 
  19.         keepalive= 300)
  20. client.set_callback(callback)
  21. client.connect()

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


   
  1. publish_topic =  '/sys/{0}/{1}/thing/event/property/post'.format(product_key, device_name)
  2. data = {
  3.          'id''13548753493',
  4.          'version''1.0',
  5.          'params': {
  6.              'temperature'21,
  7.              'humidity'68
  8.         }
  9.     }
  10. message = ujson.dumps(data)
  11. client.publish(publish_topic, message)

3.联机运行

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

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


转载:https://blog.csdn.net/klandor2008/article/details/113211005
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场