当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:智能鸡蛋盒采用当下最热门的RT5350芯片和嵌入式Linux衍生出的OpenWrt控制系统,应用ST188光电传感器的光电感应功能通过I/O端口将电平信号传输到主芯片,主芯片经过简单处理后再将鸡蛋数量和储存时间等信息通过TCP协议传输显示到Android客户端。

引 言

智能鸡蛋盒作为智能家居的一类产品,它解决了人们一直烦恼的忘记家里鸡蛋数量和忘记鸡蛋是否新鲜的问题。本论文实现了把鸡蛋数量和储存时间等数据传输到Android 客户端,并记录的功能,用户可以随时查看鸡蛋盒里鸡蛋的数量并检查鸡蛋是否新鲜。

1 智能鸡蛋盒的设计

1.1 硬件电路的设计

在设计硬件方案时,需要考虑以下几个因素:

(1) 该智能鸡蛋盒在低温封闭的环境中工作,所以芯片以及其它元器件必须具备能在低温环境下正常工作的能力;

(2) 由于是在冰箱内工作,所以无线网络要有一定的无线穿透能力。

经过一系列调研后,发现 RT5350 这款自带无线功能的主控芯片能满足本项目的基本要求,而其他元器件如电阻、电容、LED 灯也能在低温下正常工作。RT5350 是Ralink 公司在 2010 年左右推出的一款单芯片,其内部集成了基带处理器、射频、功率放大器以及一颗高性能的 MIPS 24Kc CPU 内核(最高主频为 360 MHz),一个基于 Ralink RT5350 的五端口百兆以太网交换机[1],所以仅需很少的外围元器件就可以实现低成本的2.4GHz 802.11n 无线产品。本文将RT5350 作为主控芯片, 采用距离传感器检测鸡蛋是否存在,不使用压力传感器的原因在于压力传感器的功能是检测压力大小,无法直接检测鸡蛋的有无,而距离传感器可以比较直接的检测出一定距离内是否有物体存在。

智能鸡蛋盒与手机客户端建立TCP/IP 连接,通过距离传感器检测鸡蛋数量,同时将这些数据通过引脚口的高低电平传递给主控芯片,主控芯片经过简单处理后将这些信息通过 TCP 传输给手机客户端。总设计框图如图 1 所示。

智能鸡蛋盒的设计与实现

1.2 Android客户端的设计

智能鸡蛋盒Android 客户端整体的框架设计采用状态栏 ActionBar、 切换页面, 使用 ViewPager 与 Fragment 进行界面显示,使用ListView 和自定义的 Adapter 展示数据列表,采用popWindow 组件显示鸡蛋盒里鸡蛋存放的时间[2], 选择在 Android3.0 之后出现的 ActionBar 来实现标题显示, 为了能够让 ActionBar 的标题居中显示,我们采用自定义的ActionBar。

在底部栏的选项卡里,文字采用TextView,图片采用自定义的开源框架SVGView,原因在于传统的 Bitmap(位图)通过在每个像素点上存储色彩信息来表达图像,而SVG 是一个绘图标准。与Bitmap 相比,SVG 放大后不会失真,且Bitmap 需要为不同的分辨率设计多套图标,而矢量图则不需要。

2 智能鸡蛋盒的实现

2.1 硬件电路的实现

本软件设计是在虚拟机上的UBUNTU 系统上对OpenWrt 系统进行裁剪,并通过编写程序来完成。首先要构建编译环境,然后下载并配置 OpenWrt,完成基本的配置后,编译利用UBUNTU 系统自带的VI 编辑器编写驱动、程序以及MAKEFILE,最后对整个 OpenWrt 系统进行编译,编译完成后生成一个固件,利用串口调试助手SecureCRT 和tftpd32 软件将固件烧录到RT5350 芯片上[3]。

2.2 硬件程序的编写

硬件程序的编写需先打开设备驱动节点并初始化,等待手机端连接,创建子进程发送心跳包并判断连接是否断开, 实时监控接收到的指令并解析,实时监控鸡蛋数量变更并发送鸡蛋数量变更数据给手机端。程序整体框架图如图 2 所示。

智能鸡蛋盒的设计与实现

开机后,稳压电路会对电源电压进行转换,把电源电压转换成适合RT5350 芯片工作的 3.3 V 电压,之后RT5350 芯片开始工作;OpenWrt 系统启动后,立即启动 Shell 开机启动脚本,对本软件程序进行启动;驱动程序会建立一个设备节点并对硬件电路进行初始化,此时硬件电路各部分开始工作,程序启动时会打开字符设备驱动的节点,从而使程序能够对硬件进行操作,同时再对硬件所映射的寄存器进行初始化,使各硬件电路开始工作;初始化完成后,建立 Socket,程序填充 TCP/IP 网络协议信息[4],并开放特定端口等待手机端的连接 ;创建子进程发送心跳包并判断连接是否断开,子进程会不断向手机端发送心跳包 ;程序实时接收手机端发送过来的信息并对信息进行指令解析,再根据相应的指令采取相应的动作;程序通过 I/O 口对 ST188 光电传感器发送的信号进行采集,从而对鸡蛋盒上存放的鸡蛋数量进行监控,只要鸡蛋数量发生变化,程序会立即识别并将鸡蛋变更后的数量发送到手机端[5]。

2.3 Android客户端的实现

