树莓派4bwlan驱动_树莓派红外测温仪

66ab7c8ac503be9e2b50b0bc564b6a4b.png

去年就开始接触树莓派,可由于时间关系从没有正儿八经地写过代码,2020年恰逢额温枪卖断了货,想着能不能自己做一个,于是在百度各种的搜,发现额温枪的红外采温部分是其软硬件的核心部分,可红外传感器外面卖得死贵而且还拿不到货,于是只能另辟蹊径从一批‘灰头土脸’的元器件里面找出来一块DHT11模块(温湿度传感器)。现在红外传感器总算找到了替代品。显示屏是在淘宝上挑了好久才下单买回来的一款2.2英寸的串口彩屏模块。就这样,两个关键器件都确定下来了,这个项目就没有悬念了。

硬件篇

1. 2.2寸串口彩屏模块 +USB-TTL转换头

显示部分选用了尚视界科技的串口彩屏模块,经过一番对比和琢磨,发现这款串口屏除了接线和软件操作简单外,其高分辨率(240*376)、16:9独特尺寸比例(长边比市面上常规的4:3显示屏容纳更多的显示内容)同时超薄的结构设计和宽视角(IPS)、半反半透的显示的效果,使得这款产品非常适合用在消费和手持类产品的界面显示,用来做额温枪的显示也很合适,更重要的是价格很亲民。

067b883c8b46c80d14e92cf96e245e66.png
串口屏 TTL调试头

树莓派与串口屏的连接非常简单,只要把串口屏的J5接口和USB-TTL用厂家提供的双端连接线连接起来,然后把USB-TTL的USB端口插到树莓派的USB host 上就好了

2.树莓派3B 、micro USB供电电源线

树莓派是一种卡片电脑,其体积小,硬件资源丰富,可以装载多种linux发行版本。其性价比高,是学习和开发产品的绝佳选择。

bde3ba126479972489cc5dee332a1828.png
树莓派卡片电脑

3.DHT11传感器

单总线传感器,用于采集环境的温度和湿度值,并通过单总线传给树莓派,由于这里用来模拟额温枪的红外传感器,所以只采集了DH11的温度值。注意DHT11的数据输入输出脚接了树莓派的第7脚。

3a3fea47423915517528f110147fe5d1.png
温湿度传感器

acd0ede48a48bb6652a7af404fcc3850.png
树莓派和温湿度传感器连接电路

4. 轻触开关

这里选用2个带线的轻触开关,一个用于测量模式的选择,一个用于启动温度的采集。这两个开关分别接到树莓派的38脚和36脚。

6cc9007a352c64913a1781453bd04ff6.png
轻触开关实物图

6bf573a88edde13a87a43adfae5204db.png
树莓派和轻触开关连接图

5.蜂鸣器电路

蜂鸣器的作用,一是提示用户是否已经启动了测量体温操作,让用户等待数据的输出。,不同的模式下体温的误差范围是不一样的:

7c42cb352fb43a660f314af6ac3b7846.png
体温判定范围

4e957a0c44c7a9839ae5edc27f1d110d.png
蜂鸣器驱动电路

d56743addbbe4881e6ebeef0c7c68056.png
蜂鸣器实物图

注意:蜂鸣器一定要加三极管驱动电路,简单的驱动电路见上图。当IO口输入高电平时,驱动NPN三极管输出为低电平,从而打开蜂鸣器的电源回路,使蜂鸣器发声。

另外,蜂鸣器要选用有源的,因为这里只是把驱动电路的输入口(也就是下图的I/O口)接到了树莓派的普通IO口(树莓派3B的32脚),如果是无源的蜂鸣器,就只能修改软件将树莓派的32口设置为PWM输出,否则是无法正常发出'哔哔’提示声。

6.外围连接(显示屏除外):

8630e6349db3d3449e7a8aa74e452717.png

软件篇

1.系统工具

(1).安装树莓派操作系统

树莓派系统可以使用NOOBS的方式来安装:下载NOOBS系统安装包,把安装包解压后,通过读卡器将解压后的文件拷贝到SD卡中(SD卡要格式化),将SD卡插入树莓派并给树莓派上电,上电后就会进入系统安装引导,一路"下一步",就可以完成系统的安装。具体的操作方法详见树莓派的官网:https://www.raspberrypi.org/downloads/noobs/

d4e17ec09afe16bd36efccd33818fbc9.png

注意:

树莓派在安装的时候需要外接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网络

登录树莓派,打开终端,切换到管理员的权限:

5a2202c6d9d8e23cb72176473f0ab6a1.png

进入/etc/wpa_supplicant/ 目录 编辑wpa_supplicant.conf文件:

40a4feae4d4a1cf97e1dd783b5d5a7ea.png

把下面network部分的内容敲进去,其中ssid="xxxx"双引号里面的xxxx就是你wifi的账户,psk="yyyy",yyyy是你网络密码,修改成你的网络信息后,Ctrl+X 退出,同时键盘敲下’Y’保存你修改的内容。

5bcf654e4b9c35d99af8b3f4809ee593.png

a595fdccc1dea0825d174e2085f5e022.png

这样你的树莓派就可以上网了。

(3).设置电脑通过WIFI网络访问树莓派

