智能家居控制系统
一、作品简介
设计名称: 触摸控制的智能化家居控制系统设计
作品介绍:通过触摸屏和外部开关控制家居设备的开启和关闭,并且对应的显示出当前家居设备工作状态。利用PIC32-MAXI-WEB demo(MCU: PIC32MX795F512L,PIC单片机由于高可靠性和抗干扰性能优越,经常用在工业控制领域和家电设备中)作为主控板, 外部的扩展开关和LED板来代替家居控制系统中的开关和电灯。
作品如下图所示:
二、系统框图
系统应用简图如下:
如系统应用简图所示,利用demo和外部扩展模块来实现整个设计方案。
三、各部分功能说明
如下图圈出区域所示,利用拨码开关代替家中常用的翘班开关,采用外部的3V电池供电。IN1为开关检测信号,MCU通过电平检测功能即可采集开关状态。
如下图圈中区域所示,利用LED代替照明灯。当控制器输出控制信号,导通隔离继电器S1的开关侧后,LED点亮。开关、控制板和LED都是采用了不同的电源和电压信号,模拟实际家居控制系统中的各负载隔离供电。
四、作品源码
测试主要源码如下,在测试程序中读取信号状态和输出控制信号。
void vTaskTest( void * pvParameters )
{
xSemaphoreTake(xSemaphorePrint, portMAX_DELAY);
while(1); {
xSemaphoreTake(xSemaphorePrint, portMAX_DELAY);
switch(ProdTestType) {
case PROD_TEST_NONE:
break;
case PROD_TEST_EXTCON:
vTaskSuspend(pxTaskIO);
ExtConTestAll();
UserPeriphInit();
vTaskResume(pxTaskIO);
break;
case PROD_TEST_USBOTG:
break;
case PROD_TEST_CAN:
StatLEDSet(1, FALSE);
StatLEDSet(2, FALSE);
StatLEDSet(3, FALSE);
{
int counter = 4000;
char ch;
CANtesting(1);
while(counter--) {
CANtesting(0);
if( UartCommRead(&ch, 1) ) {
UartCommWrite(&ch, 1);
ch = '*';
UartCommWrite(&ch, 1);
}
vTaskDelay(5);
}
}
StatLEDSet(1, FALSE);
StatLEDSet(2, FALSE);
StatLEDSet(3, TRUE);
break;
}
ProdTestType = PROD_TEST_NONE;
}
}
源码链接:https://download.eeworld.com.cn/detail/beyond_%E7%AC%91%E8%B0%88/630634
五、作品功能演示视频
演示视频中主要是模拟家居控制中的使用情况,进行了实际操作演示。
视频链接:https://training.eeworld.com.cn/video/38917
六、项目总结
项目总结:通过在触摸屏上和机械开关的方式来实现家居控制系统的开关控制,并且用触摸屏上的图标和LED来显示被控制的家电状态,从而实现智能家居控制系统的概念设计。
备注:此帖主要是把之前的帖子(规定时间内发的帖子,链接:https://bbs.eeworld.com.cn/thread-1268635-1-1.html )内容整理一下,以便阅读,多谢。
本帖最后由 beyond_笑谈 于 2024-1-18 13:57 编辑那个按钮+LED灯的板子是得捷买的吗?
引用: wangerxian 发表于 2024-1-18 17:11 那个按钮+LED灯的板子是得捷买的吗?
那个不是,不确定得捷有没有