自新年推出案例 新年到,HaaS Python + ESP32给您DIY送福啦,还有丰富的光效动画哦 以来,许多小伙伴说点灯大法好玩,但是氛围灯带更加有趣,希望能出个案例,必须安排。
如同之前的案例,本案例也只需要以下几步就可以实现好:
1、硬件连线、开发前先体验一把
1.1、硬件连线
只需准备如下硬件
- ESP32开发板
- 外置5V电源(可选)
- WS2812灯带(60灯)
- 杜邦线若干
其中,WS2812点阵屏跟ESP32之间的连如下:
由于灯带需要的功率较大,ESP32上的5V供电很可能无法支撑正常点亮灯带,建议使用外置电源为灯带供电,同时要求外置电源与ESP32共地。可选用常见的“USB转TTL模块”,带了5V与3.3V供电,能满足我们大部分场景开发需求。其完整的接线方式为:
1.2、开发前先体验
打开支付宝扫描以下小程序二维码
在完成上面硬件连线之后,就可以进行此案例的完整体验了哦。
1.3、NeoPixel基础使用
该模块为WS2812 / NeoPixel LED提供驱动程序。
你可以在硬件接线完成后,进入交互模式,输入以下指令,来尝试操作灯带。
from machine import Pin
from neopixel import NeoPixel
pin = Pin(19,Pin.OUT) #在本案例中,使用GPIO 19作为灯带控制
np = NeoPixel(pin,8) #创建一个包含8颗LED的NeoPixel对象
np[0] = (255,255,255) #将第一颗灯置为白色
np.write() #将颜色写入硬件
r,g,b = np[0] #读取第一颗灯珠的颜色
了解了这些基础操作后,就可以进行云端一体的开发了。
2、物联网平台开发
整个过程包含以下4个步骤:
1、开通公共实例
2、创建产品(设备模型)
3、定义产品功能(物模型)
4、创建设备及获取三元组
2.1、开通公共实例
对于第一次使用物联网平台的读者,需要开通实例以使用物联网平台的功能。这里可以使用免费的公共实例进行开发。在物联网平台中,左上角选择“华东2-上海”,点击“公共实例”,即可开通。开通后点击“公共实例”,即可进入控制台进行产品创建。
2.2、创建产品(设备模型)
进入公共实例控制台,点击“创建产品”按钮,即可进入新建产品页面。
进入新建产品页面,设定“产品名称”,这里我们命名为“RGB灯带”,读者也可以根据自己的喜好来命名。在“所属品类”中,选择“自定义品类”。
产品的节点类型选择“直连设备”,数据格式选择“ICA标准数据格式”,检验类型和认证方式选择默认设定即可。开发者可根据自己的需求在“产品描述”页面添加针对此产品的描述。
对于ESP32等搭载Wi-Fi的设备而言,联网方式选择“Wi-Fi”。
点击“确认”按钮,即可完成产品创建。
点击“前往定义物模型”
2.3、定义产品功能(物模型)
开发者可以使用准备好的物模型文件来进行快速导入。点击左上角“快速导入”,选择物模型文件并上传,就能够生成案例对应的物模型。
生成后的效果如下:
定义好物模型后,需要发布物模型上线,并发布产品,以使变更生效。
产品及其物模型创建完成后就可以创建这个产品的设备了。
2.4、创建设备及获取三元组
点击左侧栏中“设备”,在筛选框中选择需要添加的产品,点击“添加设备”,这里我们命名为“test_device”,开发者可以根据自己的喜好来命名。
开发者也可以选择“批量添加”,一次性添加多个设备,并声称随机的DeviceName。
生成的设备如下:
点击“查看”按钮,就能看到设备的三元组信息了。
三元组是物联网设备与云端关联的唯一标识符,在设备端连到云端的时候会使用三元组信息和云端进行鉴权,鉴权通过之后云端会认为设备已激活并上线。
3、设备端开发
在进行下一步之前请确保ESP32开发环境已经搭建完毕。详情请参考“ESP32快速开始”的说明。
3.1、创建解决方案
如下图所示,打开VSCode之后再新建一个基于helloword的python工程,设定好工程名称(“ws2812_led_strip”)及工作区路径之后,硬件类型选择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'
点击“部署运行”,等待程序运行。
3.2、物联网平台端设备信息查看
再次前往物联网平台的设备信息页面,若设备运行正确,此时应该可以看到设备名右侧的状态由“未激活”变为“在线”。选中“实时刷新”,可以看到数据实时从设备上报到物联网平台,设备上云成功。
3.3、在物联网平台上在线设备调试
点击左侧侧边栏,进入“监控运维-在线调试”,选择对应的产品和设备,更改设备属性并下发。
当看到点阵屏发生变化时,说明属性下发成功
4、物联网应用开发
IoT Studio 提供了应用快速开发的能力,可以很方便地与物联网平台设备进行联动,本节将进行详细地介绍。
4.1、新建“普通项目”
打开IoT Studio官网,新建一个名为“RGB灯带遥控器”的空白项目,如下图所示
4.2、关联产品
为了使本应用能控制刚刚创建的设备,我们需要对此应用和设备进行关联。
在项目控制台,点击左侧的“产品”,选择“关联物联网平台产品”。此时可以看到我们创建的“RGB点阵屏”。点击选中,并勾选“关联产品时关联其下所有设备”,以便该项目可以访问到所有设备的信息。
4.3、创建移动应用
4.4、界面开发与交互配置
如上图所示,为每一个按钮配置交互行为,当点击特定按钮时,设置设备物模型标签为特定值。
4.5、预览及发布应用
点击右上角“预览”或“发布”,即可在手机上使用,可以随时随地地远程控制啦!