Android 客户端的主要核心模块是和硬件通讯以及把硬件采集的数据显示到客户端。该模块主要技术包括Socket 通讯、Service 后台、BrodcastReceiver 通讯、Thread 线程以及Java 语言的反射技术。目前暂时定位 8 个鸡蛋的原因是Socket 通讯时,在硬件上的开发语言是 C,而C 的一个字符为 8 个字节,因此暂时定位发送一个通讯逻辑。根据需求分析,在与智能鸡蛋盒通讯时,我们需要采用 Socket 长连接通讯机制, Socket 基于TCP/IP 协议,为 Client、Service(C/S)连接方式。智能鸡蛋盒硬件电路作为 Server 端,而App 作为 Client 端, Client 需要保持长连接,就需要通过发送心跳包来与Server 保持长连接,并且 Android 系统的机制不能堵塞 UI 线程,无法在主线程操作网络访问,因此使用Service 和 Thread 作为Socket 通讯的线程,使用Timer 定时器与Server 端通讯发送心跳包。设备模块实现图如图 3 所示。

智能鸡蛋盒的设计与实现

3 智能鸡蛋盒的测试

3.1 硬件电路的测试

系统测试设备见表 1 所列,硬件测试分为如下几步进行:

(1) 检查该模块电路的焊接是否正确,用万用表针对每条线路与每个可疑的断线点进行逐一排查,看是否有短路和断路的地方。

(2) 连接 5V电源,静态检查单片机 RT5350芯片的电压是否为5V,是否正常工作,并检查各元件是否有异常发热现象。检查距离传感器是否正常工作,灵敏性是否达标。

(3) 使用数字万用表测量电源模块,将电源电压稳定在3.3V左右。

(4) 将编译好的OpenWrt固件烧录到RT5350 核心板上, 在确保程序正常后插上电源对鸡蛋盒进行功能检测,检测的内容主要有鸡蛋数量能否被正常检测,鸡蛋数量发生变化时能否及时将信号传递给手机端[6]。测试结果符合要求。

智能鸡蛋盒的设计与实现

3.2 Android 客户端的测试

使用 Android[7] 手机进行测试,打开Android 客户端,连接硬件,查看App 显示的鸡蛋数量和储存时间是否与实际符合。所使用的手机为HM NOTE 2(红米 Note 2),Android 系统版本为Android 4.4.4。测试结果符合要求。

4 结 语

智能鸡蛋盒硬件电路的主芯片选择了具有 WiFi功能模块的 RT5350芯片, 在嵌入式 Linux系统上进行软件编译, 运用TCP/IP通讯技术实现主芯片和手机客户端的连接。智能鸡蛋盒 Android 客户端主要实现和硬件电路的通信,把硬件 电路采集的鸡蛋库存及存放时间等参数传输到客户端,方便 用户实时查看。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

罗德与施瓦茨与SmartViser携手开发了一种用于测试符合欧盟销售的智能手机和平板电脑的新Energy Efficiency Index(EEI)标签法规的解决方案。该解决方案的核心是R&S CMX500,这是...

关键字: 智能手机 Android iOS

(全球TMT2023年8月24日讯)2023年8月23日,时值实时3D引擎Unity在华设立合资公司Unity中国一周年之际,Unity中国正式推出Unity中国版引擎——团结引擎。Unity全球CEO John Ri...

关键字: UNITY CE Android 开发者

报告显示:全球电商 App 获客花费接近50亿美元 北京2023年8月23日 /美通社/ -- 全球营销衡量与体验管理平台 AppsFlyer 近日发布《2023 电商 App 营销现状报告》。尽管面临全球经...

关键字: APPS BSP iOS Android

数字机顶盒是一种数字技术下的多媒体娱乐中心,可以实现电视节目接收、播放、存储、网络应用等多种功能。随着科技的发展,数字机顶盒的设计方案也在不断进步和优化。本文将介绍数字机顶盒设计的几种实现方案。

关键字: 数字机顶盒 Android Linux

21ic 近日获悉,原小米 9 号创始员工李明在社交媒体平台公布了旗下首款产品乐天派桌面机器人,为全球首款 Android 桌面机器人,面向极客和发烧友的 AI + 机器人。据悉,李明两个月前宣布创业并进军 AI 领域,...

关键字: 小米 Android 桌面机器人 AI

尽管安装增长放缓,全球游戏 App 获客花费仍高达 267 亿美元 经济低迷导致 2023 游戏 App 营销优先考虑收入指标,用户增长次之 北京2023年3月9日 /美通社/ -- 今天,全球营销衡量与体验管理平台...

关键字: APPS iOS Android BSP

量子计算领域的新里程碑,来了! 谷歌科学家证明,通过增加量子比特的数量,就能降低量子计算的错误率。

关键字: 谷歌 Android Windows

「卫星通讯」正在被普及到每一台智能手机当中。普及的动机并非是消费市场的一个刚需,其实更像是将差异化的功能「抹平」成一个标配。时下,支持「卫星通讯」功能的智能手机只有苹果的 iPhone 14 系列与华为的 Mate 50...

关键字: 卫星通讯 Android 智能手机 iPhone

Android是Google开发的操作系统,支持多种指令集架构 (ISA),包括Arm和x86,多数使用Android的设备都采用Arm架构芯片组。新兴RISC-V架构是免费开放指令集架构,任何人都可用它设计芯片,且无需...

关键字: 谷歌 Android RISC-V架构

智能手机并非每年都取得重大进展,这导致越来越多的人将手机保留两年、三年或四年。不过,普通的 Android 手机能否在遇到问题之前使用那么久?

关键字: Android 安卓 谷歌 智能手机
关闭
关闭