
去年,我开始联系覆盆子派,但由于时间关系,我从来没有认真写过代码。2020年,额温枪卖完了,想着能不能自己做一个。所以在百度的各种搜索中,发现额温枪的红外加热部分是其软硬件的核心部分,但是红外传感器卖的太贵了,拿不到货。所以我们只能从一批灰头土脸的元器件中找到另一种方式DHT11模块(温湿度传感器)。现在红外传感器终于找到了替代品。现在红外传感器终于找到了替代品。显示屏是淘宝上挑了很久才下单买回来的2款.2英寸串口彩屏模块。这样,两个关键设备都确定了,这个项目就没有悬念了。
硬件篇
1. 2.2寸串口彩屏模块 USB-TTL转换头
显示部分选择了尚视界科技的串口彩屏模块。经过对比和琢磨,发现该串口屏除了接线和软件操作简单外,分辨率高(240*376),16:9独特尺寸比例(长边比市场上常规的4:3显示屏容纳更多显示内容)、超薄结构设计和宽视角(IPS)、半反半透显示效果,这款产品非常适合消费和手持产品的界面显示,也非常适合额温枪的显示,更重要的是价格非常贴近百姓。
树莓派和串口屏的连接非常简单,只要串口屏J5接口和USB-TTL连接制造商提供的双端连接线,然后连接USB-TTL的USB端口插入树莓派USB host 上就好了
2.树莓派3B 、micro USB供电电源线
树莓派是一种卡片电脑,其体积小,硬件资源丰富,可以装载多种linux发布版本。性价比高,是学习和开发产品的绝佳选择。
3.DHT11传感器
单总线传感器用于收集环境的温度和湿度值,并通过单总线传输到覆盆子派。因为这里用来模拟额温枪的红外传感器,所以只收集DH11温度值DHT11数据输入输出脚连接到树莓派的第7脚。
4. 轻触开关
这里有两个带线的触摸开关,一个用于测量模式,另一个用于收集启动温度。这两个开关分别接收树莓派的38英尺和36英尺。
5.蜂鸣器电路
蜂鸣器的作用是提醒用户是否已经启动了测量体温的操作,让用户等待数据的输出。不同模式下体温误差范围不同:
注:蜂鸣器必须添加三极管驱动电路,简单的驱动电路见上图。IO当口输入高电平时,驱动NPN三极管输出为低电平,打开蜂鸣器的电源电路,使蜂鸣器发出声音。
另外,蜂鸣器应该是有源的,因为它只是驱动电路的输入口(即下图)I/O收到树莓派的普通口)IO口(树莓派3B32脚),如果是无源蜂鸣器,只能修改软件,将32口树莓派设置为PWM输出,否则就不能正常发出哔哔提示声。
6.外围连接(显示屏除外):
软件篇
1.系统工具
(1).安装树莓派操作系统
可使用树莓派系统NOOBS安装方式:下载NOOBS系统安装包,解压安装包,通过读卡器复制解压文件SD卡中(SD卡要格式化),将SD插入树莓派并给树莓派上电。上电后,将进入系统安装指南。"下一步",可完成系统安装。具体操作方法见树莓派官网:https://www.raspberrypi.org/downloads/noobs/
注意:
安装树莓派时需要外接HDMI如果您的电脑显示器支持显示器,HDMI直接使用接口HDMI数据线连接覆盆子派和显示器。假如电脑不支持HDMI接口,也可以在网上购买树莓派匹配HDMI我用这个显示器:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-14603162610.11.63a819d6KztKC2&id=605432962495 。另外,系统安装时,USB键盘和USB还需要鼠标,否则不能点击下一步完成系统安装。
树莓派开始了SSH服务结束后,您可以通过计算机远程访问覆盆子派。因此,配置网络后,您可以在您身上WINDOW 通过主机putty软件在PC在机器上设置树莓派的配置同时通过filezilla为了互传文件,我用这种方法操作树莓派。所以,你需要在那里PC机上下载putty和fillezilla客户端软件。当然,也可以通过键盘和鼠标直接操作树莓派外部显示器。
(2).树莓派连接WIFI网络
登录树莓派,打开终端,切换到管理员的权限:
进入/etc/wpa_supplicant/ 目录 编辑wpa_supplicant.conf文件:
把下面network部分内容敲进去,其中ssid="xxxx"双引号xxxx就是你wifi的账户,psk="yyyy",yyyy将您的网络密码修改为您的网络信息,Ctrl X 退出,键盘敲下。Y’保存你修改的内容。
这样你的树莓派就可以上网了。
(3).设置计算机通过WIFI在线访问树莓派
在管理员的权限下,敲入终端raspi-config进入树莓派菜单
选中“Interfacing Options”
回车,进入以下二级菜单
再回车,选中Yes 退出配置菜单:
这样,树莓派就可以通过PC访问机器。
PC机上双击putty该软件在界面中敲入树莓派IP地址(注:获得树莓派IP地址有很多方法。我把它安装在手机上fing扫描树莓派ip选择地址)连接方式SSH,默认端口不变。
点击’Open之后,树莓派的登录界面将弹出,默认用户名:pi默认密码:raspberry(建议修改默认的覆盆子派密码,请自己百度修改密码)。密码敲击后,直接按回车OK了。
已成功登上树莓派:
(4).设置树莓派与PC机的文件互传
打开filezilla界面,敲入树莓派的ip地址、用户名和密码,点击”快速连接”,就可以登上树莓派了,现在你就可以通过拖拽的操作在PC机和树莓派之间互传文件。
(5).树莓派安装python库
<1>.serial库
树莓派默认了支持python,但由于串口屏通讯是使用了UART串口,为了能访问UART串口,python需要安装serial库,在树莓派终端中敲入:sudo apt-get install python-serial,就能直接安装了,我的树莓派是安装过的,所以提示下面的信息。
<2>.传感器Adafruit_DHT库
首先更新树莓派的库:
apt-get update
apt-get install build-essential python-dev
接着从git hub里面克隆传感器的代码:
git clone git://http://github.com/adafruit/Adafruit_Python_DHT.git
下载完了代码,进入文件的目录,通过下面的命令安装代码:
python setup.py install
嗯,库总算安装完了,下面就可以开始实现功能代码了。
2.功能代码实现(python语言)
万事具备,接下来就是撸代码了,在撸代码之前,先介绍下代码的实现思路。
代码的实现可以归纳为两大部分功能:
(1).界面的刷新
在这个项目中,界面的元素分为图片和字符串:除日期和时间是字符串,其他的元素均是各种不同大小的图片。由于尚视界的串口屏能够将图片脱机写入到它内部的FLASH中,而且能够通过FSIMG命令指定对应的图片编号(0.1…)和坐标位置(X,Y)调出在屏幕上面显示,因此,树莓派只要简单的发送指令就能不费劲的将图片调出来在屏幕上面显示。
<1>.开机界面显示
系统上电后会载入开机等待logo,接着会刷出运行界面,等待用户的按键输入。
<2>.图标的更新
图标的更新出现在输入模式的切换和启动体温测试时输出测试结果的这两个环节,当然电池电量的变化(这一部分功能还未实现)也会引起电量图标的变化。下面是图标的位置信息,FSIMG指令需要获取对应的坐标信息(X,Y)才能在正确的位置显示,具体见上面的指令的内容。
<3>.日期&时间的更新
串口屏集成了16、24、32、48号的全中英文字库,树莓派只要通过串口发送一个DCV指令就能够将前日期和时间显示在屏幕上。
(2).输入的检测
<1>.IO口检测
2个IO口设定为输入,检测两个按键的状态
<2>.传感器数据检测
通过启动模式按键来发出数据采集命令给传感器,以阻塞的方式回读传感器的温度值,并最终在屏幕上更新显示结果。
关键代码分析:
导入RPi.GPIO 库,设定2个输入口和一个蜂鸣器的输出口
设置串口,往串口屏发送清屏幕和设置背光的指令。
导入Adafruit_DHT库,获取体温值:
屏幕上更新体温值:
保留测温的最后四条记录:
显示当前的日期和时间值:
总结篇
贴出实物图:
前面已经说过,树莓派模拟的这个‘额’温枪项目,主要是将我学到的树莓派知识串起来,形成一个积累,方便后续学习的查阅,由于没有红外传感器,不能用于实际的额温测试。
写这个项目,仅仅是想整合我学到的树莓派相关软硬件知识,用于后续的学习和查阅。当然也可以作为一个传感器数据采集的参考案例,供有需要的人参考。也希望通过这个文档,使更多的人了解彩屏的编程方法,以助大家做出更多更炫的人机交互产品。
python源代码、UI设计图、屏相关资料,可以到这个链接去下载:
https://note.youdao.com/yws/api/personal/file/E4B209499FAB43509C1FF903CA427519?method=download&shareKey=69b5c4d4be3a9a61cf399039dc2a07cc