nodemcu联网检测当前时间,控制RGB灯在不同时间出现不同的渐变光影特效,新颖的方式提醒人时间在流逝

1、项目简介

2、实现逻辑

#初始化网络,初始化成功开始闪烁led
#根据时区获取网络时间
#在不同时间控制每一颗led的色彩,控制的时候是发一串数据,要把之前控制的再刷一遍,受限于ws2812控制协议,必须一串led都要刷新颜色和亮度
#早晨全绿,中午半绿半红,晚上全红

3、应用场景

#室外提示时间
#室内趣味挂件

4、核心代码梳理


Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB);u8 m_color[5][3] = { {255, 0, 0}, {0, 255, 0}, {0, 0, 255}, {255, 255, 255}, {0, 0, 0} };const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 8*3600;//这里采用UTC计时,中国为东八区,就是 8*60*60
const int   daylightOffset_sec = 0;//同上 void printLocalTime()
{struct tm timeinfo;if(!getLocalTime(&timeinfo)){Serial.println("Failed to obtain time");return;}Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
}void led_all(void)
{for (int i = 0; i < LEDS_COUNT; i++) {strip.setLedColorData(i, r_value, g_value, b_value);strip.show();delay(delayval);}
}void setup(void)
{strip.begin();strip.setBrightness(150);//USARTSerial.begin(115200);pinMode(LED_BUILTIN, OUTPUT);Serial.print("START");WiFi.begin(ssid, password);//连接到网络while (WiFi.status() != WL_CONNECTED) {//等待网络连接成功delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.print("IP address: ");Serial.println(WiFi.localIP());//打印模块IP//init and get the timeconfigTime(gmtOffset_sec, daylightOffset_sec, ntpServer);printLocalTime();
}void loop(void)
{//LEDdigitalWrite(LED_BUILTIN, HIGH);delay(200);digitalWrite(LED_BUILTIN, LOW);delay(200);//delay(500);//time///      struct tm timeinfo;if(!getLocalTime(&timeinfo)){Serial.println("Failed to obtain time");}//早晨全绿  6:00  //每3分钟变一个if((timeinfo.tm_hour >= 6) && (timeinfo.tm_hour <= 10)) //6:00- 10:00{test_value = (timeinfo.tm_hour-6)*20 + (timeinfo.tm_min/3);}else if((timeinfo.tm_min <= 40) && (timeinfo.tm_hour == 11)) //11:00- 11:40{test_value = 113 + (timeinfo.tm_min/3); //113 + 40/3  }else if((timeinfo.tm_min > 40) && (timeinfo.tm_hour == 11))  //11:40- 12:00{test_value = 128 + (timeinfo.tm_min/3); }if((timeinfo.tm_hour == 6) && (timeinfo.tm_min == 0))  //6:00{test_value = 0;}//中午半绿半红 11:40  128 128if((timeinfo.tm_hour == 11) && (timeinfo.tm_min == 40)) //11:40{test_value = 128;}if((timeinfo.tm_hour >= 12) && (timeinfo.tm_hour <= 20)) 12:00- 20:00{test_value = 128 + (timeinfo.tm_hour-12)*13 + (timeinfo.tm_min/3);}else if((timeinfo.tm_min <= 30) && (timeinfo.tm_hour == 21)) //21:00- 21:30{test_value = 124 + (timeinfo.tm_min/10); //255 + 30/3}//晚上全红 21:30  //每5分钟一个if((timeinfo.tm_hour == 21) && (timeinfo.tm_min == 30))//21:30{test_value = 255;}//凌晨切换if(timeinfo.tm_hour == 24)//24:00{test_value = 0;}r_value = test_value;g_value = 255 - test_value;//ws2812///  led_all();}

5、部分参考资料

#使用的是5050 SMD RGB LED内置改进版WS2811 ic 256灰度 8位/色彩

6、注意事项

#凌晨的时候灯带从全红变为全绿
#只控制色彩,亮度设置为固定值,亮度也是255级可调
#控制led的时候主要要在库函数里面定义好led的个数
#因为使用的是ESP32自带的控制WS2812的库函数,所以对ws2812不需要太了解
#esp32开发的环境是vscode+platformio,具体可查看往期博客

完整可运行项目地址

或 点击下方”大饼匠人“卡片,关注并回复"9"免费下载开发资料

技能梳理9@RGB+WS2812+ESP32相关推荐

  1. 【业务建模_5】数据分析师技能梳理

    [业务建模_5]数据分析师技能梳理 大纲 1.固定报表提炼 产品侧 活动侧 重点功能侧 2.固有分析模块工具 事件+多维度 漏斗+多维度 留存+多维度 3.临时需求+SQL模板+临时报表 4.用户画像 ...

  2. WS2812+ESP32 diy拾音灯+各种灯效 通过Blinker控制

    WS2812+ESP32 diy拾音灯+各种灯效 通过Blinker控制 更新说明: 软件版本:2.0.0 2023.02.08 修复软件开机自启动相关bug,具体为bat文件创建快捷方式时起始路径错 ...

  3. 技能梳理37@stm32+按键+光耦+锁存+串行转并行+继电器

    技能梳理37@stm32+按键+光耦+锁存+串行转并行+继电器 1.项目简介 2.实现逻辑 3.应用场景 #主从机有线控制 #开关操作 4.核心代码梳理 //根据按下的按键执行相应的操作 void h ...

  4. 技能梳理6@NODEMCU+BH1750+DS18B20+DHT11+PWM电机+ONENET

    智慧鱼缸,检测土壤湿度,检测室内温湿度和光照,检测鱼缸水位,检测鱼缸温度,各种蜂鸣器报警(水温超20-24)和控制舵机(步进电机),控制两个水泵,一个需要是从植物里面抽水到鱼缸,另外一个是供养氧作用, ...

  5. 技能梳理7@stm32+OLED+flash掉电保存+按键

    学校违纪分数记录,按键,1.3寸OLED显示,数据掉电保存 1.项目简介 2.实现逻辑 #如上图为显示屏显示内容 #三个物理按键,一个是选择对哪一项进行控制,两个是加减对应项的分数 #控制范围±10, ...

  6. 技能梳理23@语音模块+stm32+nfc

    小车nfc模块检测不同卡片播发不同声音,和上一个设计差不多,就是实现一个类似公交车刷卡播报到哪一战的效果 1.项目简介 2.实现逻辑 #见简介 3.应用场景 #公交站到站播报 4.核心代码梳理 //全 ...

  7. 技能梳理3@NODEMCU+串口屏+随机抽签+物理按键

    串口屏抽签,类似抽奖,物理按键选中和清除,mcu是stm32 1.项目简介 2.实现逻辑 #屏幕页面放58个图标控件,每个图标控件上显示一个人名,控件下面位置再放一个控件,可在语数外物化生6个字(6个 ...

  8. 技能梳理18@stm32+柔性墨水屏+薄膜按键+二维码

    薄膜压力按键控制mos开关,切换给柔性墨水屏vcc供电方式,单片机控制vcc切换图像,其中有可以扫描的二维码 1.项目简介 2.实现逻辑 #有两个薄膜按键,一个控制墨水屏供电方式(其实就是一个继电器) ...

  9. 技能梳理14@stm32+esp8266+ds18b20+红外传感器+烟雾传感器+CO传感器+蜂鸣器

    画板子,有至少8个io口(分别连ds18b20.红外传感器.烟雾传感器.CO传感器,后面3个传感器都是检测到就发高电平),2个串口,1个蜂鸣器,nbiot用的YED-C724 核心板(AIR724) ...

最新文章

  1. FastQC结果解读
  2. C#中导出Excel报表的方法
  3. 国内首本Android开发图书之双剑
  4. 程序员书单_UML篇
  5. 人工智能 | 增强小目标检测(Augmentation for small object detection)
  6. 天刀现在最新服务器,天涯明月刀8.21服务器更新公告
  7. 同步本地远程分支 git remote prune origin
  8. php正则学习,php中正则表达式的学习及应用
  9. P(A)P(B|A)=P(B)P(A|B)
  10. 数据库某个字段增加或减少数量
  11. java实现红包要多少钱_Java实现抢红包功能
  12. python gps坐标系utm坐标系等不同坐标系相互转换详细教材
  13. 带你认识PLC输入的源型与漏型接法
  14. IPA-蛋白质组、代谢组、转录组分析利器
  15. 银行面试之MySQL数据库
  16. 从零开始写一个Jison解析器(3/10):良好的开端是成功的一半——《政治学》 (亚里士多德)
  17. 编译《视觉SLAM十四讲》ch5里joinmap出现 ***/anaconda3/lib/libpng16.so.16:‘inflateValidate@ZLIB_1.2.9’未定义的引用
  18. 计算机内存容量影响游戏的吗,内存容量对整机游戏性能影响有多大?看完秒懂...
  19. oracle vba 数组_Excel VBA 连接各种数据库(二) VBA连接Oracle数据库
  20. 【codeforces 527A】Playing with Paper

热门文章

  1. 太平洋帕劳:上帝的水族箱
  2. HCNA学习笔记(一)企业网络基本架构简述
  3. 上汽集团、张江高科和阿里巴巴集团联合打造智己汽车
  4. 企业IT、OT与CT的融合,加快数字化制造转型
  5. 第四章:你造吗?CMOS传感器的构成与关键
  6. 厨电新十年,不可逆的行业分化与老板电器的数字进化
  7. c 语言pets进步天梯题目,2017年9月公共英语一级pets考试样题解析
  8. 护眼灯到底有没有护眼的效果?2022护眼儿童台灯选哪个牌子好
  9. (4.1.36.1)Graphics图形学解析补充篇:路径Path
  10. 网站模板设计的七大致命错误