又是一年春节到,为了感谢一直以来支持HaaS的开发者朋友们,ESP32 + HaaS Python为大家DIY送福啦!!!
除了送福,还有丰富的光效动画哦
那么,开发起来难不难呢?按照惯例,只需3步:
只需准备如下硬件
其中,WS2812点阵屏跟ESP32之间的连如下:
由于点阵屏需要的功率较大,ESP32上的5V供电很可能无法支撑正常点亮点阵屏,建议使用外置电源为点阵屏供电,同时要求外置电源与ESP32共地。可选用常见的“USB转TTL模块”,带了5V与3.3V供电,能满足我们大部分场景开发需求。其完整的接线方式为:
打开支付宝扫描以下小程序二维码
在完成上面硬件连线之后,就可以进行此案例的完整体验了哦。
整个过程包含以下4个步骤:
1、开通公共实例
2、创建产品(设备模型)
3、定义产品功能(物模型)
4、创建设备及获取三元组
对于第一次使用物联网平台的读者,需要开通实例以使用物联网平台的功能。这里可以使用免费的公共实例进行开发。在物联网平台中,左上角选择“华东2-上海”,点击“公共实例”,即可开通。开通后点击“公共实例”,即可进入控制台进行产品创建。
进入公共实例控制台,点击“创建产品”按钮,即可进入新建产品页面。
进入新建产品页面,设定“产品名称”,这里我们命名为“RGB点阵屏”,读者也可以根据自己的喜好来命名。在“所属品类”中,选择“自定义品类”。
产品的节点类型选择“直连设备”,数据格式选择“ICA标准数据格式”,检验类型和认证方式选择默认设定即可。开发者可根据自己的需求在“产品描述”页面添加针对此产品的描述。
对于ESP32等搭载Wi-Fi的设备而言,联网方式选择“Wi-Fi”。
点击“确认”按钮,即可完成产品创建。
点击“前往定义物模型”
开发者可以使用准备好的物模型文件来进行快速导入。点击左上角“快速导入”,选择物模型文件并上传,就能够生成案例对应的物模型。
生成后的效果如下:
定义好物模型后,需要发布物模型上线,并发布产品,以使变更生效。
产品及其物模型创建完成后就可以创建这个产品的设备了。
点击左侧栏中“设备”,在筛选框中选择需要添加的产品,点击“添加设备”,这里我们命名为“test_device”,开发者可以根据自己的喜好来命名。
开发者也可以选择“批量添加”,一次性添加多个设备,并声称随机的DeviceName。
生成的设备如下:
点击“查看”按钮,就能看到设备的三元组信息了。
三元组是物联网设备与云端关联的唯一标识符,在设备端连到云端的时候会使用三元组信息和云端进行鉴权,鉴权通过之后云端会认为设备已激活并上线。
在进行下一步之前请确保ESP32开发环境已经搭建完毕。详情请参考“ESP32快速开始”的说明。
如下图所示,打开VSCode之后再新建一个基于helloword的python工程,设定好工程名称(“ws2812_matrix”)及工作区路径之后,硬件类型选择ESP32,点击立即创建,创建一个Python轻应用的解决方案。
将脚本压缩包解压后,复制该文件夹下的所有文件,覆盖工程目录下,文件如下图所示:
Python脚本的详细说明请参考脚本内嵌的文字注释。
修改工程里main.py中wifiSsid和WifiPassword的值为读者实际要链接的路由器名称及密码(请注意名称和密码都需要放在""符号中间)。
# Wi-Fi SSID和Password设置
wifiSsid = "请填写您的路由器名称"
wifiPassword = "请填写您的路由器密码"
修改完成后get_wifi_status函数中的wlan.connect(wifiSsid,wifipassword)语句就会连接读者自己设定的路由器。
# 物联网平台相关的key和serect定义
ProductKey = 'ProductKey'
DeviceName = 'DeviceName'
DeviceSecret = 'DeviceSecret'
点击“部署运行”,等待程序运行。
再次前往物联网平台的设备信息页面,若设备运行正确,此时应该可以看到设备名右侧的状态由“未激活”变为“在线”。选中“实时刷新”,可以看到数据实时从设备上报到物联网平台,设备上云成功。
点击左侧侧边栏,进入“监控运维-在线调试”,选择对应的产品和设备,更改设备属性并下发。
当看到点阵屏发生变化时,说明属性下发成功
IoT Studio 提供了应用快速开发的能力,可以很方便地与物联网平台设备进行联动,本节将进行详细地介绍。
打开IoT Studio官网,新建一个名为“RGB点阵屏遥控器”的空白项目,如下图所示
为了使本应用能控制刚刚创建的设备,我们需要对此应用和设备进行关联。
在项目控制台,点击左侧的“产品”,选择“关联物联网平台产品”。此时可以看到我们创建的“RGB点阵屏”。点击选中,并勾选“关联产品时关联其下所有设备”,以便该项目可以访问到所有设备的信息。
如上图所示,为每一个按钮配置交互行为,当点击特定按钮时,设置设备物模型标签为特定值。
点击右上角“预览”或“发布”,即可在手机上使用,可以随时随地地远程控制啦!