新闻详情

新闻详情

首页 / 资讯中心 / 详情

[开源]基于STM32单片机WiFi智能台灯系统 Onenet智能台灯控制 云平台智能台灯管理系统 APP智能台灯HK-015

发布时间:2026/9/28 20:37:24来源:尧图网络
[开源]基于STM32单片机WiFi智能台灯系统 Onenet智能台灯控制 云平台智能台灯管理系统 APP智能台灯HK-015
1、前言本设计以STM32F103C8T6单片机为主控芯片WIFI模块ESP8266-01S作为通信模块连接onenet云平台通过DHT11温湿度传感器采集温度和湿度、超声波传感器传感器检测坐姿情况、人体热释传感器检测是否有人、光照传感器检测光照数据。OLED屏幕显示当前温度、湿度、光照强度、坐姿距离、照明亮度、久坐时间、是否有人和模式。通过WIFI连接ONENET云平台手机APP连接ONENET云平台APP可以查看当前环境信息数据可调节阈值范围。操作简单易懂手把手教小白完成整套设计UniAPP开发环境搭建非常简单可打包生成手机APP。2、元器件组成本设计由STM32F103C8T6单片机WIFI模块ESP8266-01SOLED屏幕JQ8400语音播报模块DHT11温湿度传感器HC-SR501人体热释传感器光照传感器hc-sr04超声波传感器DS1302时钟模块ULN2003步进电机继电器模块SG90舵机LED模块电源电路组成3、功能简介1、环境采集DHT11温湿度传感器采集温度和湿度、超声波传感器传感器检测坐姿情况、人体热释传感器检测是否有人、光照传感器检测光照数据。2、屏幕显示OLED屏幕显示当前温度、湿度、光照强度、坐姿距离、照明亮度、久坐时间、是否有人和模式。3、模式切换可选择自动模式和手动模式。4、阈值设置可设置温度、湿度、坐姿阈值5、台灯高度可通过按键调节台灯高度6、台灯角度可通过按键调节台灯角度7、定时提醒可通过按键设置定时开始工作提醒时间和定时休息提醒时间当到定时工作提醒时间时语音播报开始提醒当到定时休息提醒时间时语音播报休息提醒。8、系统校时通过按键设置系统时间9、坐姿提醒超声波传感器传感器检测坐姿情况当检测到的坐姿异常时声光报警10、久坐提醒检测久坐时间当检测到久坐时间大于设置的久坐提醒时间语音播报提醒11、台灯照明自动模式下当检测到有人时通过光敏传感器检测光照强度照明亮度根据光照强度自动调节亮度当检测到无人时关闭照明。12、温度报警温度大于设置的阈值时语音报警13、湿度报警湿度大于设置的阈值时语音报警14、自动降温当检测温度大于设置的阈值时自动开启风扇15、风扇控制手动模式下通过按键和app控制风扇开启和关闭16、亮度控制手动模式下通过按键和app控制照明亮度17、远程控制通过WIFI连接ONENET云平台手机APP连接ONENET云平台APP可以查看当前环境信息数据可调节阈值范围4、设计实现效果哔哩哔哩视频链接https://www.bilibili.com/video/BV1iDY36CEJK/?spm_id_from333.1387.homepage.video_card.click资料分享看文章末尾5、设计原理图6、设计PCB图7、程序设计#include stm32f10x.h #include delay.h #include usart.h #include USART2/usart2.h #include timer.h #include menu.h #include key.h #include modules.h #include oled.h #include usart3.h #include play.h #include voice.h #include adc.h #include light.h #include DHT11/dht11.h #include HCSR/hcsr.h #include hcsr501.h #include DS1302/ds1302.h #include led.h #include relay.h #include uln2003.h #include sg90.h /****************洪科单片机工作室******************* *** 破晓单片机 *** 项目:STM32单片机WiFi智能台灯系统 *** BILIBILI:洪科单片机 *** 小红书:洪科单片机 *** 授权IP:洪科单片机 *** 淘宝:洪科单片机 *** 闲鱼:洪科单片机 *** 版本:V01.01 *** MCU:STM32F103C8T6 ******************洪科单片机***********************/ //显示界面 CaiDanJieGouTi KeyTab[SIZE_CAIDAN] { {0 ,0 ,0 ,0 ,0 ,Main_Menu0}, / {1 ,1 ,1 ,1 ,1 ,Main_Menu1}, {2 ,2 ,2 ,2 ,2 ,Main_Menu2}, {3 ,3 ,3 ,3 ,3 ,Main_Menu3}, {4 ,4 ,4 ,4 ,4 ,Main_Menu4}, {5 ,5 ,5 ,5 ,5 ,Main_Menu5}, {6 ,6 ,6 ,6 ,6 ,Main_Menu6}, {7 ,7 ,7 ,7 ,7 ,Main_Menu7}, {8 ,8 ,8 ,8 ,8 ,Main_Menu8}, {9 ,9 ,9 ,9 ,9 ,Main_Menu9}, {10,10,10,10,10,Main_Menu10}, {11,11,11,11,11,Main_Menu11}, {12,12,12,12,12,Main_Menu12}, } ; //传感器变量声明 typedef struct { u8 temp;// u8 humi;// uint16_t light; uint16_t youren; uint16_t juli; uint16_t gaodu; uint16_t jiaodu; uint16_t liangdu; uint16_t yuyin; }SensorModulesValue; typedef struct { uint8_t tempTV;//阈值 uint8_t humiTV;//阈值 uint16_t lightTV;//阈值 uint16_t juliTV;//阈值 uint16_t jztime;//阈值 }SensorThresholdValue; typedef struct { uint16_t sendcount; uint8_t countFlag; uint8_t MODEFlag; uint8_t MOTORFlag; uint8_t MOTORKZFlag; uint8_t RELAY1Flag; uint8_t RELAY2Flag; uint8_t LEDFlag; uint8_t SG90Flag; uint8_t BEEPFlag; uint8_t BJ1Flag; uint8_t BJ2Flag; uint8_t BJ3Flag; uint8_t BJ4Flag; uint8_t BJ5Flag; uint8_t BJ6Flag; }DriveFlag; int main(void) { delay_init(); TIM3_Int_Init(499,7199);//1MS系统定时 OLEDGUI_Config(); //OLED初始化 OLEDGUI_DispString(30,0,Init...,16,1); key_Init();//按键初始化 Adc_Init();//Adc初始化 light_Init();//初始化light HCSR501_Init(); //HCSR501 初始化 DHT11_Init();//DHT11初始化 hcsr_Init();//hcsr初始化 delay_ms(100); InitClock(); //DS1302初始化 ReadDS1302Clock(TM); //DS1302初始化 beep_Init(); //beep初始化 relay_Init(); //relay初始化 SG90_Init(); SG90_SetAngle(90); ULN2003_IO_Init();//ULN2003初始化 delay_ms(100); uart2_init(115200); delay_ms(100); uart1_init(115200); delay_ms(100); OLEDGUI_DispString(0,0,Hardware init OK,16,1); //WiFi初始化 ESP8266_Init(); //初始化ESP8266 OLEDGUI_Clear(); //OLED清屏 OLEDGUI_DispString(0,0,Connect MQTTs Server...,16,1); while(ESP8266_SendCmd(ESP8266_ONENET_INFO, CONNECT)) DelayXms(500); OLEDGUI_DispString(0,16,Connect MQTT Server Success,16,1); DelayXms(500); OLEDGUI_Clear(); //OLED清屏 OLEDGUI_DispString(0,0,Device login ...,16,1); while(OneNet_DevLink()) //接入OneNET { OLEDGUI_DispString(0,32,CONNECT,16,1); ESP8266_SendCmd(ESP8266_ONENET_INFO, CONNECT); DelayXms(500); OLEDGUI_DispString(0,32,CONNECT,16,1); } OneNET_Subscribe(); OLEDGUI_Clear(); //OLED清屏 SensorThresholdSet();//阈值设置 SensorDataGet(); //获取传感器数据 OLEDGUI_Clear(); while(1) { //获取按键值 key_scan(); //进入菜单界面显示处理数据 GetKeylnput(Keystatus); //获取传感器数据 SensorDataGet(); delay_ms(100); } }8、设计包含内容
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI视觉项目初始化:Windows目录结构与工具链实战指南 2026/9/28 21:28:42

