一、背景
现在处于一个电子信息的时代,一些从事有关电子的公司、学校教室、店铺等都需要储备一些电子元器件物料,由于物料种类繁多,拿取很不方便。
二、实现功能
(1)能搜索某个电子物料摆放哪个柜子并自动打开柜子亮灯提示;
(2)可以添加/删除一个柜子,添加/清除一种电子物料;
(3)可以查询所有存放电子物料详细;
(4)可以查询剩余空柜子;
(5)有信息掉电保存功能;
(6)交互方式要有屏幕触摸、语音识别、手机查找;
待增加部分:实现收纳盒放错提醒,通过RFID实现。
本来想用无线方式的,但是无线的方式需要每一个货柜都要有一个无线模块加电池,对我来说成本有点高,就舍弃了无线方案。
5.2 串口调试
5.3 升压电路
5.4 模块电源门控
6.1 电量检测显示部分
(2)可以添加/删除一个柜子,添加/清除一种电子物料;
(3)可以查询所有存放电子物料详细;
(4)可以查询剩余空柜子;
(5)有信息掉电保存功能;
(6)交互方式要有屏幕触摸、语音识别、手机查找;
待增加部分:实现收纳盒放错提醒,通过RFID实现。
三、控制方式
本来想用无线方式的,但是无线的方式需要每一个货柜都要有一个无线模块加电池,对我来说成本有点高,就舍弃了无线方案。
3.1 主机
在主机上安装16路的从机接口,即最大接入货柜为16个;通过5条线来控制从机,分别是5V电源正负极、舵机控制线、信号灯控制线、入盒检测开关线。
通过595和165 控制16路从机,屏幕采用淘晶驰串口屏(7寸电容触摸屏),语音识别使用机芯智能SU-03T,手机控制通过WIFI模块ESP8266控制。
3.2 从机
控制方式是通过舵机将货柜弹出并亮灯提示。再安装一个行程开关,检测货柜是否归位。将从机安装在收纳盒后面,当从机接收到主机的信号,则控制舵机推出货柜并且亮灯提示。
四、技术指标
1、能搜索某个电子物料摆放哪个柜子并亮灯提示;
因为每添加一次物料,就要填写这个物料的信息并保存它的货柜号,只要查找flash中保存的16个货柜信息,有数据与查找的物料数据相同则弹出并亮灯。
2、可以添加/删除一个柜子,添加/清除一种电子物料;
在首页时,判断是否有按下触摸屏的添加物料或者删除物料模式,有则进入对应的模式。
添加货柜:在添加物料模式,在触摸屏界面编辑新增的物料信息即可完成添加柜子或者物料。
删除货柜:在删除物料模式,选择对应的物料货柜进行删除即可。
3、可以查询所有存放电子物料详细;
每次添加物料都有将物料数据保存在芯片的flash中,只要把全部数据调出来显示即可。
4、可以查询剩余空柜子;
实时检测从机线中的入盒检测开关线,当检测到是无柜状态时(没有接入货柜的情况下),则说明对应的货柜接口没有接入货柜,将没有接入货柜的接口显示出来即可。
5、查找到物料并自动打开柜子;
有3种查找方式,分别是:手机查找、语音查找、触摸屏查找。
手机查找:制作一个安卓软件,主要使用socket与WIFI模块ESP8266进行通信。在手机上输入要查找的物料信息,通过WIFI发送给主机识别。需要有手机连接检测、物料信息的传输功能。
语音查找:将一些常用的电子元件设置为语音命令,说出对应的电子元件数值+名称,例1K电阻,识别成功则弹出对应货柜。因为语音命令条数有限制,故该功能缺陷较大。
触摸屏查找:在查找物料模式下,将显示所有的物料信息并分类显示,也可以通过触摸屏自带的拼音输入法进行查找。
五、硬件设计
5.1 电源部分使用3节电池供电,搭配TC4056进行充电,最大充电电流1A。使用两个不同的USB口,防止没有充电线的情况。
原本想使用按键实现长按开关机的,后面发现确实能实现了,但是没有接入开发板,被迫飞线。。
因为WIFI模块和语音识别这些是通过串口进行通信的,我见加了USB却不用USB调试功能,怪浪费的。
所以加了一个340N,在H6这个排针这里,可以通过跳线帽短接340与WiFi模块(U1RXTX),或者短接340与语音模块(B2B3),实现电脑串口调试。
5.3 升压电路
因为电池的电是不稳定的,所以将电池电压升压至5V,再由这个5V去转需要的3.3V。
因为有很多的吃电大户,7寸屏幕、语音识别的喇叭、WIFI模块、16个舵机。所以我分别给他们都从电池处升压至5V,就是每一个部分都加升压电路,实测发现没有缺电问题了。
5.4 模块电源门控
起初想到的低功耗设计就是将没有用到的模块,断开它的电,减低功耗;所以怎么断开电源?我用了个mos管控制,当信号端(如图CPKCON)给低电平MOS管导通,电池电压输出至CKPIN,再由CKPIN经过该模块的升压电路。信号端(如图CPKCON)给高电平MOS管就截止了。
(这里只截图了串口屏的电源门控)
六、软件设计
代码有些垃圾,如果有一些地方可以节省的话,请大佬指出(鞠躬)
6.1 电量检测显示部分
通过两个电阻分压,再通过分压公式进行计算
使用adc采集100次通过dma传输,滤波显示。代码就不帖出来脏大家眼了,在后面有代码下载链接。
6.2 WIFI部分
主要实现两个功能,一是实现获取网络时间进行校准;二是与手机APP互传数据。
下载的固件是MQTT固件,1MB的那个。(如果是WIFI模块是AT固件,那么改一下指令 AT+RST 的回复是 OK 就可以了)
代码太多了。。。。帖不出来了。。。跳过吧。
五、实现
5.1 屏幕UI
该屏幕功能强大,我直接将时间计算显示功能放在屏幕上自己运行(屏幕自带RTC功能);只要一开始单片机传输一个起始时间给屏幕,屏幕就能运行时钟效果。
附件中的【七寸屏电子物料管理柜.HMI】就是基于该项目设计的UI界面
5.2 手机APP
使用 Android stdio 设计。附件中的【app-debug.apk】就是基于该项目设计的安卓app;大小为3.73MB
涉及权限:
1、访问网络(判断是否连接收纳盒的WIFI成功)
2、获取网络信息状态(判断是否连接收纳盒的WIFI成功)
3、获取WIFI状态(判断是否连接收纳盒的WIFI成功)
4、获取定位权限(想不加这个权限的,但是发现不加的话就闪退)
5、内存读写权限(把收纳盒发来的货柜信息保存,关闭软件后会自动删除货柜信息,所以不用内存担心越来越大)
声明:我只会安卓APP简单的设计应用,苹果的就对不起了(·哭唧唧·)
实物展示
代码及资料下载:
因为想分享的资料过多,咱们面包板社区又只能上传5MB的附件,所以只好麻烦大家点链接了。
www.oshwhub.com/int_and_long/ji- ... -wu-liao-shou-na-he
www.oshwhub.com/int_and_long/ji- ... -wu-liao-shou-na-he