基于物联网的温湿度控制演示系统 下载本文

附 录

嵌入式系统的搭建:

在PC机上安装Ubuntu 10.04。然后下载并解压交叉编译链arm-linux-gcc-4.4.3。

从Qt官网下载linux版本的Qt开发框架,这里使用4.7.2版本,下载的安装包文件为qt-everywhere-opensource-src-4.7.2.tar.gz 。然后使用交叉编译链对Qt源码进行交叉编译,最后使用make install命令来安装Qt。我们再从Qt官网下载linux版本的Qt Creator 2.1,然后安装它,用它来进行Qt程序的开发。

嵌入式终端软件平台的搭建,包含以下几步。

第一,烧写BIOS。进入到“EELiod/Jflashmm”目录下,输入“tar xzvf Jflash –Xsbase270.tar.gz”解压Jflash工具。进入到“Jflash-Xbase270”目录下,输入“./jflashmm boot”下载“”Bootloader。

第二,烧写Linux的内核。先在PC的Linux的根目录下建立一个“tftpboot”目录。把“EELiod/image”目录下的“zImage和rootfs.img”文件复制到“tftpboot”目录下。打开minicom并且重启目标板,按下数字键“3”选择第三个选项,把内核映像文件zImage文件下载到板子上。

第三,烧写文件系统。按下数字键“5”选择选项5,把文件系统的映像文件rootfs.img下载到目标平台上。

MC703模块收发短信程序: #include #include

#define uchar unsigned char #define uint unsigned int

#define RxIn 90 //定义接收的数组长度为90 uchar code AT[]=\握手信号 uchar code ATE[]=\ //关回显

24

uchar code AT_CNMI[]=\T+CNMI=2,1\设置这组参数来了新信息直接显示到串口,不作存储 uchar code AT_CSCA[]=\设置服务中心号码 uchar code AT_CMGF[]=\设置短信的格式为text格式 uchar code AT_CMGR[]=\读取短信指令 uchar code AT_CMGS[]=\T+CMGS=\发送短信指令 uchar code AT_CMGD[]=\发送短信指令

uchar code successfully[]=\发送操作成功信息到目标号码 uchar code fail[]=\发送操作失败信息到目标号码 uchar AT_delete[12];

uchar AT_Read[12]; //用来存储发送读取短信指令

uchar AT_SendNumber[25]; //用来存储发送短信号码指令 uchar numberbuf[3]; //用来保存短信条数

uchar idata SystemBuf[RxIn]; //储存出口接收数据 uchar CommandBuf[6]; //用来储存指令 uchar idata state[17]; //用来存储IO口状态 uchar idata state1[17]; //用来存储IO口状态 uchar Rx=0;

uint temp; //记录状态

uchar temp1; // 用于记录P0口状态

uchar temp2; // 用于记录P2口状态 bit check=0; //查询标志位

bit receiveready=0; //接收短信标志位 bit sendready=0; //发送短信准备标志位 bit send=0; //发送短信标志位 bit flag=0; //指令标志位

sbit P3_7=P3^7;//启动GSM的启动线连IGT sbit realy0=P0^0;//继电器1 sbit key1=P2^0; //开关1 sbit key2=P2^1; //开关2

函数void Delay_ms(uint i);实现功能:进行毫秒延时。 void Delay_ms(uint i) {

unsigned int j; for(;i>0;i--){

for(j=0;j<125;j++) {;} } }

函数void Start_GSM(void);实现功能:对TC35进行启动。开启TC35功能详述:单片机上的P3_7管脚是与TC35的IGT管脚相连;需要启动TC35,必须在 15脚(IGT)加时长至少为100ms的低电平信号,且该信号下降沿时间小于1ms。启动后,15 脚的信号应保持高电平.: void Start_GSM(void) {

P3_7=0;

Delay_ms(1000); P3_7=1;

Delay_ms(1000); }

函数void sendchar(uchar ch);实现功能:发送一字节数据。 void sendchar(uchar ch) {

25

SBUF=ch; while(TI==0); TI=0; }

函数void sendstring(uchar *p);实现功能:通过串口发送字符串。 void sendstring(uchar *p) {

while(*p) {

sendchar(*p); p++; }

sendchar(0x0D); sendchar(0x0A); }

函数void receive(void) interrupt 4 using 1;实现功能:通过串口接收数据。 void receive(void) interrupt 4 using 1 { if(RI) {

if(Rx

SystemBuf[Rx]=SBUF; Rx++; } RI=0; } }

函数void GSM_INIT(void);实现功能:初始化TC35模块。 void GSM_INIT(void) {

LOOP:

Delay_ms(1000); sendstring(AT);

Delay_ms(1000); sendstring(ATE); Delay_ms(1000);

sendstring(AT_CNMI); Delay_ms(1000);

sendstring(AT_CSCA); Delay_ms(1000);

for(Rx=0;Rx

SystemBuf[Rx]=0x00; }

Rx=0;

sendstring(AT_CMGF); Delay_ms(1000);

if((SystemBuf[2]=='O')&&(SystemBuf[3]=='K')) //判断是否模块初始化成功,成功的话模块会回复\给单片机

{ //如果单片机没有收到OK,就继续发送初始化指令/ for(Rx=0;Rx

SystemBuf[Rx]=0x00;

26

}

Rx=0; }

27