[项目]节日彩灯 物联网控 精华

1764浏览
查看: 1764|回复: 10

[项目] 节日彩灯 物联网控

[复制链接]
本帖最后由 云天 于 2023-1-14 20:07 编辑

节日彩灯 物联网控图1

【项目背景】
临近春节,家里的灯也该有它应有的样子,准备使用Beetle-ESP32控制器,有4个数字口,我只用了D2引脚,集成WIFI无线协议,可以用物联网控制。电源使用旧手机充电器改造,遥控器使用“鳄霸王”。
节日彩灯 物联网控图2

【改造充电器】
节日彩灯 物联网控图3


节日彩灯 物联网控图4

拆解手机充电器,焊上电源线,给ESP32供电。
【测试ESP32】
节日彩灯 物联网控图5

1、连接物联网,Easy Iot
节日彩灯 物联网控图7

节日彩灯 物联网控图6

2、物联网点灯程序
主控板选择FireBeetle ESP32
节日彩灯 物联网控图21

网络扩展选择WIFI、MQTT
节日彩灯 物联网控图22

图形化编程

节日彩灯 物联网控图8

【灯带连接】
节日彩灯 物联网控图9

灯带数据引脚接ESP32板的D2引脚,灯带与ESP32单独供电,且共地。
【遥控灯测试】
节日彩灯 物联网控图10

