【IoT】交互式智能多功能插排设计

简介: 电子插排设计~

介绍
通过对红外遥感技术、GSM远程控制技术等研究,开发设计了交互式智能多功能插排,可以实现多通道分离远程与近程定时功能。设计的“近距离红外遥控系统”,在规定的空间距离范围内,可以用遥控器发出红外信号控制插排的开关和定时;

设计的“远程定时控制系统”,通过手机短信在“用户指令”与“预定控制系统”之间进行信息交互,把传统无线控制推广到手机通信公网的无线控制,实现远程控制插座的时间设定以及开关设置。

LED液晶显示屏可以引导和显示用户的指令设定,为用户提供最大的人机交互自由度。本智能插排功能完善且操作简单,不受通信线路及地区限制,具有可靠性高、抗干扰能力强、使用方便灵活等优点。

涉及理论
红外遥感技术
红外遥控的发射电路采用红外发光二极管来发出经过调制的红外光波,一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。

红外接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构)。

红外遥控用红外线来传送控制信号,它的特点是有方向性、不能有阻挡、距离一般不超过7米、不受电磁干扰,不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。红外遥控体积小、功耗低、功能强、成本低,在家用电器、室内近距离(小于10米)遥控中得到了广泛的应用。

GSM远程控制技术
GSM系统是目前基于时分多址技术的移动通讯体制中比较成熟、完善、应用最广泛的一种系统。其网络覆盖范围广,布线成本低,是我国目前主要使用的蜂窝数字移动通信系统,也是目前唯一的具有最大覆盏范围和通信可靠性的无线通信网。GSM能提供语音功能,数据传输服务(提供给固定(有线)用户和ISDN用户的大部份服务GSM都提供,包括分组交换资料网所提供的服务)和短消息服务。

GSM远程智能控制系统就是前端借助GSM的短信功能向异地的首发端发送控制指令,收发端依据控制指令操纵智能终端执行相应的指令。有时候根据需要,收发端也可以将信息以短信的形式发送至前端。利用GSM短消息进行远程无线通信,具有通讯成本低,不受通信线路及地区限制、保密性高、可靠性高、抗干扰能力强,使用方便、灵活,通讯快捷等特点。除此之外还具有双向数据传输功能,性能稳定,为远程数据传送和监控设备的通信提供强大的支持平台。

本交互式智能多功能插排,具有传输的信息基小、对传输速度要求不高和通信要求简单可靠的特点,使用GSM网络的短消息服务功能不必考虑信道的可靠性等因素,可以很好的满足对于插排远程控制的功能要求。

SIM300模块的原理
SIM300是一款三频段GSM/GPRS模块,可在全球范围内的EGSM900MHz、DCS1800MHz、PCS1900MHz三种频率下工作,能够提供GPRS多信道类型多达10个,并且支持CS-1、CS-2、CS-3和CS-4四种GPRS编码方案。

SIM300结构小巧,外形尺寸仅40mm33mm2.85mm,几乎可满足所有对产品尺寸有要求的工业应用,其主要功能有:语音通话、短信收发、GPRS网络数据收发、彩信收发。SIM300模块主要应用在通讯领域,如移动电话、远程数据监控、短信提醒发送、GPRS MODEN。

SIM300内部功能模块有:

键盘和SPI类型的LCD接口,方便用户开发自己的应用设备。
具有调试和数据输出两个串口,帮助开发人员更容易开发产品。
双音频通道,包含两个麦克风输入和两个话筒输出,由AT指令配置其工作模式。
SIM300具有低功耗设计,睡眠模式下的电流消耗仅为2.5mA。SIM300内部集成了TCP/IP协议栈,并且扩展了TCP/IP AT指令,使用户利用该模块开发数据传输设备变得非常简单方便。

SIM300使用串口通讯的方式和外部链接,通过串口数据的交换可以使其执行命。电源接口可接入5V-26V的直流电压,最大电流应大于2A以保持SIM300模块的正常工作。

使用时,将一张普通的SIM卡插入SIM模块的手机卡插槽,用户用手机按特定格式编辑短信息发送到SIM模块,SIM模块将所接收的数据进行解包校验,并将完整的命令通过串口连到微处理器,微处理器对收到的短信进行校验,首先检查是否是设定的用户号码,然后滤去PDU码的一些前缀,提出有用的信息码,然后从ROM中取出相应的遥控码,通过单片机发射控制信号。

