【毕设参考】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 gOpenLedprint('启动声音采集线程')decibelValue = 0while 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
【毕设参考】ESP32 + HaaS Python 打造数据上云声控灯相关推荐
- 【毕设参考】 HaaS Python 打造工业级光伏面板监控上云系统
来这里发现更多有趣案例 HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件.https://haas.iot.aliyun.com/so ...
- 【毕设参考】ESP32 + HaaS Python 打造可以远程控制的智能风扇
智能小风扇 下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明. 简介 在日常生活中,我们经常需要一些通过风扇降温的场景,比如说机房,电脑主机等等.通常情况下,我们都 ...
- 【毕设参考】ESP32 + HaaS Python 打造的噪音检测系统,远离喧嚣,安享静谧
噪音检测系统 下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明.在硬件连线完成之后我们建议您先使用"一分钟上云体验"功能预先体验本案例的实际运行效果. ...
- 【毕设参考】ESP32 + HaaS Python打造可以统计流量的自动感应门系统
下图是本案例的四步导学. 简介 目前很多写字楼.酒店等入口都采用自动感应的方式开门.关门,当有人靠近时,门就会自动打开,远离时会自动关门:有时候也需要将自动门设置常开状态,比如需要多次进出 ...
- 【毕设参考】ESP32 + HaaS Python 打造在线空气质量检测器
空气检测系统 下图是本案例除硬件连线外的3步导学,每个步骤中实现的功能请参考图中的说明. 简介 近几年空气污染逐渐变重,很多人对空气质量愈发关心.及时检测周报环境的空气质量并通过钉钉通知相 ...
- 使用ESP32 + HaaS Python打造运动心率检测系统 云上实时守护运动健康
当今社会,人们经常通过跑步等运动方式来健身.适量的运动可以提高免疫力,促进身心健康. 然而,无论是跑步,还是其他的健身运动,如果运动过量就会对身体造成损害,甚至导致休克.猝死等严重后果. ...
- 工科生的信仰 ESP32 + HaaS Python 打造HaaS收音机
HaaS收音机 简介 FM收音机作为上世纪的产物,一度是大家日常使用最多的工具之一,现在已经很少用到,主要还是用在汽车上.一台经典的收音机往往能勾起很多人的回忆.本案例教大家如何快速打造一台物联网FM ...
- 用 ESP32 + HaaS Python 打造 RFID 智能刷卡门禁系统
简介 我们每天进小区人行通道的时候,都会带一张卡或者一个小扣子,进小区以前往往要把小扣子靠近一下闸机,然后门才开,那这一套闸机系统是怎么实现的呢? 本章课程将一步步教会大家如何去学习并且打造一套 ...
- 使用 ESP32 + HaaS Python 打造智能温湿度UI面板
随着这几年智能家居行业的快速发展,家庭用的智能面板越来越普及.智能面板不仅可以用来显示时间.家用电器的状态.回家/离家模式选择还可以用来调节空调温度.加湿器状态等等信息,给人们的生活带来了很多便 ...
最新文章
- json 字符串反序列化成DataSet
- 基于Spring Boot+Vue的考试系统
- 用MSBuild.... DailyBuild和软件开发流程的东东
- 新iPhone机模曝光:依旧三款配色 难有渐变机身
- bilibili源码_bilibili源码泄漏后,程序员们从代码里扒出来的彩蛋
- 如何理性看待 5G 速率提升?
- 成为管理层必会的技能之一!利用Python打造一款员工管理系统~
- 三年级计算机之父童年教学设计,三年级语文计算机之父的童年故事课文教学设计...
- 51单片机 独立按键k1控制数码管移位 k2控制数值加
- 什么是OsmocomBB
- 程序设计——第七周作业(Floyd:胜负未知场数;dijkstra:猫猫快线最快线路;SPFA:城市收税)
- 2014年互联网IT公司产品、技术类人员工资待遇汇总 2015部分补充
- 创新谈-数据库概念设计之几点见解-吴雨光
- 设计师值得收藏的5个设计网站
- Jackson转换JSON
- 284页beego官方中文文档,Go语言进阶必备
- 地表最强:iOS安全黑宝书中文版来袭(赠书)
- 蒙特卡洛 股票 matlab,风险管理matlab蒙特卡洛模拟股票价格
- 实力见证!企企通斩获「2021年软件行业应用领域领军企业」殊荣
- python下载在电脑是怎么样的_怎样在电脑上下载哔哩哔哩的视频?