基于NodeMCU和WxBit的智能台灯设计

2024-01-18 10:13:50袁秋凤
关键词:台灯亮度消息

袁秋凤

(宁德师范学院 信息与机电工程学院,福建 宁德 352100)

据国家卫健委相关调查统计,2018年中国儿童青少年总体近视率为53.6%.在新型冠状病毒肺炎期间,眼科专家在对广州12所小学2~3年级小学生近视发展变化的监测研究中发现,中国小学生的近视发病率有所增加[1].目前,儿童青少年的近视防控措施主要着眼于改善用眼环境,包括:增加户外活动时间、控制合适的用眼时间、创造照度良好的学习环境、保证充足的睡眠和营养等.儿童青少年主要的用眼场景是独立卧室的书桌,台灯作为常用的学习工具,对视力的影响不容忽视.传统台灯用于照明,功能单一,智能台灯的出现,使台灯的功能更加多样化.智能台灯多采用单片机作为控制器,利用传感器检测技术,实现台灯的自动控制.近年来,对于智能台灯的研究,主要集中在节电和护眼功能的开发上.刘艳峰[2]设计的基于STM32单片机的智能台灯控制系统,通过热释红外传感器检测人体是否存在,自动控制台灯的亮灭;利用光敏电阻检测环境光强,自动调节台灯的亮度;通过红外测距传感测量人体距离,当小于限定距离时自动发声报警.龙洋等[3]研发的基于智能家居的防近视智能台灯,利用单片机内部的定时器和语音模块实现计时和语音提醒功能.王聪等[4]设计的基于51单片机的智能台灯,利用蓝牙模块实现了百米距离内控制台灯亮度的功能.目前市面上还出现了一些智能学习台灯,能够实现家教、通话等功能,但价格普遍较高.文中基于NodeMCU物联网开发板,设计一款价格低廉、结构简单、具有远程监控功能的LED智能台灯,能够实现家长对孩子用眼环境和用眼行为的实时监控,可以作为孩子和家长联合防控近视的一种辅助手段.

1 智能台灯设计方案

智能台灯总体设计方案如图1所示.

图1 智能台灯总体设计方案

智能台灯由台灯终端和手机APP(application,应用程序)构成,使用对象为孩子和家长.台灯终端由孩子控制,主要由控制器、光源、读写距离检测电路、按键电路、语音提示电路和电源组成,具备亮度调节、读写距离检测、用眼时间计时和语音提醒功能.手机APP 由家长操作,可以监测台灯亮度、读写距离和用眼时间,以及远程控制台灯的关闭.台灯终端和手机APP 之间的数据传输采用基于MQTT(message queuing telemetry transport,消息队列遥测传输)协议的物联网云平台.

2 台灯终端的设计

2.1 台灯终端的硬件电路设计

台灯终端主要由NodeMCU 开发板、WS2812B环状灯板、HC-SR04超声波传感器、DY-SV17F语音播放模块、4 Ω 3 W 喇叭和四脚钮子开关等组成,使用5 V 直流电源供电.利用Fritzing 软件绘制的电路接线图如图2 所示.由于Fritzing 软件元件库中没有WS2812B 环状灯板和DY-SV17F 语音播放模块,可使用InkScape软件自制元件.

图2 智能台灯终端电路接线图

本设计采用乐鑫ESP8266 的NodeMCU 开发板作为核心控制器,它是一款超低功耗、高性价比的开源物联网开发平台,可支持UART、IIC、PWM、GPIO 和ADC 等接口[5],在物联网应用开发中广泛采用.WS2812B 环状灯板作为台灯照明光源,它是一种采用单总线协议的可编程智能LED 光源,集成了WS2812B控制芯片和5050RGBLED 发光电路,最多支持1 024个LED 灯珠的级联,每个LED 灯珠可编程控制显示不同的颜色和亮度.HC-SR04 超声波传感器用于检测读写距离,它基于超声波发射和反射原理实现距离的测量,通过时间差计算台灯和人之间的距离.DY-SV17F 语音播放模块、4 Ω 3 W 喇叭和3个10 kΩ 的电阻组成语音提示电路.DY-SV17F 是一款智能语音模块,集成IO 分段触发控制(包括IO 组合模式和IO 独立模式)、UART 串口控制、单总线串口控制、标准MP3 等7 种工作模式,可通过USB 数据线连接电脑更新音频文件.四脚钮子开关用于控制台灯的开关和亮度模式.

为充分利用NodeMCU 开发板有限的IO 资源,具体电路接法和功能如下.D10(GPIO1)引脚和D9(GPIO3)引脚作为串口,实现智能台灯与物联网云平台服务器之间的WiFi 通信.D6(GPIO12)引脚连接WS2812B 环状灯板的DI 引脚,用于驱动WS2812B.D7(GPIO13)引脚连接四脚钮子开关,采用上拉模式接法,用于检测按键输入.D1(GPIO5)引脚、D2(GPIO4)引脚分别连接HC-SR04 超声波传感器的Trig 引脚和Echo引脚,用于控制超声波传感器发送和接收信号.D5(GPIO14)引脚、DS3(GPIO10)引脚分别连接DY-SV17F语音播放模块的IO1引脚、IO2引脚,用于触发输出语音提示信息.