1、鳄霸王程序(掌控板
节日彩灯 物联网控图11

同micropython程序

  1. # MindPlus
  2. # mpython
  3. from umqtt.simple import MQTTClient
  4. from mpython import *
  5. import network
  6. import usocket
  7. import music
  8. import time
  9. def hostgetIP(host):
  10.         return usocket.getaddrinfo(host,8080,0,0,usocket.SOL_SOCKET)[0][4][0]
  11. # 自定义函数
  12. def BoFangXianShi(NaRong):
  13.   global my_variable, BiaoShi
  14.   music.play(music.BA_DING, wait=False, loop=False)
  15.   oled.fill(0)
  16. my_wifi = wifi()
  17. p0=MPythonPin(0,PinMode.ANALOG)
  18. p1=MPythonPin(1,PinMode.ANALOG)
  19. my_wifi.connectWiFi("sxs","smj080823")
  20. while not (my_wifi.sta.isconnected()):
  21.   pass
  22. mqtt = MQTTClient("", hostgetIP("iot.dfrobot.com.cn"), 1883, "X8jykxFnR", "u8jskbFngz", keepalive=30)
  23. try:
  24.   mqtt.connect()
  25.   print('MQTT Connected Successful')
  26. except:
  27.   print('MQTT Connection Failed')
  28. BiaoShi = 0
  29. oled.DispChar("初始化成功", 42, 22, 1)
  30. oled.show()
  31. my_clock = Clock(oled, 64, 32, 30)
  32. time.sleep(5)
  33. while True:
  34.   if (p0.read_analog() > 4000):
  35.     if (not (BiaoShi == 1)):
  36.       BiaoShi = 1
  37.       mqtt.publish(str("jBarN574g"), str("R").encode('utf-8'))
  38.       BoFangXianShi("红灯")
  39.   elif (p1.read_analog() > 4000):
  40.     if (not (BiaoShi == 2)):
  41.       BiaoShi = 2
  42.       mqtt.publish(str("jBarN574g"), str("G").encode('utf-8'))
  43.       BoFangXianShi("绿灯")
  44.   elif (p0.read_analog() < 100):
  45.     if (not (BiaoShi == 3)):
  46.       BiaoShi = 3
  47.       mqtt.publish(str("jBarN574g"), str("B").encode('utf-8'))
  48.       BoFangXianShi("蓝灯")
  49.   elif (p1.read_analog() < 100):
  50.     if (not (BiaoShi == 4)):
  51.       BiaoShi = 4
  52.       mqtt.publish(str("jBarN574g"), str("M").encode('utf-8'))
  53.       BoFangXianShi("彩灯")
  54.   elif button_a.value() == 0:
  55.     if (not (BiaoShi == 5)):
  56.       BiaoShi = 5
  57.       mqtt.publish(str("jBarN574g"), str("O").encode('utf-8'))
  58.       BoFangXianShi("开灯")
  59.   elif button_b.value() == 0:
  60.     if (not (BiaoShi == 6)):
  61.       BiaoShi = 6
  62.       mqtt.publish(str("jBarN574g"), str("S").encode('utf-8'))
  63.       BoFangXianShi("关灯")
  64.       time.sleep(5)
  65.   elif ((BiaoShi == 6) or (BiaoShi == 0)):
  66.     oled.fill(0)
  67.     my_clock.settime()
  68.     my_clock.drawClock()
  69.     oled.show()
复制代码
2、ESP32程序



节日彩灯 物联网控图12

同micropython程序

  1. /*!
  2. * MindPlus
  3. * firebeetleesp32
  4. *
  5. */
  6. #include <DFRobot_Iot.h>
  7. #include <DFRobot_NeoPixel.h>
  8. // 动态变量
  9. volatile float mind_n_BiaoShi, mind_n_YunXingShiJian;
  10. // 函数声明
  11. void obloqMqttEventT0(String& message);
  12. // 静态常量
  13. const String topics[5] = {"jBarN574g","","","",""};
  14. const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
  15. // 创建对象
  16. DFRobot_Iot      myIot;
  17. DFRobot_NeoPixel neoPixel_D2;
  18. // 主程序开始
  19. void setup() {
  20.         myIot.setMqttCallback(msgHandles);
  21.         Serial.begin(9600);
  22.         myIot.wifiConnect("sxs", "smj080823");
  23.         while (!myIot.wifiStatus()) {yield();}
  24.         Serial.println(myIot.getWiFiLocalIP());
  25.         myIot.init("iot.dfrobot.com.cn","X8jykxFnR","","u8jskbFngz",topics,1883);
  26.         myIot.connect();
  27.         while (!myIot.connected()) {yield();}
  28.         digitalWrite(D9, HIGH);
  29.         delay(5000);
  30.         digitalWrite(D9, LOW);
  31.         neoPixel_D2.begin(D2, 120);
  32.         neoPixel_D2.clear();
  33.         mind_n_BiaoShi = 0;
  34.         mind_n_YunXingShiJian = millis();
  35.         neoPixel_D2.showRainbow(0, 119, 1, 360);
  36. }
  37. void loop() {
  38.         mind_n_YunXingShiJian = millis();
  39.         if ((mind_n_BiaoShi==7)) {
  40.                 neoPixel_D2.rotate(1);
  41.         }
  42.         else if ((mind_n_BiaoShi==1)) {
  43.                 neoPixel_D2.setRangeColor(0, 119, 0xFFFFFF);
  44.                 mind_n_BiaoShi = 0;
  45.         }
  46.         else if ((mind_n_BiaoShi==2)) {
  47.                 mind_n_BiaoShi = 0;
  48.                 neoPixel_D2.clear();
  49.         }
  50.         else if ((mind_n_BiaoShi==3)) {
  51.                 mind_n_BiaoShi = 0;
  52.                 neoPixel_D2.setRangeColor(0, 119, 0xFF0000);
  53.         }
  54.         else if ((mind_n_BiaoShi==4)) {
  55.                 mind_n_BiaoShi = 0;
  56.                 neoPixel_D2.setRangeColor(0, 119, 0x00FF00);
  57.         }
  58.         else if ((mind_n_BiaoShi==5)) {
  59.                 mind_n_BiaoShi = 0;
  60.                 neoPixel_D2.setRangeColor(0, 119, 0x0000FF);
  61.         }
  62.         else if ((mind_n_BiaoShi==6)) {
  63.                 mind_n_BiaoShi = 7;
  64.                 neoPixel_D2.showRainbow(0, 119, 1, 360);
  65.         }
  66. }
  67. // 事件回调函数
  68. void obloqMqttEventT0(String& message) {
  69.         if ((message=="O")) {
  70.                 mind_n_BiaoShi = 1;
  71.         }
  72.         else if ((message=="S")) {
  73.                 mind_n_BiaoShi = 2;
  74.         }
  75.         else if ((message=="R")) {
  76.                 mind_n_BiaoShi = 3;
  77.         }
  78.         else if ((message=="G")) {
  79.                 mind_n_BiaoShi = 4;
  80.         }
  81.         else if ((message=="B")) {
  82.                 mind_n_BiaoShi = 5;
  83.         }
  84.         else if ((message=="M")) {
  85.                 mind_n_BiaoShi = 6;
  86.         }
  87. }
复制代码
【安装吸顶灯】节日彩灯 物联网控图13节日彩灯 物联网控图14节日彩灯 物联网控图15节日彩灯 物联网控图16节日彩灯 物联网控图17节日彩灯 物联网控图18节日彩灯 物联网控图19节日彩灯 物联网控图20
【演示视频】











三春牛-创客  初级技神

发表于 2023-1-14 23:00:15

厉害厉害
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-1-14 23:01:18

放上去不打算拆了吗?
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-1-14 23:02:41

还是吸顶灯的......感觉这种彩色灯带容易坏.............
回复

使用道具 举报

rzyzzxw  版主

发表于 2023-1-15 11:20:57

赞赞云天老师
回复

使用道具 举报

云天  初级技神
 楼主|

发表于 2023-1-15 17:11:44

三春牛-创客 发表于 2023-1-14 23:01
放上去不打算拆了吗?

这个灯平时基本不用,弄成彩灯,烘托节日气氛。
回复

使用道具 举报

三春牛-创客  初级技神

发表于 2023-1-15 17:12:24

云天 发表于 2023-1-15 17:11
这个灯平时基本不用,弄成彩灯,烘托节日气氛。

哦,原来是这样
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-1-15 23:25:41

厉害厉害
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-1-15 23:26:42

赞赞!!
回复

使用道具 举报

花生编程  中级技匠

发表于 2023-1-15 23:27:49

灯挺漂亮的。
回复

使用道具 举报

rzyzzxw  版主

发表于 2023-1-21 21:25:05

新年快乐!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail