【毕设参考】ESP32 + HaaS Python 打造数据上云声控灯

简介: 【毕设参考】ESP32 + HaaS Python 打造数据上云声控灯

声控灯

  声控灯是通过声音控制开灯的技术,适用于使用声音控制开灯的场景,特别是楼宇、住宅楼的公共场合,例如楼梯间、走廊、大厅等场所,它可减少人工开关电灯的麻烦,解放您的双手,可避免您的双手接触公共开关,降低接触细菌的可能,同时把灯的状态上报至云端,灯的管理者可实时查看灯的状态信息。




简介

  本案例介绍的声控灯是通过声音控制开灯一个解决方案,具备使用简单、开发成本低、节能环保等特点。本案例为了更好玩使用了RGB LED,每次开灯颜色都会变化,并把灯开关的状态上报至云端,云端可以实时查看灯的状态。


背景知识

  声音传感器是充当收音的作用,用来接收声波,使话筒内的驻极体薄膜震动导致电容的变化,产生0-5V的微小电压,经过A/D转换被数据采集器接收。


  RGB LED是红绿蓝三色混光而成,在光的混色上,具备更多元的特性。


准备

ESP32开发板一套

声音传感器一个

RGB LED一个

母对母杜邦连接线若干

涉及到的硬件购买链接如下,仅供参考,不负责商家发货的品质保障等问题!


名称 数量 参考链接

ESP32开发板 1套 ESP32开发板一套

RGB LED 1个 RGB LED

声音传感器 1个 声音传感器一个

母对母杜邦线 7根 母对母杜邦线 请选用10cm长即可

硬件连线图

  硬件连线图如下图所示:




物联网平台开发

开通公共实例

  对于第一次使用物联网平台的读者,需要开通实例以使用物联网平台的功能。这里可以使用免费的公共实例进行开发。


  在物联网平台中,左上角选择“华东2-上海”,点击“公共实例”,即可开通。




开通物联网平台功能之后,需要完成下面的3个步骤完成云端设备的设定:


创建云端产品

创建产品属性(物模型)

创建云端设备(获取三元组)

创建云端产品

  点击上图中的“公共实例”,即可进入控制台进行产品创建。然后,点击创建产品按钮,如下图所示。




  选择之后,点击“确认”按钮,即可完成产品创建。如下图所示




创建产品属性(物模型)

  点击前往定义物模型后,调整至下面页面,如下图所示。




  点击编辑草稿,导入物模型文件点击下载物模型文件,直接导入后选择发布上线,如下图所示。








创建云端设备(获取三元组)

  在产品列表页面中,点击“管理设备”,就会进到设备管理页面。




  在“设备”页面点击“添加设备”按钮,在“添加设备”页面中设定“deviceName”,这里开发者可以自己填入自己想设定的设备名称,如下图所示。




设备添加完成后,如下图所示。




获取设备三元组


  如下图所示,在设备列表中点击“查看”按钮,就可以看到设备的三元组信息。


  设备三元组是指产品Key(productKey)、设备名称(DeviceName)、设备秘钥(DeviceSecret)。


  三元组是物联网设备端和物联网云端设备相关联的唯一标识符,在设备端连接云端的时候会使用三元组信息和云端进行鉴权,鉴权通过之后云端会认为设备已激活并上线。设备三元组在后面设备端开发时会用到,请注意保存。




设备端开发

开发环境

  在进行下一步之前请确保ESP32开发环境已经搭建完毕。详情请参考ESP32开发环境的说明。


创建解决方案

  如下图所示,打开VS Code之后在新建一个基于helloworld的python工程,设定好工程名称(“sound_led”)及工作区路径之后,硬件类型选择nodemcu32s,点击立即创建,创建一个Python轻应用的解决方案。




  下载本案例代码并解压将所有文件复制后覆盖“sound_led”工程根目录原有文件,然后进行如下设定完成设备端代码的开发。




Python脚本的详细说明请参考脚本内嵌的文字注释


修改路由器名称及密码

  修改sound_led工程里main.py中SSID和PWD的值为读者实际要连接的路由器的名称及密码(请注意名称和密码都需要放在''符号中间)。


# Wi-Fi SSID和Password设置

SSID='Your-AP-SSID'

PWD='Your-AP-Password'

  修改完成之后connect_wifi函数就会连接读者自己设定的路由器。


修改设备的三元组信息

  把“获取设备的三元组”章节中获取的三元组信息填入main.py中:


# HaaS设备三元组

productKey = "Your-ProductKey"

deviceName  = "Your-devicename"

deviceSecret  = "Your-deviceSecret"

修改LED灯颜色

  在sound_led工程里main.py,set_color_reference函数里,修改gLedColor值即可达到修改灯颜色目标。


# RGD灯颜色设置

gLedColor = 0xff0000

调整开灯的声音阈值

  在sound_led工程里main.py,sound_thread()函数里,修改gDecibelValue值即可达到调整开灯灵敏度,代码里的值是根据工作环境定义的经验值,开发者可根据自身情况定制修改。


调整开灯的时长

  在sound_led工程里main.py,sound_thread()函数里,修改led_open()函数下面的utime.sleep_ms(6000)来控制每次亮灯时间(1000代表1秒钟)。


# 声音采集线程

# 声音采集线程

def sound_thread():

   global gOpenLed

   print('启动声音采集线程')

   decibelValue = 0

   while True:

       # 采集声音

       decibelValue = get_decibel()

       # 判断分贝

       if decibelValue > gDecibelValue and gOpenLed == False:

           print("声波转换后的值%s"% (decibelValue))

           gOpenLed = True

           # 开灯

           led_open(set_color_reference())

           # 亮灯6秒

           utime.sleep_ms(6000)

           # 关灯

           led_close()

           gOpenLed = False

       # 监听获取声音的频率,间隔不能太长,延迟大会导致不精确

       utime.sleep_ms(10)


运行程序

  推送此脚本到设备之后,串口会周期性的打印日志,设备上通过串口打印的信息如下图所示。


Wi-Fi is connecting...

Wi-Fi is connected

IP: 192.168.3.226

NTP start

NTP done

establish tcp connection with server(host='a1HOXQ1AMTs.iot-as-mqtt.cn-shanghai.aliyuncs.com', port=[443])

tcp_connect: can only connect from state CLOSED

success to establish tcp, fd=54

link platform connected

启动声音采集线程

声波转换后的值1540

开灯

属性上报成功

关灯

属性上报成功


云端查看

进入阿里云官网,用阿里云账号登录物联网平台查看状态




到此为止,声控灯案例就已经完成了。如果想学习更多实验,请参考HaaS案例实践详解。


后记

  笔者这里以一个声控灯为例进行介绍,建议读者可以尝试把多个声控灯的状态一起上报,使用IoT Studio制作一个控制面板对所有灯的状态进行展  


来这里探索更多有趣案例

HaaS开发框架

HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。

https://haas.iot.aliyun.com/solution

————————————————

版权声明:本文为CSDN博主「HaaS技术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/HaaSTech/article/details/124228671

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
8月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
6517 1
|
8月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
716 0
|
10月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
758 1
|
8月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
10月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
8月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
11月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
9月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
9月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
259 0
|
11月前
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析

热门文章

最新文章

推荐镜像

更多