本设计中的DY-SV17F语音播放模块采用IO独立模式1电平触发方式,即IO0~IO7独立控制8首曲目,曲目文件必须以5 位数字格式命名,包括00001.mp3~00008.mp3.当某一个IO 口为低电平时,对应的曲目播放,当该IO口恢复高电平,当前曲目停止播放.IO独立模式1的电路连接需将CON3/BUSY、CON2和CON1三个引脚的电平配置为011.

2.2 台灯终端的控制程序设计

NodeMCU 通常使用方便快捷的Lua 语言和Arudio IDE 进行开发[6].台灯终端控制程序基于Arudio IDE开发,采用C++语言,利用免费的巴法云物联网开放平台发布和订阅消息.

在台灯终端控制程序设计之前,需要完成如下工作.注册并登陆巴法云物联网开放平台,选择“MQTT 设备云”,新建台灯模式、读写距离和用眼时间3 个主题,并记录下MQTT 服务器连接的用户私钥、端口号和主题名.台灯终端控制程序的整体运行流程如图3所示.

图3 台灯终端控制程序流程图

程序的初始化配置包括设置NodeMCU 的串口波特率、IO口、定时器和灯板初态.使用Ticker对象实现按键延时消抖、定时发布消息、读写距离定时检测和用眼计时.定时时间分别设定为10 s、30 s、2 min和1 h.当读写距离小于30 cm或用眼时间超过1 h,语音模块将播放相应的音频文件,提示孩子调整用眼行为.程序中将台灯的亮度设置为灯灭、小夜灯、阅读和书写4 种模式,分别用按键短按1~4 次实现模式切换.通过调用第三方库Adafruit_NeoPixel,采用RGB 色彩模式实现WS2812B LED 灯珠的亮度调节.台灯终端向巴法云物联网平台的MQTT服务器发布台灯模式、读写距离和用眼时间三类消息,并订阅台灯模式主题的消息.

3 手机APP的设计

家长通过操作智能台灯的手机APP,可以连接或断开MQTT 服务器,查看台灯模式、读写距离和用眼时间信息,以及远程控制关灯,可不受时空限制地监测孩子的用眼环境和用眼行为.

智能台灯手机APP的开发环境采用WxBit软件,它是基于MIT APP Inventor 开源代码优化定制的汉化版[7-8],集成了百度飞桨、百度语音、高德地图等多种国内互联网优质服务.智能台灯手机APP 的界面布局如图4所示,采用水平布局,使用的组件有标签、按钮、图像框、信息对话框和MQTT客户端等.

图4 手机APP界面布局

智能台灯手机APP 的逻辑设计流程如图5 所示.创建的全局变量包括:MQTT 服务器URL 地址、MQTT 服务器用户连接私钥和主题类型.主要涉及的对象和事件包括:屏幕初始化、按钮被点击、MQTT客户端已连接、MQTT 客户端连接中断、MQTT 客户端收到消息.各事件内部主要采用分支结构.以“MQTT 客户端收到消息事件”为例,当MQTT 客户端收到消息时,先判断主题类型,若主题为台灯亮度模式,则再判断台灯亮度模式为灯灭、小夜灯、阅读和书写中的哪一种,并显示对应的模式文本信息和图像信息;若主题为读写距离,则显示读写距离值,若读写距离小于30 cm,则弹出消息提示对话框;若主题为用眼时间,则显示用眼时间值,若用眼时间大于1 h,则弹出消息提示对话框且手机发声振动;若收到的消息不为上述3个主题,则弹出“接收信息出错”的消息提示对话框.

图5 手机APP的逻辑设计流程图

4 智能台灯的运行结果

孩子启动智能台灯终端后,可利用按键手动切换台灯的亮度模式,家长的手机APP 可以监测台灯的工作状态和孩子的用眼情况.当孩子的读写距离、用眼时间不规范时,将语音播放提示信息,同时手机APP 弹出消息对话框提醒家长.家长也可以通过远程关灯操作,间接制止孩子不合理的用眼行为,以及没有及时关灯浪费电能的不良行为.手机APP运行结果如图6所示.

5 总结

智能台灯由台灯终端和手机APP 两部分组成,台灯终端以NodeMCU 开发板为核心,手机APP 的设计基于WxBit开发环境,通过巴法云物联网开放平台实现消息的发布和订阅.通过台灯终端既能手动设置台灯亮度模式、定时检测读写距离和用眼时间,并将这3 项数据发布至物联网平台,又能接收台灯模式主题消息,控制台灯的关闭.而手机APP 既能手动连接或断开物联网平台、订阅主题、显示孩子的用眼环境和用眼数据,又能发布灭灯消息远程控制台灯的关闭.文中设计的智能台灯结构简单、界面简洁、成本低廉,硬件设计和软件开发较易实现,可以作为保护孩子视力的辅助工具.因考虑到智能台灯的开发成本,受限于NodeMCU 有限的IO 资源,本设计未采用距离检测精确度和可靠性更高的传感器,后期将在提高终端控制器性能的基础上,进一步改良台灯的功能.

猜你喜欢
台灯亮度消息
一张图看5G消息
亮度调色多面手
亮度一样吗?
台灯的自述
小主人报(2016年9期)2016-12-01 06:23:37
西瓜虫台灯
灯与照明(2016年4期)2016-06-05 09:01:45
基于斩波调制的LED亮度控制
人生的亮度
两盏台灯辉映下的难忘岁月
中国火炬(2015年7期)2015-07-31 17:40:07
悬浮台灯等
消息
中国卫生(2014年12期)2014-11-12 13:12:26