控制流程如图二;
(图二)控制流程图
2、软件、硬件介绍 2.1客户端软件
采用安卓智能手机作为命令发送和接受端,通过因特网传输数据,实现家居的智能监控和远程操控,操作简单,使用方便。客户端软件采用中文版的安卓编写软件,本文主要专注于整体框架的实现,在此就不再对开发软件进行详细介绍,对软件界面的美观性和舒适性未做过多的修饰。如有不足之处,请指教!
客户端软件界面如图三:
6
(图三)
2.2 arduino介绍 2.2.1 arduino 研发过程
Massimo Banzi之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles讨论了这个问题。 David Cuartielles是一个西班牙籍晶片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了Banzi的学生David Mellis为电路板设计编程语言。两天以后,David Mellis就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。
7
2.2.2 arduino 编程软件
Arduino IDE基于processing IDE开发的。对于初学者来说,极易掌握,同时有着足够的灵活性。Arduino语言基于wiring语言开发,是对 AVRGCC库的二次封装,不需要太多的单片机基础、编程基础,简单学习后,你也可以快速的进行开发。
(图四)ARDUINO 编程软件界面
2.2.3 Arduino硬件
Arduino发展至今,出现了适应各种环境的硬件版本,如Arduino Uno、Arduino Nano、Arduino Nano、Arduino LilyPad,Arduino Mega 2560……。本文采用Arduino Uno为主控器, Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。UNO已经发布到第三版,与前两版相比有以下新的特点:
1、 在AREF处增加了两个管脚SDA和SCL,支持I2C接口; 2、 增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。
3、 改进了复位电路设计 ,USB接口芯片由ATmega16U2替代了ATmega8U2, 如图五为改进后的Arduino UNO。
8
(图五)ARDUINO UNO 硬件图
2.2.4 Arduino 编程语言简介
Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设臵都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。
关键字:
? if ? if...else
? for
? switch case ? while ? do... while ? break ? continue ? return ? goto
语法符号:
;
9
{} //
数据类型:
boolean 布尔类型 char 字符类型 unsigned int 无符号整数类型 long 长整数类型 unsigned long 无符号长整数类型 float 浮点类型
double 双精度浮点类型 string 字符数组型 array 数组类型 void 无类型
数据类型转换:
char() byte()
int()
long()
float()
常量:
HIGH | LOW :表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。
INPUT | OUTPUT:表示数字IO口的方向,INPUT 表示输入(高阻态), OUTPUT : 表示输出(AVR能提供5V电压 40mA电流)。 true | false : true 表示真(1),false表示假(0)。
程序结构:
声明变量及接口名称(例如:int val;int ledPin=13;)。
void setup() 函数在程序开始时使用,初始化变量,管脚模式,调用库函数
10