树莓派识别ID\IC卡的RFID联网案例简介

射频识别(RFID)是 Radio Frequency Identification 的缩写。其原理为阅读器与标签之间进行非接触式的数据通信,达到识别目标的目的。RFID 的应用非常广泛,典型应用有动物晶片、汽车晶片防盗器、门禁管制、停车场管制、生产线自动化、物料管理。日常生活工作中,常见的RFID标签就有:ID、IC感应卡或钥匙圈

ID 卡全称身份识别卡(Identification Card),是一种不可写入的感应卡,含固定的编号,一般会标注在卡片上。ID 卡属于低频卡,工作频率一般是 125KHz-1000Khz。

IC 卡全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card),可读写,容量大,有加密功能,数据记录方便。IC 卡一般是 13.56MHz 的高频卡,跟手机 NFC 工作频率一样。所以手机 NFC 可以模拟未加密的 IC 卡,不能模拟 ID 卡。

这里树莓派识别ID\IC卡利用RFID射频感应模块:
ID卡识别利用STC15模块;IC卡识别利用的是PN532模块

RFID射频感应模块与树莓派通信采用TTL串口,TX与RX交错相接即可。

然后对树莓派运行的python编程,原理是往串口发送读卡指令,接收感应模块从串口发来的消息,并对消息进行分析得到ID\IC卡号。

如果获取到卡号信息后,之后可以做数据传输操作比如MQTT发布消息或写入MYSQL数据库等。

最后可以按项目情况做成各种应用,比如:在手机里查看刷卡记录。

关于RFID或是树莓派的其他玩法,大家可以一起来交流。

树莓派的阿⾥巴巴普惠字体使用方法简介

2021年5 月 14 日,阿里巴巴官方发布,阿里普惠体 2.0 。

阿⾥巴巴普惠体(中⽂字体,指定5款字重),Alibaba Sans(⻄⽂字体,指定11款字 重),以下合称阿⾥巴巴字体,允许任何个⼈和企业免费使⽤,包括商⽤⽤途,但禁⽌⽤于 违法⽤途。

阿⾥巴巴字体文件可以从其官网下载。

下载后打开就可以先给电脑PC安装。

在树莓派里使用阿⾥巴巴字体的方法:

这里树莓派系统用官方带桌面系统:Raspberry Pi OS with desktop

先给树莓派安装中文输入法,安装命令:

sudo apt install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin

在工具栏里可看到输入法的设置了。

将阿⾥巴巴字体文件夹和文件放置在树莓派的:/usr/share/fonts

这样阿⾥巴巴字体就安装好了。

打开LibreOffice Writer,就可以看到刚安装的阿⾥巴巴字体,然后输入内容并可以使用了。

有了中文字体,其实也可以解决了树莓派运行python的opencv中cv2.putText() 只能显示英文字符、显示中文乱码的问题。

python案例代码:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont

#图像设置
width = 800
height = 600
pixel = np.array([50,0,0],np.uint8)
w = np.array([pixel]*width,np.uint8)
newImg = np.array([w]*height,np.uint8)

# 图像从OpenCV格式转换成PIL格式
img_PIL = Image.fromarray(cv2.cvtColor(newImg, cv2.COLOR_BGR2RGB))
#字体设置
font = ImageFont.truetype(‘Alibaba-PuHuiTi-Regular.ttf’, 40)
# 文字输出位置
position = (100, 100)
# 输出内容
str = ‘在图片上输出中文,阿里巴巴普惠体’
draw = ImageDraw.Draw(img_PIL)
draw.text(position, str, font=font, fill=(0, 255, 0))
# 转换回OpenCV格式
img_OpenCV = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)
cv2.imshow(“print chinese to image”, img_OpenCV)
cv2.waitKey()

运行后如下图:

成功输出的图像里显示了阿里巴巴字体的中文。

关于阿⾥巴巴字体的用法或是树莓派的其他玩法,大家可以一起来交流。

树莓派4B简介及一个玩法介绍

树莓派(Raspberry Pi)基金会,2019年6月24日正式发布了Raspberry Pi 4 Model B。树莓派4代基于 BCM2711 构建,完全重新实现了 28nm 的 BCM283X。使用更强大的 Cortex-A72 内核取代 Cortex-A53,从而使性能较树莓派3B+提高了2到4倍(具体取决于测试基准)。

以下是 Raspberry Pi 4 Model B 的亮点:

  • 1.5GHz 4核心64位 ARM Cortex-A72 CPU (~3×倍性能)
  • 1GB/2GB/4GB LPDDR4 SDRAM 内存
  • 全吞吐量千兆以太网
  • 双频 802.11ac 无线网络
  • 蓝牙 5.0
  • 两个 USB 3.0 和两个 USB 2.0 接口
  • 双显示器支持,分辨率高达 4K
  • VideoCore VI 显卡,支持 OpenGL ES 3.x
  • HEVC 视频 4Kp60 硬解码
  • 完全兼容早期的树莓派产品

电源

新版本已经用 USB-C 接口替换了之前的 USB micro-B 电源接口,这将支持更大的功率。而且新增了 USB OTG Boot 功能。

视频

为了在现有的电路板尺寸小支持双显示器输出,新版本使用了两个 HDMI D 型接口(micro DHMI)取代之前的 HDMI A 型接口。

这次玩法说明:

在树莓派4上安装一个3.5inch RPi LCD触摸屏,系统就用最新的官方桌面系统:Raspberry Pi OS。

这个玩法解决问题:当树莓派所处在的网络环境变化时如需远程联接时需要寻找树莓派的IP地址。