设计
交互式智能多功能插座是一种定时、远近程控制交互装置,集红外遥感技术和GSM远程控制技术于一体。其设计主要包括系统硬件(红外遥控单元、GSM远程控制单元、LCD显示单元、控制器)和系统软件的设计。

近距离红外遥控接口电路的设计
红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。发射部分包括键盘、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

利用WD6122型号红外遥控器,完成接收模块的接口电路设计。红外接收模块内部含有高频的滤波电路,专门用来滤除红外线合成信号的载波信号(38KHz),并送出接收到的信号。当红外线合成信号进入红外接收模块,在其输出端便得到原先发射器发出的数字编码,只要经过单片机解码程序进行解码,可以得知按下了哪一个按键,从而做出相应的控制处理,完成红外遥控的动作。若为有效信号,则响应该信号,并且蜂鸣器鸣一声,通过nokia5110显示用户的操作。

主控器的硬件设计
控制器电路以STC89C52RD+单片机为核心,由单片机电路,I/O接口驱动电路,系统参数存储电路,按键电路,LCD显示电路,GSM远程控制电路组成。单片机写有C语言程序,用于接收、分析和调控接收到的指令以控制外源设备,以满足用户对电器设备调节的需求;单片机电路通过I/O接口、串行数据接口和LED恒流驱动电路、按键电路、LCD显示接口电路、GSM远程控制电路、数据存储电路相连接。各组块有机结合,各司其职,协调合作。

主控器的软件设计
系统软件写在控制器的单片机内,用C语言编程,采用流行的模块法编程,主要包括人机接口(遥控键盘驱动模块、LCD驱动模块),液晶显示模块,设定参数存储模块。由主程序统筹协调各模块依存关系,达到了操作界面友好,控制效果理想,系统高度稳定的目标。

远程定时控制系统的设计
远程定时控制系统包括单片机系统芯片、时钟芯片、看门狗芯片、GSM接口、存储芯片及驱动芯片。主控器的重点是进行短信息的接收和PDU解码。利用GSM模块,我们基于OEM板,进行二次开发。通过手机“中文短信”,在“用户指令”与“预定控制系统”之间进行“信‘息交互”,实现远程控制插座的时间设定以及开关设置。

通过单片机发送AT指令对GSM模块进行初始化设置,对GSM的控制也通过AT指令完成,并由GSM对指令的响应值来做出相应的动作。关于信息的发送,采用PDU编码模式,预先将定位信息内容进行编译,并存储在单片机RAM中,方便随时调用、发送。

PDU相当于一个数据包,它由构成消息的信息组成。作为一种数据单元, 它包含了源/目的地址、有效时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。PDU结构根据短消息由移动终端发起或由移动终端接受而不同。

近距离红外控制系统的软件设计
红外遥控器共有18个按键,其中10个数字键,3个功能选择键,2个数字调节键,2个选项移位键以及1个电源开关键。发射的一帧码含有一个引导码,16位的用户编码和8位的键数据码、键数据码的反码也同时被传送。码型结构如图6。

通过红外遥控器按键操作与液晶显示屏实现定时功能。红外遥控器是将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。二进制脉冲码的形式有多种,其中最为常用的是PWM码(脉冲宽度调制码)和PPM码(脉冲位置调制码)。前者以宽脉冲表示1,窄脉冲表示0。后者脉冲宽度一样,但是码位的宽度不一样,码位宽的代表1,码位窄的代表0。每次8位的码被传送之后,它们的反码也被传送,减少了系统的误码率。

LCD显示单元的设计
该项目所选用的液晶显示屏型号为nokia5110,该模块采用84x48点阵LCD,可以显示四行汉字。采用串行接口与主处理器进行通信。模块的CS引脚实现片选信号功能(低电平有效),D/C引脚进行数据/命令切换,从DIN引脚输入数据。模块采用3.3V输入电压。

