当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:智能鸡蛋盒采用当下最热门的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 客户端主要实现和硬件电路的通信,把硬件 电路采集的鸡蛋库存及存放时间等参数传输到客户端,方便 用户实时查看。


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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