安卓APP与智能硬件相结合的简易方案

第1章 概  述

(作者小波QQ463431476)

(来源http://blog.chinaaet.com/zhaocundang/p/5100017645博客)

(来源   http://www.cnblogs.com/xiaobo-Linux/博客)

1.1 设计背景与意义

安卓物联系统的设计主要是解决安卓手机APP与智能硬件的结合,将互联网和生活中使用的家用电器结合。像智能家居那样,未来的发展离不开互联网,更离不开物联体系。手机通过4G网络就可以与家庭网络相连接,个人不在家中,就可以知道家里发生的所以事情,只要动一动手指头,在手机APP上点一点,远在千里之外就可以控制家里的台灯,风扇,热水器等家用电器,如果回家晚,就可以提前打开APP,通过网络打开家里的热水器。此外还可以远程监控家里的情况,给生活提供更多的便捷与快乐。物联系统APP的设计朝着智能化发展方向,与物联网相结合,为生活带来方便,为生活增添乐趣。

1.2 设计目标

(1)了解并熟练编写Android代码,了解安卓相关框架,了解安卓开发体系与运行机制,了解Eclipse Android环境的配置。

(2)使用多种Android组件,熟练使用Android多种控件。本软件是基于Eclipse开发环境,采用了Activity, Broadcast Receiver, Service组件,页面菜单采用Navigation Drawer ,每个页面采用Fragment,能任意比例适应手机大小,而且比较灵活。首页采用grid view网格布局,只是采用了横向布局,能够横向滚动的效果,可以快速地打开任意页面,比较方便。

(3)采用语音识别控制。项目中采用科大 讯 飞 语音识别API接口,来语音控制电器,小车,快速方便,而且具有语音文本朗读的功能。

(4)最简约的界面UI设计,采用Tranlucent沉浸式,获得简明友好的界面设计,扁平化简约圆形按钮,导航抽屉的快捷方便,最大限度的节省界面空间布局。

(5)使用Socket 套接字 连接WIFI 并实现传输数据,主要传输字符,用来控制硬件设备的高低电平触发。

(6)实现多种数据存储方式:完成SQLite数据库的存储,主要存储用户登录账号密码;另外一种比较轻快的数据储存方式share preference,主要用来暂时存储WIFI设置信息数据。

(7)实现硬件的焊接工作,主要是对Arduino开发板代码的设计,台灯风扇USB接口以及外部供电接口的设计,舵机连接的方式,摄像头有OpenWrt路由器连接的设置,继电器的焊接,以及平衡车电机驱动模块,MPU6050陀螺仪,Arduino主控,电机码盘和电机的接线方式。

第2章 需求分析

2.1 功能需求

安卓手机物联系统APP可以通过4G网络连接到家庭网络,查看家里的具体情况,可以查看家庭监控,可以远程遥控摄像头向左,向右转动。可以远程控制家里面的电器,例如热水器,台灯,风扇等家庭电器。此外也可以遥控智能平衡车,实现小车的前进,后退,向左,向右等。

2.2 界面需求

(1)登录、注册界面

首先是用户登录界面,用户登录和注册的界面为同一个,用来登录并注册账号密码并且保存在SQLite数据库中。用户可以随时登录并注册相关账号信息,SQLitte数据库保存账号信息使用户信息更加安全,便于维护数据库。

(2)主屏界面

用户主界面用来使用户快速地选择功能,采用GridView,实现了横线滚动,可以使用户有更好的体验。

(3)用户界面

用户界面主要显示用户的信息,采用TextView来显示可以完成什么样的功能。

(4)摄像头界面

摄像头界面主要实现监控视频的实时显示,以及控制监控摄像头向左,向右转动。

(5)网络界面

网络界面主要用来配置用户设置的WIFI地址,视频端口和控制端口号,便于开发维护,采用Share Preference轻量级存储数据,可以方便的保存数据,下次不用再次输入内容。

(6)电器界面

电器界面主要控制台灯、风扇的开关。

(7)语音界面

采用科大讯飞语音API接口,实现语音识别控制电器打开关闭,以及对平衡车的姿态控制。

(8)小车界面控制

主要实现对平衡车的前进、后退、向左、向右的方向控制。

//http://www.cnblogs.com/xiaobo-Linux/  qq463431476 (赵存档编写)

第3章 概要设计

3.1 设计框架图

系统主要分为5大主模块,主要是用户数据模块,摄像头模块,网络配置存储模块, 控制模块,语音识别和语音朗读模块,小车控制模块,系统总体框图如3.1所示:

图3.1 系统设计框图

3.2系统模块框图设计

(1)用户登录/注册模块框图

采用SQLite3数据库作为存储数据的方案,可以方便的维修用户信息。用户登录、注册框图如图3.2.1所示:

图3.2.1系统登录注册框图

(2)摄像头模块框图

摄像头模块主要显示监控画面,以及控制摄像头左转和摄像头右转,如图3.2.2所示:

图3.2.2摄像头框图

(3)网络设置模块框图

网络设置模块主要设置网络的URL地址,网络摄像头的端口号,网络控制端口号,框图如图3.2.3所示:

图3.2.3网络设置模块框图

(4)电器模块框图

电器模块框图主要实现台灯,风扇的打开和关闭,框图如图3.2.4所示:

图3.2.4电器控制模块框图

(5)语音模块框图

语音模块主要实现用语音识别来控制台灯和风扇的开关,平衡车方向的控制。框图如图3.2.5所示:

图3.2.5电器控制模块框图

(5)小车控制模块框图

小车模块主要是控制小车的方向,前进,后退,向左,向右,以及连接WIFI,框图如图3.2.6所示:

图3.2.6小车控制模块框图

3.3 设计框架说明

3.3.1 后台服务

语音识别和语音文本朗读使用了后台服务组件,采用Service的好处就是可以灵活的调用服务,后台运行。语音模块通过Intent Start Service的方式来启动Service服务,调用Stop Service 开关Service服务。服务里面主要实现语音API接口调用,语音识别,获取语音识别的结果,返回给Fragment。

3.3.2 SQLite 数据库存储

用户登录注册模块采用了SQLite数据库,SQLite3数据库用来存储用户的账号密码信息,方便维护用户信息数据。首先建立一个SQLite Helper的类来重载增删 改 查的方法,并且建立Database数据文件,以及建立表格。然后在用户类中自己定义函数实现增删改查。

3.3.3 Share Preference数据存储

Android轻量级的数据存储用来暂时存储用户的偏好设置,非常方便。用户存储的数据都是存放在XML文件中。

3.3.4 Grid View 数据适配器

数据适配器将图片和标题存放到链表数据结构中,显示的时候就以图片或者标题的长度遍历链表,输出完整的图片和文字标题。

3.3.5 Navigation Drawer导航抽屉

导航抽屉就是侧滑出界面菜单,节省空间布局大小。侧滑菜单采用Fragment里面包含一个List View, 采用一个数据适配器,List View里面包含图片和标题。

第4章Arduino开发板硬件方案

4.2.1 Arduino 主控搭建

(1)采用了Arduino Nano 最小板外加一个扩展版,主要用来控制台灯、风扇,语音模块和摄像头舵机,如图4.2.1.1所示:

图4.2.1.1 Arduino Nano 主控板

(2)控制平衡车则是采用了Arduino UNO R3板,如图4.2.1.2所示:

图4.2.1.2 Arduino Uno板

4.2.2 Arduino 台灯、风扇继电器搭建

继电器用来弱电控制强电,给继电器供电,来控制台灯、风扇的打开和关闭,如图4.2.2.1所示:

图4.2.2.1 台灯、风扇继电器

4.2.3 舵机和摄像头的搭建

舵机主要控制摄像头的左转和右转,摄像头用来采集视频图像,如图4.2.3.1所示:

图5.2.3.1 舵机摄像头

4.2.4 SYN6288语音文本合成模块

模块主要用于语音合成,播放台灯“台灯已经关闭”,“台灯已经打开”或者播放“风扇已经关闭”,“风扇已经打开”语音提示音,如图4.2.4.1所示:

图4.2.4.1 SYN6288语音合成模块

4.2.5 OpenWrt 路由器模块

Openwrt简单就是跑在微控制器上的Linux操作系统

路由器主要实现WIFI热点,以及摄像头图像的采集,WIFI串口控制Arduino MCU主控板的工作,如图4.2.5.1所示:

带串口的TX RX GND,然后连接MCU Arduino上的RX TX GND,即可通信(前提是Openwrt上安装ser2net一类的串口转发接收数据软件)

图4.2.5.1 OpenWrt路由器

4.2.5 平衡车整体电路搭建设计

平衡车系统电路搭建主要包括Arduino UNO R3主控制板,L298N电机驱动模块,MPU6059陀螺仪模块,降压模块,其他包括电池,电机等部件,整体设计如图4.2.5.2所示:

图4.2.5.2平衡车整体电路搭建

4.2.6 上部分电路搭建设计

上部分主要是控制台灯、风扇和舵机摄像头的左右转动,如图4.2.6.1所示:

图5.2.6.1 上部分电路设计

第五章测试

5.2.4 语音识别测试

主要看语音识别是否成功,测试图5.2.4

图5.2.4 语音识别测试图

5.2.5 广播发送接收测试

主要测试广播是否发送接收成功,测试图如图5.2.5所示:

图5.2.5 广播测试图

5.2.6 Wi-Fi 发送接收测试

主要测试WIFI是否发送接收成功,测试图如图5.2.6所示:

图5.2.6 WIFI发送接收测试图

5.3 硬件测试过程

5.3.1 台灯风扇的测试

用手机连接Wi-Fi测试是否可以打开和关闭风扇,如图5.3.1所示:

图5.3.1 控制台灯风扇测试图

5.3.2 摄像头和舵机的测试

用手机连接Wi-Fi测试是否可以接收监控图像和舵机左右转动,如图5.3.2所示:

图5.3.2 摄像头和舵机测试

5.3.3 智能平衡车的测试

用手机连接Wi-Fi测试平衡是否可以前进后退向左和向右,测试如图5.3.3所示:

图5.3.3平衡车测试

第6章 结 论

了解Android的开发流程,了解Android 的运行开发机制模式,熟悉了Android 4大组件代码编写与熟练的应用,对各种控件都有所了解和更深入的研究。

物联系统的项目将安卓手机APP与智能硬件设备结合,通过WIFI网络传串口的方式,与Arduino MCU主控串口通信,实现发送与接收数据,更加深入的了解软件和硬件结合密不可分的关系,作为软件与硬件结合,必定像是智能家居,智能物联系统 这样的智能设备的新潮流。

在项目开发中,对安卓各种UI界面和开发框架更有深入的了解,了解开发的思路,学习别人开发的方式方法,将与自己的项目结合,做一些更好的改进,在硬件中,学习Arduino 开发板硬件代码的编写,了解串口发送与接收的方式,保证能够成功执行相关指令。对于平衡车的控制,主要是对MPU6050陀螺仪的角度输出控制,卡尔曼滤波输出比较稳定的角度值,然后PID计算角度输出PWM脉冲来控制电机。当小车往前倾时,小车电机快速前进防止其倾倒,反之小车往后倾时,小车电机快速后退防止其倾倒,这样就保证小车稳定运行。

项目代码:https://item.taobao.com/item.htm?spm=686.1000925.0.0.QUGyYj&id=534691263656

最后下面是项目的演示视频:

语音识别控制风扇台灯的开关

安卓远程控制智能机器人,优化好的话必定是家庭机器人控制新潮流

Arduino 舵机摄像头转动

就介绍到这里啦,又什么想法或者有什么问题请在下面留言,一起学习进步吧!

时间: 2024-09-30 11:29:38

安卓APP与智能硬件相结合的简易方案的相关文章

app配置智能硬件的解决方案

随着越来越多的智能硬件产品上市,越来越多的硬件都戴上了智能的帽子,什么智能插座,智能音箱,智能称等等.凡是所谓的智能,都是通过wifi或者蓝牙来连接互联网,其中蓝牙也只能算是手机的附属品吧.主要还是硬件可以通过wifi连接到路由,通过路由连接上互联网.如下图所示: 在此不再详述BLE.NFC等的设置,流程比较简单和统一. 市面上已经有的关于手机app配置智能硬件主要有以下几种, 1.手机连接智能硬件的软ap,再配置 这个方式相信没有难度,手机连接上了智能硬件后,手机app和智能硬件就可以建立so

2015中国智能硬件蛋年创新大会手记

2015中国智能硬件蛋年创新大会 时间:2015年4月11日 地点:北京.751时尚回廊 言论一:智能硬件创业难,比软件创业更难! 因为它比软件的环节更多,更有可能在任何一个环节上死. 所有的环节, 包括设计.打版.样品生产. 试生产. 销售      --- 像小鱼在家就是走的明星推广的路线,投资人带着创始人一家家去推广. 供应链管理--- 好不容易有订单了,但是供应商不配合,产能失控. 被山寨    --- 深圳的工厂直接山寨,以一半的价格大量销售等, 都需要去跨越. 言论二:天使投资人的建

聚焦语音交互,引爆智能硬件——暨讯飞语音云沙龙杭州站成功举办

5月16日,"让世界聆听我们的声音"--2014年语音云开发者沙龙暨"聚焦语音交互引爆智能硬件"在杭州贝塔咖啡成功举办. 自2013年8月以来,由讯飞语音云举办的开发者沙龙已走过北京.上海.深圳.成都.合肥.厦门等地,与1000多名开发者亲密接触,爆棚的场面.忘我的分享和激烈的讨论,让我们更加坚信:移动互联网时代,语音交互将无处不在. 2014年被称为智能硬件元年,在2014全球移动互联网大会上,智能硬件成为主角, "下一个50亿"预示着智能硬件

[智能硬件] 3、三分钟看懂智能硬件原理——简易智能手环制作教程(包括炫酷手机客户端开发)

首先恭喜大家挺过了测试二!为什么说“挺”呢?因为测试二的难度和测试一相比有一个比较大的跳跃:首先测试一仅仅利用现有硬件模块稍加改造而DIY一个蓝牙防丢器,而测试二则要求大家具有从脑袋里的一个想法到一个全新的小设备的实现的全部能力,显然该过程不是连几根线那么简单:其次测试一对蓝牙的使用仅限于信号搜索层面,而测试二一下子深入到可靠通信的层面了,其难度可想而知:最后在测试二中客户端的设计中复杂的状态转换过程,以及嵌入式编程时需要对所使用的硬件作细致的分析,都构成了对前期基础没打牢的同学一种挑战.不过好

智能硬件+App移动新生态【11.01深圳】

活动概况 时间:2015年11月01日13:30-16:30 地点:深圳腾讯大厦(南山区科技园科技中一路)2楼多功能厅 主办:APICloud.庆科.信鸽 费用:免费 活动背景 智能电视.智能汽车.智能手环.智能手表.智能家居.智能硬件+结合移动App正在形成一个软硬结合的生态,智能硬件创业者在物联网时代正面对着不小的挑战,如何迎接智能硬件行业即将面对的井喷式爆发?如何占领移动互联网浪潮中的智能硬件新兴市场,本次活动中,APICloud带你走进智能硬件+APP移动生态新模式,拥抱物联网世界! 近

智能硬件+App移动新生态【北京、广州、深圳】

智能硬件+App移动新生态[10.24北京站] 时间:2015年10月24日13:30-16:30 地点:Wepac空间(海淀区北四环西路68号左岸工社6层) 主办:APICloud.机智云.智石科技.华为云 网址:http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=15175 费用:免费 智能硬件+App移动新生态[10.31广州站] 时间:2015年10月31日13:30-16:30 地点:5号空间(广州市天河区天平架

智能硬件app开发

深圳app开发[粉果科技]表示,智能生活方式随处可见,随着智能生活普及化,智能硬件的app软件定制也显的尤为重要.但是对于很多app开发公司来说,一般更注重的是智能硬件app的功能和体验,往往会忽视了后台的开发. 小编认为,硬件app开发不仅要重视功能和体验,更要重视后台的建设,一个完善的智能硬件产品两者缺一不可.下面就随小编一起看下智能硬件app软件后台开发解决方案. 1.用户信息管理:在笔者看来,一个智能硬件APP软件里利用价值最大的就是用户信息,通过用户提供上来的信息,可以对用户进行查询.

[智能硬件] 1、三分钟看懂智能硬件原理——蓝牙防丢器制作教程(包括手机应用)

1 什么是智能蓝牙防丢器 所谓智能蓝牙(Smart Bluetooth)防丢器,是采用蓝牙技术专门为智能手机设计的防丢器.其工作原理主要是通过距离变化来判断物品是否还控制在你的安全范围.主要适用于手机.钱包.钥匙.行李等贵重物品的防丢,也可用于防止儿童或宠物的走失 .[请看正版请百度:beautifulzzzz(看楼主博客园官方博客,享高质量生活)嘻嘻!!!] 图 1-1 蓝牙防丢器应用领域 2 蓝牙防丢器的主要构造 目前比较成熟的产品一般是采用蓝牙4.0技术,具有低功耗.双向防丢.自动报警等优

如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)

六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上) 八.LCD1602点阵字符型液晶显示模块驱动封装(中) 已经有好一阵子没写了,一方面是因为最近闲杂的事特多,另一方面(主要方面)是因为我卡在了LCD1602驱动的权衡上面——总共3个控制线和一个8位并行的数据线,放在51