Python教程

酷,用ESP32与HaaS Python做了个舞动的氛围灯带,还能做你自己喜欢的模式哦

本文主要是介绍酷,用ESP32与HaaS Python做了个舞动的氛围灯带,还能做你自己喜欢的模式哦,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 自新年推出案例 新年到,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、预览及发布应用

点击右上角“预览”或“发布”,即可在手机上使用,可以随时随地地远程控制啦!

这篇关于酷,用ESP32与HaaS Python做了个舞动的氛围灯带,还能做你自己喜欢的模式哦的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!