基于有方GPRS的智能电梯控制系统
构思背景
目前的很多企业都在很高的楼层办公,每天上下班高峰期,电梯门口总是会排上很长的队,为了让电梯用最快的速度将所有的员工送到指定楼层,需要给出一些改进;下班的时候,由于楼层很高,员工往往需要花费一些时间等待电梯到达自己的楼层,利用一些改进可以让员工掌握电梯状态,从而节省一些等电梯的时间。
功能特色
功能一:我们对电梯作出这样的改进:在上班高峰时段,电梯只能向上运行时开门搭载上朝楼上去的人员,即电梯只会响应朝上行的按键,在向下运行的过程中,不会响应任何按钮。在下班时间段,也可以做相应修改。从而节省大多数人的时间,将人快速送达指定地点。
功能二: 平时,由于工作人员多工作于很高的楼层,而此时的电梯可能处于一楼,所以可以先向控制中心发送一条短信来获取电梯的实际位置,如果电梯此时距离自己所在的楼层还有一段距离,就可以提前向控制中心发送一条请求短信,这时控制中心会向电梯应用端发送请求信号,命令电梯开往指定的楼层,从而减少等待的时间。
具体操作
只需要编辑短信XY#到指定的电话号码就可以远程控制电梯的运行。其中X代表发信人所在楼层,Y代表发信人将要到达的楼层。电梯也会对发信人的要求进行应答,告诉电梯当前的运行情况,好让发信人掌握好乘坐电梯的时间。
GPRS的使用
我们主要用到了有方GPRS模块的短信收发功能。主要用于在上下班高峰时帮助员工获得电梯状态信息、向电梯发送停靠指令。命令电梯开往指定的楼层,从而减少等待的时间。电梯应用端使用有方GPRSM660+模块来接收来自控制中心的信号并发送短信作为应答,从而实现用户与电梯的交互通信。
硬件电路图
作品展示
原文:http://blog.csdn.net/tengweitw/article/details/45896479
作者:nineheadedbird
软件实现
#include#include #define uint unsigned int#define uchar unsigned char#define FLOOR 10int Con_Floor = 1;//当前的楼层号int com_dat = 0 ;int flag2 = 0 ;int low = 1 ;int high = 9 ;int sign_flag = 0 ;void delayms(uint xms); //延时函数(毫秒级)uint test(uchar * floor); //测试在几楼uint checkinfo();uchar ReceiveData(uchar* ,uchar*);void writefloor(int);void writestate(int);void up_down_logic(); //电梯的运行逻辑void com_init(void); //串口初始化void send_uart(uchar ch); //向串口发送单个字符void send_AT_IPR(void); //设置模块的波特率为9600bpsvoid send_AT_CMGF(void); //设置发短信为文本模式void send_AT_CSCS(void); //发送TE的字符集为GSMvoid send_AT_CNMI(void); //设置短信的提示信息void send_AT_CMGR(); //发送读取命令void send_AT_CMGS(uchar *phone_num); //选择发送目的手机号void send_text(uchar *text); //发送短信文本void init_GPRS(void); //初始化GPRS模块sbit dula=P2^6;sbit wela=P2^7;sbit rs=P3^5;sbit lcden=P3^4;sbit s1=P2^0;sbit s2=P2^1;sbit s3=P2^2;sbit s4=P2^3;sbit rd=P3^7;sbit dscs=P1^4;sbit dsas=P1^5;sbit dsrw=P1^6;sbit dsds=P1^7;sbit dsirq=P3^3;uchar count,s1num,flag,flag1;uchar miao,shi,fen;uchar code table[]=" 2012-10-15 MON";uchar code table1[]=" 00:00:00";uchar code floor[]="FLOOR: 1";uchar code state[]="STATE: IDLE";uchar code welcome[]="WELCOME TO USE!";uchar code up[]="UP ";uchar code down[]="DOWN";uchar code idle[]="IDLE";void write_date(uchar);void write_ds(uchar,uchar);uchar read_ds(uchar); //从ds187读取时间void init();void keyscan();void write_sfm(uchar add,uchar date);uchar code *AT_CMGF = "AT+CMGF=1"; //发送AT+CMGF=1,设置文本模式uchar code *AT_CSCS = "AT+CSCS="; //选择TE的字符集(
有方GPRS智能电梯控制系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)