以前的处理办法是一般是用PC连接入网络后用ip扫描软件工具或查看路由器记录找树莓派的IP或者使用树莓派的HDMI接显示屏直接看树莓派的IP,因此还有有些不方便。

这个玩法的做法是在这个3.5寸屏上开机后如果树莓派是联网状态就显示出树莓派的IP地址。这样还可以在界面里方便地重启和安全关闭树莓派。

点击界面里的“网络 IFconfig”按钮还可以查看到系统命令:ifconfig显示树莓派网络设备详细信息。

在首页界面里点击“IP 二维码”,会显示带有树莓派IP信息的二维码。这样可以方便地用手机里的微信或浏览器等就可以扫码进入到树莓派WEB应用服务。

这个玩法编程实现主要是利用python的flask微型的WEB框架,还有制作各个html界面,然后设置让树莓派开机自启程序即可。

大家也来可以多多交流树莓派各种玩法,或是提供建议意见。

辰匠IOT物联网案例:利用加速度传感器采集物体运动状态信息

说起物体运动状态,不得不提到的物理量:速度、加速度、运动距离等。

这里用大家基本都拥有的智能手机内部的加速度传感器来做为案例说明。

手机加速度传感器的数据都是描述沿着手机设备三个方向轴上的位置,X方向从手机设备的左边(负)到右边(正),Y方向则是由手机设备的底部(-)到顶部(+),而Z方向为垂直于屏幕由设备的背面(-)到正面(+)。

这次这里采用HTML5里的devicemotion事件编写js代码,不选用带有重力G加速度数据参数的accelerationIncludingGravity,选用加速度数据参数的acceleration,制作手机网页来采集加速度传感器的数据并用百度的echart来简单显示数据趋势图表。

用手机浏览器或微信打开制作的网页后,按X、Y、Z各轴方向晃动手机就会看到各轴加速度数据和运动曲线。

利用X、Y、Z各轴加速数据,结合间隔时间,可推算出各轴的速度、合计速度、还有移动距离等其他运动参数,虽然受制于手机内的加速度传感器的数据精度或采集频率还有算法原因推算出的数据不一定精确,但通过这个案例,也可了解到利用手机摇一摇、运动计步的基本原理。

在其他应用场景,可以使用更好的加速度传感器来采集运动数据,结合数据联网技术编写代码程序将数据信息传输和分析。

 

 

 

 

 

树莓派物联网工具软件Node-RED简介

之前介绍过很多基于树莓派与python的物联网技术方案和案例。这次给大家介绍个可方便实现物联网的软件工具:Node-RED。

Node-RED 是构建物联网(IOT, Internet of Things)应用程序的一个强大工具,其重点是简化代码块的“连接”以执行任务。它使用可视化编程方法,允许开发人员将预定义的代码块(称为“节点”,Node)连接起来执行任务。连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一“流”(Flows)。

Node-RED最初是IBM在2013年末开发的一个开源项目,以满足他们快速连接硬件和设备到Web服务和其他软件的需求——作为物联网的一种粘合剂,它很快发展成为一种通用的物联网编程工具。重要的是,Node-RED已经迅速形成一个重要的、不断增长的用户基础和一个活跃的开发人员社区,他们正在开发新的节点,同时允许程序员复用Node-RED代码来完成各种各样的任务。

如果安装树莓派的系统是带有推荐软件的(Raspberry Pi OS with desktop and recommended software),一般会已经带有这个Node-RED,在编程的菜单里。

打开后会自动启动一个终端命令框。

这里会告诉你,用树莓派或联网的电脑浏览器打开:树莓派IP:1880(端口),还有些命令可开启或停止Node-Red、输出日志、开机自启或不自启。
打开后Node-Red的界面:

如果树莓派的系统没有带推荐软件Node-RED,就需要手动安装从node.js、npm开始。
打开终端安装指令:
apt install nodejs
apt install npm
npm install -g –unsafe-perm node-red
启动指令:
node-red   #(默认端口:1880)
node-red -p 8080    #(自定义端口号:8080或其他)
安装后打开方式一样,在浏览器内打开:树莓派IP:(端口号)。
安装好的Node-RED会带些通用的节点,但还需按各种项目情况要求安装各种节点组件,比如树莓派的GPIO、串口协议、modbus协议、mysql数据库、OPC UA/DA等,可在右上角的设置选择安装。
这里介绍些简单的节点工作案例:
硬件上,拿个开关按钮和一个二极管指示灯接在树莓派的GPIO。
在Node-RED里放上树莓派节点:rpi-gpio-in和rpi-gpio-out,和一个debug调试信息输出的节点,配置完成连上线后点击界面右上角的“部署”按钮。
当按下或松开按钮,指示灯会对应亮灭,界面里调试窗口里会显示对应的信息。


我们也可以在其中插入个函数function节点,写入代码做简单的处理。比如这里的开关状态的置反处理。


我们也可以用MQTT协议做为信息输入,这里用上次的树莓派自身心跳MQTT案例

然后里用函数function节点做信息解析,提取树莓派CPU温度信息。

这里先用这2个案例,简单介绍下Node-Red的工作运行方式和联网通信的方式。
节点完成后,可导出json文件做保存备份。

当遇到物联网项目不是很复杂的情况下,基本是可以利用这个Node-Red放入节点部署运行即可。
如果项目比较复杂了,也可利用Node-Red做为一个工作环节可与云端或自身的做mqtt或http做通信、或是数据库连接、也或是与工业协议modbus、OPC等联接等,然后可在云端或树莓派自身里再用python编程做复杂处理。为解决项目问题、满足项目要求提供了解决办法和多些玩法。