在管理员权限下,在终端中敲入’raspi-config’,进入树莓派的设置菜单

35b8613785ee8bc4787f0745067dbdbd.png

选中“Interfacing Options”

41423a92d34080d6ed1ad59d0eaf503f.png

回车,进入如下的二级菜单

ac79be2ce2e42e99cbf95de16896b6b4.png

再次回车,选中Yes 退出配置菜单:

b8ca9d0b8a9c5c813bb132c2484f3e40.png

这样树莓派就可以通过PC机进行访问了。

PC机上双击putty软件,在界面中敲入树莓派的IP地址(注意:获取树莓派的IP地址方法很多,我是在手机上装了fing来扫描树莓派的ip地址)连接方式选SSH,端口默认不变。

ab793e0bc5724be576ae62357f947d91.png

点击’Open’后,就会弹出树莓派的登录界面,默认用户名:’pi’,默认的密码:raspberry(建议修改默认的树莓派密码,修改密码的方式请自行百度),密码敲完后直接按回车就OK了。

8f72c03cd6e005ebb6dc6be3cb1f05e5.png

已经成功登入树莓派了:

0ee78eef06b631757a8c0a31ea0589a9.png

(4).设置树莓派与PC机的文件互传

打开filezilla界面,敲入树莓派的ip地址、用户名和密码,点击”快速连接”,就可以登上树莓派了,现在你就可以通过拖拽的操作在PC机和树莓派之间互传文件。

25411867d568f3896ac301aad440343a.png

7159c0a972604594ee87098a8562ae44.png

(5).树莓派安装python库

<1>.serial库

树莓派默认了支持python,但由于串口屏通讯是使用了UART串口,为了能访问UART串口,python需要安装serial库,在树莓派终端中敲入:sudo apt-get install python-serial,就能直接安装了,我的树莓派是安装过的,所以提示下面的信息。

f55f76f9a95aedb95726dce6e279f1a3.png

<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)调出在屏幕上面显示,因此,树莓派只要简单的发送指令就能不费劲的将图片调出来在屏幕上面显示。

37dc4ac8e82349971fb9da59247d3b7e.png
显示的图片元素

c1d13fcbd7db68a92df70d979d0f0733.png
Sunstudio脱机写入图标到串口屏

e101f947f75712f06a65f9a1e3f8bc8c.png
串口屏写入图片时的硬件连接方式

d81d8fb6ab50bfcd078a1df14a17087b.png
串口屏刷新图片的指令

591310ac0a4c3b246ca72661e1886bf2.png
串口屏刷新日期的指令

<1>.开机界面显示

系统上电后会载入开机等待logo,接着会刷出运行界面,等待用户的按键输入。

1bcf4ba6ec55a1ffec5ca48c786794f0.png

eda5d699924bc728e620d3e983921297.png

<2>.图标的更新

图标的更新出现在输入模式的切换和启动体温测试时输出测试结果的这两个环节,当然电池电量的变化(这一部分功能还未实现)也会引起电量图标的变化。下面是图标的位置信息,FSIMG指令需要获取对应的坐标信息(X,Y)才能在正确的位置显示,具体见上面的指令的内容。

3090535664f5ad260f1ac4889355f6b0.png

<3>.日期&时间的更新

串口屏集成了16、24、32、48号的全中英文字库,树莓派只要通过串口发送一个DCV指令就能够将前日期和时间显示在屏幕上。

(2).输入的检测

<1>.IO口检测

2个IO口设定为输入,检测两个按键的状态

<2>.传感器数据检测

通过启动模式按键来发出数据采集命令给传感器,以阻塞的方式回读传感器的温度值,并最终在屏幕上更新显示结果。

关键代码分析:

导入RPi.GPIO 库,设定2个输入口和一个蜂鸣器的输出口

256ae1bde17ebd62d8d30d8f47208eb3.png

设置串口,往串口屏发送清屏幕和设置背光的指令。

1d17b15a05a63fab6b49629e20359f16.png

37d247567457b2b8a85a75fe3ca5eb65.png

导入Adafruit_DHT库,获取体温值:

54f24717585220a2dd0b77d8a9001ea2.png

屏幕上更新体温值:

b956aea0e16d904da22be32de0229434.png

保留测温的最后四条记录:

c912608e8d6c425bfd861038d4e6af80.png

显示当前的日期和时间值:

931a9d68ac3c7fa0519439471b2880cf.png

总结篇

贴出实物图:

0af48aefd50202039c234daf6739e996.png

前面已经说过,树莓派模拟的这个‘额’温枪项目,主要是将我学到的树莓派知识串起来,形成一个积累,方便后续学习的查阅,由于没有红外传感器,不能用于实际的额温测试。

写这个项目,仅仅是想整合我学到的树莓派相关软硬件知识,用于后续的学习和查阅。当然也可以作为一个传感器数据采集的参考案例,供有需要的人参考。也希望通过这个文档,使更多的人了解彩屏的编程方法,以助大家做出更多更炫的人机交互产品。

python源代码、UI设计图、屏相关资料,可以到这个链接去下载:

https://note.youdao.com/yws/api/personal/file/E4B209499FAB43509C1FF903CA427519?method=download&shareKey=69b5c4d4be3a9a61cf399039dc2a07cc

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值