根据课题的要求,为液晶设置五个界面(时钟欢迎界面、通道选择界面、模式选择界面、定时设置界面、插排的工作状态界面),我们将红外信号和GSM远程命令短信作为触发信号来控制液晶界面的变化,引导和显示用户的指令设定。

样机模型的调试
交互式智能多功能插座有6个按键供用户操作,分别是电源总开关,单片机复位键(当单片机程序混乱时,可以复位单片机,这时各通道总开关闭合,可以当做普通插排使用),各通道单独电源键(该开关可以分别用单片机和按钮开关控制,避免用户在遥控器丢失情况下不能使用的情况)。

红外遥控器主要功能是近距离控制插排的定时功能,实现用户与插排的近距离交互功能。红外遥控器共有八个按键,分别为总电源开关键,菜单键(选择通道),确定键,返回键,选项移位键(左移与右移),数字调节键(数字加与数字减)。可以通过红外遥控器与液晶显示屏实现定时功能。

GSM模块,可以利用手机发命令短信的形式,通过TCP与串口通信协议实现远距离控制功能,具体发送形式为“通道1/2/3/4,开到关/关到开/常开/常关,时间(0-999)”通过单片机程序将用户的命令传送到插排中,进而实现远距离人机交互功能。

源程序

include "nokia_5110.h"

include "infrared.h"

include "mytype.h"

//*

define delay_time 25767

/*
/*------------------------------------------------

              定时器0中断处理

------------------------------------------------*/
void tim0_isr (void) interrupt 1 using 1
{
irtime++; //用于计数2个下降沿之间的时间
}

/*------------------------------------------------

              外部中断0中断处理

------------------------------------------------*/
void EX0_ISR (void) interrupt 0 //外部中断0服务函数
{

static unsigned char  i;             //接收红外信号处理
static bit startflag;                //是否开始处理标志位
if(startflag)                         
{
    if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms
        i=0;
    irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1
    irtime=0;
    i++;
       if(i==33)
      {
          irok=1;
        i=0;
      }
}
  else
{
    irtime=0;
    startflag=1;
}

}
/*------------------------------------------------

            定时器0及外部中断0初始化

------------------------------------------------*/

此处省略部分程序

/*------------------------------------------------

              键值处理

------------------------------------------------*/

void Ir_work(void)//红外键值散转程序

此处省略部分程序

/*------------------------------------------------

            红外码值处理

------------------------------------------------*/
void Ircordpro(void)//红外码值处理函数
{

unsigned char i, j, k;
unsigned char cord,value;
k=1;
for(i=0;i<4;i++)      //处理4个字节
{
    for(j=1;j<=8;j++) //处理1个字节8位
    {
        cord=irdata[k];
        if(cord>7)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差
        value|=0x80;
        if(j<8)
        {
            value>>=1;
        }
     k++;
     }
 IRcord[i]=value;
 value=0;     
 } 
 irpro_ok=1;//处理完毕标志位置1

}

void main(void)
{

EX0init(); //初始化外部中断
TIM0init();//初始化定时器
LCD_init(); //初始化液晶    
LCD_clear();
form1();
LCD_write_english_string(53,4," ");
LCD_write_english_string(5,2,"*");
while(1)//主循环
{
if(irok)                        //如果接收好了进行红外处理
    {   
        Ircordpro();
         irok=0;
    }

if(irpro_ok)                   //如果处理好后进行工作处理,如按对应的按键后显示对应的数字等
    {
         Ir_work();
       }        
}

}

/
void fun()
{

switch(k)
{
    case(0):form1();fun1(); break;
    case(1):form2();fun1(); break;
    case(2):form3_1(); break;
    case(3):form3_2(); break;
}

}

此处省略部分程序

/*-----------------------------------------------------------------------
LCD_init : 3310LCD显示
-----------------------------------------------------------------------*/

此处省略部分程序

/*-----------------------------------------------------------------------
LCD_write_byte : 使用SPI接口写数据到LCD

输入参数:data :写入的数据;

      command :写数据/命令选择;

-----------------------------------------------------------------------*/

此处省略部分程序