AI视觉项目初始化:Windows目录结构与工具链实战指南

1. 这不是一条命令,而是一份AI视觉项目启动的“现场手记”你看到的这行mkdir D:\模块Bcd /d D:\模块Bmkdir 任务一成果 任务二成果 任务三成果 任务四成果,表面看是Windows命令行里一串混乱的mkdir指令,甚至带点语法错误——它根本跑不通。但…

阅读更多 →
S7协议通信实战:从握手到数据读写的深度解析 2026/9/28 21:28:42

S7协议通信实战:从握手到数据读写的深度解析

1. 工控现场为什么要死磕S7协议搞工控的兄弟大多有过这种经历:产线上位机要采一批西门子PLC的数据,拿了个现成的库,连上能读,但偶尔断、偶尔慢、偶尔读回来的浮点数明显不对。翻日志只看到一句“连接超时”,剩下的全靠…

阅读更多 →
手写数字识别系统Python课设:CNN模型训练与部署指南 2026/9/28 21:28:21

手写数字识别系统Python课设:CNN模型训练与部署指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
ARTEMIS 视觉驱动移动端自动化:从架构到实战的完整指南 2026/9/28 21:28:14

ARTEMIS 视觉驱动移动端自动化:从架构到实战的完整指南

移动端自动化这个方向,过去几年一直有个尴尬的瓶颈:脚本能点、能滑、能截图,但一旦界面稍有变化,整套流程就崩了。传统方案靠的是控件树和固定坐标,本质上是在"背答案",而不是"理解题目&quo…

阅读更多 →
FPGA以太网硬件设计:RTL8211F与RGMII接口实战避坑指南 2026/9/28 21:28:14

FPGA以太网硬件设计:RTL8211F与RGMII接口实战避坑指南

1. 为什么RTL8211F在FPGA以太网项目里出镜率这么高搞FPGA以太网通信的兄弟,大概率都绕不开RTL8211F这颗PHY芯片。我第一次用它是在一个图像采集项目里,FPGA端需要把采集到的数据实时传到上位机,千兆带宽是硬指标,选型的时候翻了一…

阅读更多 →
CUDA版本匹配原理:驱动、Toolkit与PyTorch/TensorFlow的ABI兼容性 2026/9/28 21:28:14

CUDA版本匹配原理:驱动、Toolkit与PyTorch/TensorFlow的ABI兼容性

1. 为什么CUDA版本不匹配会直接让PyTorch/TensorFlow“装死”——从GPU驱动到框架ABI的完整断层链你刚配好一台RTX 4060 Laptop GPU的笔记本,兴冲冲跑通了nvidia-smi,显卡状态绿油油,驱动版本显示535.104.05,一切看起来都对。可一…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