1、第第1章章 物物联联网网项项目开目开发发概述概述学习要点n nArduino背景介绍背景介绍n nArduino软件简介软件简介n nArduino开发环境及调试开发环境及调试n nArduino基本语法基本语法n nArduino UNO版型介绍版型介绍目录1.1 Arduino背景介背景介绍绍1.2 Arduino软软件件简简介介1.3 Arduino开开发环发环境及境及调试调试1.5 Arduino UNO版型介版型介绍绍1.4 Arduino基本基本语语法法1.1 Arduino背景介绍 Arduino是一款便捷灵活、方便上手的开源电子原型平台,构建于开放原始码SimpleI/O界面版
2、,并且具有使用类似Java、C语言的Processing/Wiring开发环境。在IDE中编写程序代码并进行分析、运行和调试,然后将写好的程序上传到Arduino电路板,通过在Arduino电路板上运行程序实例来完成功能实现。包含两个主要的部分:硬件部分:可以用来做电路连接的Arduino电路板;ArduinoIDE:计算机中用于程序设计的集成开发环境 目录1.1 Arduino背景介背景介绍绍1.2 Arduino软软件件简简介介1.3 Arduino开开发环发环境及境及调试调试1.5 Arduino UNO版型介版型介绍绍1.4 Arduino基本基本语语法法1.2 Arduino软件(I
3、DE)简介 使用Arduino软件(IDE)编写的代码被称为项目(sketches),这些项目写在文本编辑器中,以.ino的文件形式保存。工具栏按钮包含验证、下载程序、新建、打开、保存和串口监视器的功能。文本菜单包含文件、编辑、项目、工具、帮助五个部分。在项目中使用库,需要选择菜单“项目”IncludeLibrary(导入库)。图1.2 Arduino IDE用户界面 1.2 Arduino软件(IDE)简介 1文件菜单写好的程序通过文件的形式保存在计算机中时,需要使用文件(File)菜单。“打开最近的”是打开最近编辑和使用的程序,“首选项”可以设置项目文件的位置、编辑器语言、编辑器字体大小、
4、输出时的详细信息、更新文件后缀(用后缀名.ino代替原来的.pde后缀)等。工具栏中的“上传”按钮用于跳过引导装载程序,直接把程序烧录到AVR单片机里面。图1.3文件菜单1.2 Arduino软件(IDE)简介 2编辑菜单编辑菜单是编辑文本时常用功能的选项集合。常用的编辑选项:恢复(Undo)、重做(Redo)、剪切(Cut)、复制(Copy)、粘贴(Paste)、全选(Selectall)和查找(Find)。编辑快捷键:恢复为Ctrl+Z、剪切为Ctrl+X、复制为Ctrl+C、粘贴为Ctrl+V、全选为Ctrl+A、查找为Ctrl+F。编辑菜单还提供了其他选项,如“注释(Comment)”
5、和“取消注释(Uncomment)”,Arduino编辑器中使用“/”代表注释。还有“增加缩进”和“减少缩进”选项、“复制到论坛”和“复制为HTML”选项。图1.4编辑菜单1.2 Arduino软件(IDE)简介 3项目菜单项目(Sketch)菜单包括与程序相关功能的菜单项。如图1.5所示,主要包括:(1)验证/编译(Verify):与工具条中的编译相同。(2)上传(Upload):上传选项是对绝大多数支持的ArduinoI/O电路板使用传统的Arduino引导装载程序来上传。(3)显示程序文件夹(ShowSketchFolder):会打开当前程序的文件夹。(4)加载库(ImportLibra
6、ry):导入所引用的Arduino库文件。(5)添加文件(AddFile):可以将一个其他程序复制到当前程序中,并在编辑器窗口的新选项卡中打开。图1.5项目菜单1.2 Arduino软件(IDE)简介 4工具菜单工具(Tools)菜单是一个与Arduino开发板相关的工具和设置集合,如图1.6所示,主要包括:(1)自动格式化(AutoFormat):可以整理代码的格式。(2)项目存档(ArchiveSketch):将程序文件夹中的所有文件均整合到一个压缩文件中,以便将文件备份或者分享。(3)修正编码并重新加载(FixEncoding&Reload):在发现由于编码问题导致无法显示程序中的非英文
7、字符时使用。(4)串口监视器(SerialMonitor):PC与Arduino开发板连接的串口“交谈”的内容会在该串口监视示器中显示出来。(5)串口绘图器(6)开发板(7)烧录引导程序:将Arduino开发板变成一个芯片编程器,也称为AVRISP烧录器。图1.6工具菜单1.2 Arduino软件(IDE)简介 5帮助菜单帮助(Help)菜单是使用ArduinoIDE时可以迅速查找帮助的选项集合,如图1.7所示。包括快速入门、故障排除和参考,可以及时帮助了解开发环境,解决一些遇到的问题。也可以在帮助菜单中通过快速链接访问Arduino官方网站。可以下载ArduinoIDE后首先查看帮助菜单。图
8、1.7帮助菜单目录1.1 Arduino背景介背景介绍绍1.2 Arduino软软件件简简介介1.3 Arduino开开发环发环境及境及调试调试1.5 Arduino UNO版型介版型介绍绍1.4 Arduino基本基本语语法法1.3 Arduino开发环境及调试 Arduino开发板是一块基于开放源码的USB接口SimpleI/O接口板,并且具有使用类似Java或C语言的IDE集成开发环境。使用Arduino语言与Flash或Processing软件可以快速做出功能丰富的互动作品。Arduino开发工具(又叫ArduinoIDE)是由Java、Processing、AVR-GCC等开放源码的
9、软件写成的开源软硬件工具,是一个在计算机上运行的集成开发环境,可以编写和传送程序到Arduino开发板中执行。目录1.1 Arduino背景介背景介绍绍1.2 Arduino软软件件简简介介1.3 Arduino开开发环发环境及境及调试调试1.5 Arduino UNO版型介版型介绍绍1.4 Arduino基本基本语语法法1.4 Arduino基本语法 类型存储空间(字节)取值范围void0无存储空间byte10255boolean1false/truechar1-128127unsignedchar10255short2-3276832768int2-3276832767unsignedin
10、t2065535word2065535long4-21474836482147483647unsignedlong404294967295float4-3.4028235E+383.4028235E+38double4-3.4028235E+383.4028235E+38Arduino提供了各种变量类型用于有效地保存数据 1.4 Arduino基本语法 数据类型转换就是将数据(变量、表达式的结果)从一种类型转换到另一种类型。Arduino数据类型转换函数有5种函数作用int()强制转换成int类型byte()强制转换成byte类型char()强制转换成char类型long()强制转换成long
11、类型float()强制转换成float类型1.4 Arduino基本语法 Arduino语法是建立在C/C+基础上的,其实也是基础的C语法,Arduino语法只不过把相关的一些参数设置都函数化。这里仅简单地介绍一下常用的 Arduino语法。1常量常量(1)HIGH|LOW表示数字I/O口的电平,HIGH表示高电平(1),LOW表示低电平(0)。(2)INPUT|OUTPUT表示数字I/O口的方向,INPUT表示输入(高阻态),OUTPUT表示输出(AVR单片机能提供5V电压40mA电流输出)。2结构结构(1)voidsetup():初始化变量、管脚模式、调用库函数等。(2)voidloop(
12、):连续执行函数内的语句。3数字数字I/O(1)pinMode(pin,mode):数字I/O口输入输出模式定义函数,pin表示为013,mode表示为INPUT或OUTPUT。(2)digitalWrite(pin,value):数字I/O口输出电平定义函数,pin表示为013,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。(3)intdigitalRead(pin):数字I/O口读输入电平函数,pin表示为013,value表示为HIGH或LOW。比如可以读数字传感器。1.4 Arduino基本语法 4模拟模拟I/O(1)intanalogRead(pin):模拟I/O
13、口读函数,pin表示为05。比如可以读模拟传感器(10位AD,05V表示为01023)。(2)analogWrite(pin,value):PWM数字I/O口PWM输出函数,Arduino数字I/O口标注了PWM的I/O口可使用该函数,pin表示3,5,6,9,10,11,value表示为0255。5时间函数时间函数(1)delay(ms):延时函数(单位ms)。(2)delayMicroseconds(s):延时函数(单位s)。6数学函数数学函数(1)min(x,y):求最小值。(2)max(x,y):求最大值。(3)abs(x):计算绝对值。(4)constrain(x,a,b):约束函数
14、,下限a,上限b,x必须在a和b之间才能返回。(5)map(value,fromLow,fromHigh,toLow,toHigh):约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。(6)pow(base,exponent):开方函数,base的exponent次方。(7)sq(x):平方。(8)sqrt(x):开根号。目录1.1 Arduino背景介背景介绍绍1.2 Arduino软软件件简简介介1.3 Arduino开开发环发环境及境及调试调试1.5 Arduino UNO版型介版型介绍绍1.4 Arduino基本基本语语法法1.5 Ardui
15、no UNO版型介绍 如图所示,UNO单片机拥有14个数字输入输出引脚、6个模拟输入引脚、1个16MHz晶体振荡器、1个USB连接器、1个电源插座和1个复位按钮等。Arduino引脚图 Arduino UNO上USB口附近有一个可重置的保险丝,对电路起到保护作用。当电流超过500mA时会断开USB连接。Arduino UNO提供了自动复位功能,可以通过主机复位;该装置可通过主板上的“RESET”开启和禁止。通过Arduino软件程序控制UNO自动复位,不再需要复位按钮。谢谢!谢谢!第第2章章 PM2.5检测检测与展示与展示学习要点nPM2.5的介绍的介绍nPM2.5的检测原理的检测原理n系统的
16、开发流程系统的开发流程目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望2.1.1背景介绍2.1.2系统简介2.1.1 背景介绍 自2012年11月以来,中国中东部大部分地区陷入了严重的雾霾天气之中,空气质量严重下降。特别是2013年1月,北京、天津、河北等地共发生了5次强霾污染,PM2.5成了公众广泛议论的话题。2.1.1 背景介绍 雾雾霾霾这这一灾害天气一灾害天气1雾霾天气的成因分析雾是一种由大量微小水滴或冰晶组成的乳白色悬浮物,是在空气相对湿度接近或达到饱和状态的情况下形成的,雾滴的平均直径约为1020m,使空气的水平能见度小于1.0km。
17、2雾霾天气的主要危害由于自然的原因,再加之各种人为排放的污染物增加,使城市在大雾多发季节易发生危害性更强的灰霾天气。雾使大气的水汽含量很高,人体的汗液不易排出体外,若人们在户外长时间活动,容易造成胸闷、血压升高。3雾霾灾害的治理及防御措施(1)控制雾霾的源头,合理规划城市。城市中心的气温常比四周郊区要高,在气象学中称之为“城市热岛”。(2)发展公共交通,注意自我保护。机动车尾气中的有害气体如四乙基铅,经过复杂的化学过程变化后凝聚成为二次污染源PM2.5。(4)控制生活污染,以减少PM2.5的来源。目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望
18、2.1.1背景介绍2.1.2系统简介2.1.2 系统简介 工业发展所导致的空气质量恶化越来越牵动着人们的神经,其中来自工业粉尘、汽车尾气的PM2.5颗粒对人体健康的潜在危害尤为突出,关于PM2.5的检测方法和设备的研究逐渐被提上了日程。本系统结合Arduino单片机和GP2Y1014AU0F粉尘传感器设计了一种简易的PM2.5检测系统,该系统兼备实时性和便捷性,实现了人们对所处环境空气质量的掌控。2.1 项目简介 系统主要由Arduino单片机、GP2Y1014AU0F粉尘传感器、A/D转换、液晶显示、电源供电五个模块组成。粉尘传感器实时检测所处环境中PM2.5颗粒浓度并输出模拟电压信号,由A
19、/D转换电路将其转换为数字信号送入单片机中进行数据分析和处理,一方面将计算出的测量值通过液晶显示器显示出来,另一方面实现了定时刷新,当PM2.5所处周围环境发生改变时,数据也将发生变化,用户可从液晶上便捷地观察到。目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望2.2.1运行流程2.2.2系统功能流程2.2 项目设计 运行流程运行流程:系统是根据空气质量指数的检测与展示这个需求而开发的,能够检测空气中的PM2.5、PM10浓度数值,并做到定时刷新。该系统每过1秒钟重新采集数据,并将数值展示到便于观察的1602液晶屏上面。在硬件环境上,采用9V的
20、电池及配套电池盒给单片机供电。单片机采用的是Arduino系列,在官方提供的Arduino标准IDE下进行编程及开发。检测PM2.5的传感器采用的是GP2Y1014系列,将它的引脚与单片机的引脚通过面包板进行连接,数据通过Arduino单片机的A/D转换,由模拟信号转换为数字信号,定时刷新,实现数据的传输。采用1602显示液晶进行PM2.5数值的展示目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望2.2.1运行流程2.2.2系统功能流程2.2 项目设计 系统功能流程系统功能流程 :该系统具备感知、转换和显示的功能。将传感器作为感知模块,将采集到
21、的数据进行转换及计算,并通过显示模块将数值进行展示,系统功能流程图如图所示。感知模块单片机模块显示模块目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望2.3.1材料准备2.3.2开发过程2.3.3项目结果2.3 项目开发 材料准备材料准备 :PM2.5传感器-GP2Y1014AU0F传感器 GP2Y1014AU0F传感器通过红外发光二极管和光电晶体管对角布置成允许其检测到空气中的灰尘反射光,输出的是一个与所测得的粉尘浓度成正比的模拟电压,敏感性为0.5V/0.1mg/m3。GP2Y1014AU插上电源后1s内会稳定、正常地运作,可以进行检出。无
22、尘时,从输出电压的变化量来进行判定。灰尘和烟的判别:从输出电平大小的变化及输出电平时间的变化上来看,可以知道检测出的对象物。LCD1602液晶模块LCD1602 GP2Y1014AU0F传感器 2.3 项目开发 LCD1602液晶的寄存器液晶的寄存器 :LCD1602是指显示的内容为162,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。编号符号引脚说明编号符号引脚说明1VSS电源地9D2DataI/O2VDD电源正极10D3DataI/O3VL液晶显示偏压信号11D4DataI/O4R/S数据/命令选择端(H/L)12D5DataI/O5R/W读/写选择端(H/L)13D6Data
23、I/O6E(或 EN)端 为 使 能(edalle)端信号14D7DataI/O7D0DataI/O15BLA背光源正极8D1DataI/O16BLK背光源负极液晶接口引脚定义液晶接口引脚定义 2.3 项目开发 液晶的基本操作图液晶的基本操作图 读状态输入R/S=L,R/W=H,E=H输出D0-D7=状态字写指令输入R/S=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入R/S=H,R/W=H,E=H输出D0-D7=数据写数据输入R/S=H,R/W=L,D0D7=数据,E=高脉冲输出无LCD 1602液晶的使用液晶的使用:指令功能指令编码执行时间/msR/SR/WDB7DB6DB5
24、DB4DB3DB2DB1DB0清屏00000000011.64清屏指令清屏指令:清除液晶显示器,即将内容全部填入“空白”的ASLL码20H。光标归位,即将光标撤回液晶显示屏的左上方,将地址计数器(AC)的值设置为0。2.3 项目开发 光标归位指令光标归位指令:把光标撤回显示器的左上方,把地址计数器(AC)的值设置为0,保持RAM的内容不变。指令功能指令编码执行时间/msR/SR/WDB7DB6DB5DB4DB3DB2DB1DB0光标归位000000001X1.64进入模式设置指令进入模式设置指令:设定每次写入1位数据后光标的移动方向,并且设定每次写入的一个字符是否移动。指令功能指令编码R/SR
25、/WDB7DB6DB5DB4DB3DB2DB1DB0进入模式设置00000001I/DS40显示开关控制指令显示开关控制指令:控制显示器开/关、光标显示/关闭以及光标是否闪烁。指令功能指令编码R/SR/WDB7DB6DB5DB4DB3DB2DB1DB0显示开关控制0000001DCB402.3 项目开发 设置显示屏或光标移动方向设置显示屏或光标移动方向:使光标移位或使整个屏幕移位。功能设定指令功能设定指令:设定数据总线位数、显示的行数及字型。设定设定CGRAM地址指令地址指令:设定下一个要存入数据的CGRAM的地址。DB5DB4DB3为字符号,也就是将来要显示该字符时要用到的字符地址(0001
26、11)指令功能指令编码R/SR/WDB7DB6DB5DB4DB3DB2DB1DB0设置显示屏或光标移动方向000001S/CR/LXX40指令功能指令编码R/SR/WDB7DB6DB5DB4DB3DB2DB1DB0功能设定00001DLNFXX40指令功能指令编码执行时间/msR/SR/WDB7DB6DB5DB4DB3DB2DB1DB0设定CGRAM地址0001CGRAM的地址40目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望2.3.1材料准备2.3.2开发过程2.3.3项目结果2.3 项目开发 开发过程开发过程:液晶模块在该检测与展示系统中
27、,是用Arduino单片机进行开发的。该液晶模块用到了Arduino的3.3V和5V的电源接口与2个GND接口和612这7个I/O口,液晶的1、2脚分别接GND和电源,而背光的电源和地线15、16脚分别接3.3V电源和GND。液晶的3脚需要外接一个电阻,其他对应I/O引脚如图所示。1void LCD_Command_Write(int command)23 int i,temp;4 digitalWrite(LCD1602_RS,LOW);/打开命令选择端5 digitalWrite(LCD1602_RW,LOW);/打开写入端6 digitalWrite(LCD1602_EN,LOW);/使
28、能信号拉低7液晶寄存器命令写入函数:在对液晶进行命令写入操作时,必须先将R/S端、R/W端和EN端信号拉低。2.3 项目开发 开发过程开发过程:传感器模块代码传感器的1和6管脚接单片机的5V,2和4管脚接单片机的GND,第3脚接单片机的I/O口D2,第5脚接单片机的A0,如图2.12所示。PM2.5浓度的计算为:显示的浓度=(float(采集值/1024)-0.0356)*120000*0.035)。1Serial.begin(9600);2delay(1000);3if(dustVal36.455)/计算PM2.5的数值4 dustVal=(float(dustVal/1024)-0.035
29、6)*120000*0.035);5Serial.println(dustVal);/在串口上显示2.3 项目开发 开发过程开发过程:单片机开发代码利用Arduino单片机进行开发,系统总图如图2.3所示。该系统需要多个电源VCC及地线GND,所以需要将Arduino的VCC引脚和GND引脚外接出来到面包板上,使PM2.5传感器和1602液晶都能接到电源和地线。setup()函数:规定了在液晶上显示的行数和字符的样子 1delay(100);2LCD_Command_Write(0 x28);/4线,2行显示,5x7文字大小3delay(50);4LCD_Command_Write(0 x06
30、);/自动增量,不显示移位5delay(50);6LCD_Command_Write(0 x0c);7delay(50);8LCD_Command_Write(0 x80);/开启显示屏,光标显示,无闪烁9delay(50);10LCD_Command_Write(0 x01);/屏幕清空,光标位置归零11delay(50);2.3 项目开发 循环函数部分loop():该段程序主要是不停地进行循环,计算不同时间所测得PM2.5的数值,每次取得一个新数值,就重新刷新显示屏的寄存器的地址、清屏等,重新显示新的PM2.5的浓度。1digitalWrite(ledPower,LOW);/I/O口拉低2
31、delayMicroseconds(delayTime);3dustVal=analogRead(dustPin);/传入检测到的值4delayMicroseconds(delayTime2);5digitalWrite(ledPower,HIGH);/I/O口拉高6delayMicroseconds(offTime);/延时目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应用展望用展望2.3.1材料准备2.3.2开发过程2.3.3项目结果2.3 项目开发 项目结果项目结果 该项目完成了对PM2.5检测与展示的功能,打造出了一个便捷的观察系统。通过PM2.5
32、传感器实现对PM2.5的数据采集,并将结果展示到液晶显示屏上,供用户观察数据结果。而且系统是独立的外部供电,系统的稳定性也得到了保障。目录2.1 项项目目简简介介2.2 项项目目设计设计2.3 项项目开目开发发2.4 应应用展望用展望2.4 应用展望 自20世纪90年代以来,欧美发达国家建立了较为完善的空气质量监测网络,并一直致力于城市空气质量模拟的研究与应用工作,相继建立了各自成功的应用模型系统,如丹麦的OML模型、芬兰的MI系统、欧盟的TRACT系统等。相关检测数据表明我国目前已成为世界PM2.5污染最严重的地区,自2012年以来京津冀地区频繁雾霾的现象使PM2.5污染得到了更广泛的关注。
33、然而,与其他国家相比,我国对于PM2.5的检测起步较晚,检测设备和检测方法仍有争议。直到2013年已在113个环境保护重点城市和国家环境保护模范城市开展监测。随着我国PM2.5国家标准的颁布,PM2.5的科学检测对了解和评价环境空气质量显得尤为重要。由于PM2.5的组成复杂多变、各种检测技术原理及特点各异,PM2.5的准确检测及其方法的规范化成为环境空气质量管理的基础和关键。本项目介绍了一种PM2.5的主要检测及展示方法,为区域PM2.5的检测提供一定的参考,同时为人们对区域环境质量评价提供可视化的方法支持。该方法可在室内空气质量监测、工业空气环境监测、校园环境监测、智能家居、智能建筑等诸多方
34、面进行实践与应用。谢谢!谢谢!第三章第三章 智能车锁系统智能车锁系统学习要点n n利用单片机控制舵机转动利用单片机控制舵机转动n nGPS模块的使用方法模块的使用方法n nWi-Fi通信模块的使用方法通信模块的使用方法3.1.3.1.项目简介项目简介3.2.3.2.项目设计项目设计3.3.3.3.项目开发项目开发3.4.3.4.应用展望应用展望目录3.1 项目简介近年来,交通拥堵问题和环境污染问题日益突出,作为绿色交通工具的自行车逐渐成为现代生活中不可缺少的代步工具。全世界自行车使用量不断加大,偷车随之频繁发生。因此,防盗报警,尤其是车锁的防盗功能至关重要。传统的机械锁由于构造简单、功能单一,
35、安全性很低;而电子锁克服了机械锁安全性能差的缺点,保密性高,使用灵活性好。与此同时,通信技术的快速发展,基于手机的远程控制技术得以广泛应用,这为自行车防盗提供了契机。由于自行车不自带电源,且应用环境复杂,故智能车锁系统使用低功耗、抗干扰能力强、处理速度较快的Arduino UNO单片机作为主控器。利用9V电池经稳压模块稳定输出SV电压为系统供电。为降低系统功耗、提高系统的灵敏度,智能车锁系统采用振动传感器对车体状态进行采样。传感器将采样信号转化成电压信号,该信号经AD0804转化成数字信号传递给单片机,即可完成系统对车体实时状况的数据采集。智能车锁系统设置了2个独立按键分别实现车锁的开锁功能和
36、关锁防盗功能,并且添加了4个LED灯对车锁工作状态进行提示。该车锁使用舵机进行模拟,舵机具备扭力大、控制简单、易安装等特点,故该设计中使用舵机作为车锁的执行机构,系统可通过控制舵机实现车体上锁和解锁。本项目为自行车防盗的远程无线网络化发展提供了良好的应用基础,同时也实现了汽车防盗的实时性和可靠性。3.1.3.1.项目简介项目简介3.2.3.2.项目设计项目设计3.3.3.3.项目开发项目开发3.4.3.4.应用展望应用展望目录3.2.1 运行流程运行流程3.2.2系统功能流程3.2.1运行流程运行流程系统功能流程本系统选择舵机作为系统的执行模块,舵机转动的角度是通过调节PWM(脉冲宽度调制)信
37、号的占空比来实现的,标准PWM信号的周期固定为20ms(50Hz),理论上脉宽分布应在1ms2ms之间,但是,事实上脉宽可分布在0.5ms2.5ms之间,脉宽和舵机的转角0180相对应,由舵机的旋转角度可控制手工锁具的开合。常用的振动传感器有常闭型振动传感器和常开型振动传感器。常开型振动传感器电路一直是断开的,只有当检测到振动信号时电路才会接通,而常闭型振动传感器则与之相反,其电路一直是接通的,检测到振动信号时电路则断开。本实验选择常闭型振动传感器作为振动信号检测工具,微小的振动均会触发振动传感器,传感器接收到振动情况并把其传给单片机处理。GPS模块选用UBLOX NEO-6M GPS模块,其
38、增加放大电路,有利于无源陶瓷天线快速搜索;另自带SMA接口,可以连接各种有源天线,适应能力强。单片机处理振动信号并判断后,要求GPS模块获取地理位置信息并提交给单片机以作报警及检测使用。最后,通信模块选用小制作常用的ESP8266-01版本,其具有体积小、成本低、驱动简单等优点;单片机接收到GPS传回的地理信息后,将所能用到的信息解析出来然后通过Wi-Fi通信上传给用户用于报警及监控。3.1.3.1.项目简介项目简介3.2.3.2.项目设计项目设计3.3.3.3.项目开发项目开发3.4.3.4.应用展望应用展望目录3.2.2 系系统功能流程功能流程3.2.1运行流程运行流程系统功能流程3.2.
39、2系统功能流程 本系统利用单片机结合Wi-Fi通信技术和传感器技术实现功能,解决了当前自行车锁即便处于关闭状态,车主不能及时掌握其车的状态,仍有被盗的可能,以及自行车被盗后不能及时作出寻回措施等问题。运行流程系统功能流程3.2.2系统功能流程(1)通信设备控制车锁开锁和闭合状态。当自行车锁处于开锁状态时,车主可通过向车锁发送闭合命令控制车锁执行部件使其闭合,同样,也能让处于闭合状态的车锁一键开锁。(2)当该智能自行车锁处于闭合状态时,车锁上的振动传感器通过对车体振动与否状态采样的数据处理分析检测出自行车是否遭到非法移动,若为非法移动,则向车主手机发送报警信息,实现紧急防盗,并且同时循环发送自行
40、车位置信息,车主可实时获取自行车所处地理位置。3.1.3.1.项目简介项目简介3.2.3.2.项目设计项目设计3.3.3.3.项目开发项目开发3.4.3.4.应用展望应用展望目录3.3.1 系系统硬件硬件环境及境及说明明3.3.2系统软件环境3.3.3系统制作步骤3.3.4软件设计开发3.3.5项目结果3.3.1硬件系统环境及说明本系统以振动传感器模块和GPS定位模块感知外界信号,使系统的检测部分稳定、准确。其中,振动传感器模块用于检测自行车是否处于振动状态,并且将振动信号转化为数字信号,然后将数字信号传送至单片机,单片机通过Wi-Fi通信模块发送报警信号以及GPS模块不间断地扫描地理位置信息
41、给客户端手机。锁头则以伺服器作为单片机信号输出的执行元件,控制过程简单,动作容易实现。ArduinoUNO单片机作为主控元件,简单实用,降低了硬件的复杂性。并且应用了手机控制,较大地提升了本系统的方便性。ArduinoUNO单片机ESP8266-01Wi-Fi模块常闭型振动传感器模块UBLOXNEO-6MGPS模块舵机系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.1硬件系统环境及说明Arduino UNO单单片机片机 Arduino UNO单片机是Arduino USB接口系列的最新版本,如图3.2所示,作为Arduino平台的参考标准模板。UNO集成了中央处理单元CP
42、U、随机存储器RAM、存储器ROM(程序存储)、输入/输出设备I/O和模拟量/数字量双向转换(A/D|D/A),其处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出)、6路模拟输入、一个16MHz晶体振荡器、一个USB口、一个电源插座、一个ICSP header和一个复位按钮。注意事项注意事项(1)Arduino UNO上USB口附近有一个可重置的保险丝,对电路起到保护作用。当电流超过500mA时会断开USB连接。(2)Arduino UNO提供了自动复位设计,可以通过主机复位。这样通过Arduino软件下载程序到UNO中软件可以自动复位,不需要再按复位按
43、钮。在印制板上丝印“RESET EN”处可以使能和禁止该功能。系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.1硬件系统环境及说明ESP8266-01Wi-Fi模模块块 ESP8266-01Wi-Fi通信模块支持AP(路由器)模式,STA(端点)模式、AP+STA模式三种工作模式,如图3.3所示。(1)AP模式:ESP8266模块作为热点,实现手机或计算机直接与模块通信,实现局域网无线控制。(2)STA模式:ESP8266模块通过路由器连接互联网,手机或计算机通过互联网实现对设备的远程控制。(3)AP+STA模式:两种模式的共存模式,即可以通过互联网控制实现无缝切换,方便
44、操作。三种模式可软件切换,复位后新模式有效,供电电压33.6V,峰值输出功率20DBM,峰值电流240mA。模块分AT指令执行方式和全I/O引出方式。系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.1硬件系统环境及说明常常闭闭型振型振动传动传感器模感器模块块 常闭型振动传感器平时任何角度开关都是接通状态,受到振动或移动时,开关内导通电流的滚轴会产生移动或振动,从而导致通过的电流断开或电阻阻值的升高而触发电路,如图所示。系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.1硬件系统环境及说明UBLOX NEO-6M GPS模模块块 如图所示,UBLOX N
45、EO-6M GPS模块自带无源陶瓷天线,另带SMA接口,可自主选择接外接天线,兼容3.3V/5V电平;PPS引脚同时连接到了模块自带的状态指示灯(常亮表示模块已开始工作,但还未实现定位;闪烁表示模块已经定位成功)。系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.1硬件系统环境及说明舵机舵机 由接收机或单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出(通过旋转角度控制车锁开合),如图所示。系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果目录3.3.1系统硬件环境及说
46、明3.3.2 系系统软件件环境境3.3.3系统制作步骤3.3.4软件设计开发3.3.5项目结果3.1.3.1.项目简介项目简介3.2.3.2.项目设计项目设计3.3.3.3.项目开发项目开发3.4.3.4.应用展望应用展望3.3.2 系统软件环境操作系统:Windows7/8/10嵌入式程序的编译软件及环境:Arduino系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果目录3.3.1系统硬件环境及说明3.3.2系统软件环境3.3.3 系系统制作步制作步骤3.3.4软件设计开发3.3.5项目结果3.1.3.1.项目简介项目简介3.2.3.2.项目设计项目设计3.3.3.3.项目开发
47、项目开发3.4.3.4.应用展望应用展望3.3.3 系统制作步骤a.由于所接引脚较多,因此要借助一块面包板(如图所示)来分用接口(其中面包板红线一列为共用高电平接口,蓝色一列为共用低电平接口,中间每行分两组,每组五接口共用)。面包板系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.3 系统制作步骤b.首先从UNO上的电压3.3V和5.0V引脚各引出一根线作为所有模块的电源接入面包板的两个高电平接口列;从GND引脚引出一根线作为所有模块的接地接入任意低电平接口列,如图所示。面包板引线图系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.3 系统制作步骤c.连
48、接振动传感器模块,VCC与GND引脚分别接入面包板上的5V高电平列和低电平列,DO引脚接在任意一个模拟输入引脚上,这里把DO接在模拟引脚A5上,如图所示。振动传感器接线图系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.3 系统制作步骤d.连接Wi-Fi通信模块,Wi-Fi通信模块的引脚构成如图所示。其中VCC与GND同上,值得一提的是Wi-Fi通信模块的VCC需要接的是3.3V电压。另外需要用到的是UTXD、URXD和CH_PD三个引脚,CH_PD接上拉电阻再接高电平,UTXD和URXD分别接RXD和TXD。由于UNO板上仅有一对TXD和RXD,可以自定义软串口,这里定义
49、了10号和11号数字输出引脚分别为软串口的RXD和TXD,如图3.11所示。Wi-Fi模块引脚构成图Wi-Fi模块接线图系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.3 系统制作步骤e.GPS模块接线,GPS模块的引脚构成由VCC、GND、TXD、RXD和PPS五个引脚构成,如图所示。GPS模块结构图系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.3 系统制作步骤由于GPS模块主要用于传递GPS定位信息,因此只需要接TXD引脚用于信息传送,与UNO上的RXD口相连。需要注意的是,在往UNO板上加载程序时,切记断开GPS的TXD引脚,二者同时传输会发
50、生冲突,PPS引脚作为时钟脉冲指示引脚,无需接线,如图所示。GPS模块接线图由于GPS模块自带的无源陶瓷天线灵活度不够,建议接有源SMA外接天线。系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果3.3.3 系统制作步骤f.舵机的接线,如图所示,舵机的接线与振动传感器类似,同样只有VCC、GND、DO三个引脚,这里定义数字输出9号引脚为发送控制舵机指令的引脚,接DO引脚。手工制作锁头如图所示。舵机接线图手工制作锁头系统硬件环境及说明系统软件环境系统制作步骤软件设计开发项目结果目录3.3.1系统硬件环境及说明3.3.2系统软件环境3.3.3系统制作步骤3.3.4 软件件设计开开发3.