void LCD_write_byte(unsigned char dat, unsigned char command)
{

unsigned char i;
//PORTB &= ~LCD_CE ;                // 使能LCD
LCD_CE = 0;

if (command == 0)
 // PORTB &= ~LCD_DC ;            // 传送命令
 LCD_DC = 0;
else
 // PORTB |= LCD_DC ;                // 传送数据
 LCD_DC = 1;
    for(i=0;i<8;i++)
    {
        if(dat&0x80)
            SDIN = 1;
        else
            SDIN = 0;
        SCLK = 0;
        dat = dat << 1;
        SCLK = 1;
    }

// SPDR = data; // 传送数据到SPI寄存器

//while ((SPSR & 0x80) == 0);         // 等待数据传送完毕

//PORTB |= LCD_CE ;            // 关闭LCD
 LCD_CE = 1;

}

相关文章
|
SQL 物联网 Apache
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(11)
目前,IoTDB中不存在冲突的权限,因此用户的真正权限是用户自身权限和用户角色权限的结合。也就是说,要确定用户是否可以执行操作,取决于用户自己的权限之一或用户角色的权限是否允许该操作。用户自己的特权和用户角色的特权可能会重叠,但这并不重要。
210 1
|
存储 物联网 数据管理
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(12)
现在到了使用Apache IoTDB进行IoT相关开发的架构设计与功能实现的最后一个环境,在本文中我将向大家介绍IoTDB的查询语言。IoTDB为咱们广大开发者提供了类似SQL的查询语言,用于与IoTDB进行交互,查询语言可以分为4个主要部分:架构语句、数据管理语句、数据库管理语句、功能。
220 0
|
SQL 传感器 物联网
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(10)
物联网提供限制/限制条款和偏移/偏移子句,以使用户对查询结果有更多的控制权。使用 LIMIT 和 SLIMIT 子句允许用户控制查询结果的行数和列数,使用 OFFSET 和 SOFSET 子句允许用户设置结果的起始位置进行显示。
153 0
|
4月前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
117 1
|
3月前
|
物联网 Linux C#
一键掌控未来!用 Uno Platform 打造跨平台 IoT 应用,轻松连接你的智能设备,让生活更智能!
微软的开源跨平台框架 Uno Platform 支持使用 C# 和 XAML 一次性编写代码并部署至多个平台,如 Windows、macOS、Linux、WebAssembly 及 iOS/Android,这使其成为 IoT 设备开发的理想选择。本文通过创建控制网络 LED 灯的应用,详细介绍了 Uno Platform 的环境搭建及 MQTT 客户端配置过程,实现了 LED 状态订阅与控制指令发送功能。该案例展示了 Uno Platform 在 IoT 领域的潜力及其跨平台优势,未来可扩展至更多设备类型,构建智能家居系统。
317 58
|
1月前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
61 4
|
2月前
|
物联网 Linux Android开发
一键掌控未来!用 Uno Platform 打造跨平台 IoT 应用,轻松连接你的智能设备,让生活更智能!
本文通过具体案例介绍了如何使用微软的开源框架 Uno Platform 实现与 IoT 设备的集成。Uno Platform 支持一次编写、多平台部署,适用于 Windows、macOS、Linux、WebAssembly 及 iOS/Android。本例创建了一个控制网络 LED 灯的应用,详细说明了环境搭建、MQTT 客户端配置、主题订阅及控制指令发送等步骤。该案例展示了 Uno Platform 在 IoT 领域的潜力及其跨平台优势,未来可扩展至更多设备类型,构建智能家居系统。
91 0
|
5月前
|
传感器 供应链 物联网
ERP系统与物联网(IoT)集成:实现智能化业务管理
【7月更文挑战第29天】 ERP系统与物联网(IoT)集成:实现智能化业务管理
423 0
|
7月前
|
传感器 物联网 大数据
物联网(IoT)技术与应用:塑造未来的智能化生活
【5月更文挑战第1天】物联网(IoT)技术整合传感器、嵌入式系统、云计算与大数据,连接智能设备,重塑生活与工作方式。应用涵盖智能家居、工业自动化、农业、智能城市及医疗健康,提升效率与便利性。然而,数据安全、设备兼容性及网络基础设施仍是挑战。随着5G和AI进步,IoT将在更多领域发挥潜力,驱动社会智能化转型,需关注技术挑战并加强创新。
下一篇
DataWorks