ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-02-03 19:31:51  阅读:311  来源: 互联网

标签:Python HaaS ESP32 联网 点击 创建 灯带 设备


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

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

标签:Python,HaaS,ESP32,联网,点击,创建,灯带,设备
来源: https://blog.csdn.net/HaaSTech/article/details/122777868

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有