152浏览
查看: 152|回复: 6

[项目] 【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

[复制链接]
【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图2

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图1

驴友花雕  中级技神
 楼主|

发表于 7 天前

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图1

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 7 天前

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图2

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 7 天前

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

  【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动
  项目之一百一十一:ESP32+GC9A01之模拟智能家居状态面板

实验开源代码

  1. /*
  2.   【Arduino】189种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百四十九:1.28寸圆形彩色TFT显示屏 高清IPS 模块 240*240 SPI接口GC9A01驱动
  4.   项目之一百一十一:ESP32+GC9A01之模拟智能家居状态面板
  5. */
  6. //       GC9A01---------- ESP32
  7. //       RST ------------ NC(复位引脚,此处未连接)
  8. //       CS ------------- D4(片选引脚,连接到ESP32的D4引脚)
  9. //       DC ------------- D2(数据/命令选择引脚,连接到ESP32的D2引脚)
  10. //       SDA ------------ D23 (green)(主数据输出引脚,连接到ESP32的D23引脚,绿色线)
  11. //       SCL ------------ D18 (yellow)(时钟信号引脚,连接到ESP32的D18引脚,黄色线)
  12. //       GND ------------ GND(接地引脚,连接到ESP32的接地端)
  13. //       VCC -------------3V3(电源引脚,连接到ESP32的3.3V电源)
  14. #include <TFT_eSPI.h>
  15. #include "SPI.h"
  16. // **屏幕宽高**
  17. #define SCREEN_WIDTH 240
  18. #define SCREEN_HEIGHT 240
  19. // **定义颜色**
  20. #define TFT_GREY 0x5AEB  // 手动定义灰色
  21. TFT_eSPI tft = TFT_eSPI();  // 初始化屏幕对象
  22. // **设备状态**
  23. bool lightOn = true;
  24. bool doorLocked = false;
  25. int temperature = 22;
  26. int humidity = 55;
  27. bool airConditionerOn = true;
  28. // **定义界面绘制区域**
  29. #define BOX_X 15
  30. #define BOX_Y 25
  31. #define BOX_WIDTH 210
  32. #define BOX_HEIGHT 170
  33. void setup() {
  34.     Serial.begin(115200);
  35.     tft.init();
  36.     tft.setRotation(2);
  37.     tft.fillScreen(TFT_BLACK);  // 初始化背景
  38.     drawHomeStatus();  // **绘制初始界面**
  39. }
  40. void drawHomeStatus() {
  41.     // **绘制背景框**
  42.     tft.fillRect(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT, TFT_GREY);
  43.     tft.setTextColor(TFT_WHITE);
  44.     tft.setTextSize(2);
  45.     // **灯光状态**
  46.     tft.setCursor(20, 45);
  47.     if (lightOn) {
  48.         tft.fillCircle(190, 50, 10, TFT_YELLOW);
  49.         tft.print("Light: ON");
  50.     } else {
  51.         tft.fillCircle(190, 50, 10, TFT_GREY);
  52.         tft.print("Light: OFF");
  53.     }
  54.     // **门锁状态**
  55.     tft.setCursor(20, 75);
  56.     if (doorLocked) {
  57.         tft.fillRect(190, 75, 20, 20, TFT_RED);
  58.         tft.print("Door: LOCKED");
  59.     } else {
  60.         tft.fillRect(190, 75, 20, 20, TFT_GREEN);
  61.         tft.print("Door: UNLOCKED");
  62.     }
  63.     // **温度**
  64.     tft.setCursor(20, 105);
  65.     tft.print("Temp: " + String(temperature) + "C");
  66.     // **湿度**
  67.     tft.setCursor(20, 135);
  68.     tft.print("Humidity: " + String(humidity) + "%");
  69.     // **空调状态**
  70.     tft.setCursor(20, 165);
  71.     if (airConditionerOn) {
  72.         tft.fillRect(190, 165, 20, 20, TFT_BLUE);
  73.         tft.print("AC: ON");
  74.     } else {
  75.         tft.fillRect(190, 165, 20, 20, TFT_GREY);
  76.         tft.print("AC: OFF");
  77.     }
  78. }
  79. void loop() {
  80.     delay(2000);
  81.     // **模拟设备状态变化**
  82.     lightOn = !lightOn;
  83.     doorLocked = !doorLocked;
  84.     temperature += random(-1, 2);
  85.     humidity += random(-2, 3);
  86.     airConditionerOn = !airConditionerOn;
  87.     drawHomeStatus();  // **更新界面**
  88. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 7 天前

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

这段代码模拟了一个智能家居状态面板,用于显示 灯光、门锁、温湿度、空调等设备的状态,并且每 2 秒自动更新,模拟设备的变化。
代码结构

1️⃣ 初始化屏幕
  • TFT_eSPI 驱动 GC9A01 显示屏,设定 黑色背景

2️⃣ 绘制设备状态
  • drawHomeStatus() 负责绘制 灯光、门锁、温湿度和空调的状态信息,并用 不同颜色和图形表示设备状态

    • 灯光:黄色圆圈表示打开,灰色圆圈表示关闭。
    • 门锁:红色方块表示锁定,绿色方块表示解锁。
    • 温度和湿度:动态数值显示环境信息。
    • 空调:蓝色方块表示开启,灰色方块表示关闭。

3️⃣ 动态数据更新
  • loop() 每 2 秒刷新设备状态:

    • 灯光开关变化(开/关)
    • 门锁状态变化(锁定/解锁)
    • 温度、湿度值随机波动(模拟环境变化)
    • 空调开关变化(开/关)

4️⃣ 持续刷新
  • delay(2000); 确保定期更新设备状态,模拟智能家居运行情况。



最终效果
屏幕实时显示智能家居设备状态
灯光、门锁、温湿度、空调状态不断更新
不同颜色和图形增强可视化体验
持续刷新,确保数据始终准确

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 7 天前

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

实验场景图  动态图

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图2

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 7 天前

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图1

【花雕学编程】Arduino动手做(249)---GC9A01智能家居面板图2
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail