用树莓派改造猫厕所:智能通风,告别异味

之前我们有介绍过「激光逗猫神器」来增加猫主子的运动量。今天要介绍的项目则可以解决铲屎官们痛点之一:猫主子粑粑的气味问题。每次铲屎的时候,猫砂的气味就会飘散出来,那是一种巨酸爽的味道。

这个猫咪个智能厕所使用一块树莓派就能将猫砂盆改造成自动通风的猫厕,每当猫主子「出恭」完毕,它就能自行启动风扇,进行散味。

硬件组成

组件清单如下:

树莓派 Zero W

80mm×80mm 风扇(CPU散热器)

12V 电源

1 截空调通风管

PIR 运动传感器(热释电传感器)若干

1k 欧姆电阻若干

三极管

1 个降压-升压变换器

这些硬件的总成本在 400 元左右。其中,10 美元的树莓派 Zero W 是整个装置的核心,用于控制电路什么时候运行。

作者表示,树莓派也可以用更便宜的树莓派 Pico 来代替(5美元),但他想了解自家猫咪的具体拉粑粑时间……因此选择了贵一点的树莓派 Zero W,可以远程登录查看数据。

风扇用于散味,空调通风管则用于排气。

PIR(红外)运动传感器,则用来检测猫咪什么时候进猫砂盆、什么时候出去,以决定风扇通风的时间。

此外,还需要一个降压-升压变换器(此处用了汽车 USB 充电器代替),因为风扇的供电电压需要达到 12V,但树莓派的额定运行电压却在 5V。

同时,树莓派的输出电压只有 3.3V,因此在树莓派输出 3.3V 信号的时候,还需要一个三极管来控制 12V 电路的开启和关闭。

整体搭建电路图如下(其中333Ω的电阻,由3个1kΩ的电阻并联获得):

图中,PIR 指运动传感器,Pz 指树莓派(输出通过 333 欧姆电阻与三极管相连),fan 指风扇,而风扇和树莓派之间的就是三极管。

至于图中的 5V 电压,可以直接用降压变换器,也可以对汽车 USB 充电器进行一个改装:先将它拆开,再把充电器的金属尖端用电线焊接替代,最后连接到主电路中。

到这里,硬件部分的组装就已经完成,搭建到猫砂盆上方后,看起来是这个样子的:

再用胶带或者热熔胶枪组装起来就行。

当然,这也只是完成硬件部分的制作,软件上还需要对树莓派进行设置。

软件和程序的安装

首先,需要给树莓派的SD卡安装系统,然后连接电源启动等。

再就可以开始部署程序了。由于作者想记录猫咪的拉粑粑时间,因此还安装了 Python 和数据库 MariaDB:

sudo apt install mariadb-server-10.0 python3-pip pip3 install mariadb

除了数据库以外,还需要一个可以控制树莓派 GPIO引脚的 Python 库 GPIO ZERO(GPIO 引脚指图中这部分):

sudo apt install python3-gpiozero

安装后,就可以运行主要的程序了,这部分的原理,是在传感器触发后,将风扇启动10分钟:

FAN_ON_DURATION = 10 * 60 # 10 min outpin = LED(22) pir = MotionSensor(27, sample_rate=1) # I used the GPIO pin 27 while True: pir.wait_for_motion() outpin.on() time.sleep(FAN_ON_DURATION) outpin.off()

同时,作者还希望能在整个系统启动时,自动运行程序,因此还写了另一个文件,将它命名为.service,确保它在 mysqld 启动后就能运行:

[Unit] Description=Motion detection service for cat litter After=mysqld.service [Service] ExecStart=/usr/bin/python3 -u motion_detection.py WorkingDirectory=/home/pi/ StandardOutput=append:/home/pi/execution.log StandardError=append:/home/pi/execution.log Restart=alwaysUser=pi [Install] WantedBy=multi-user.target

放进/etc/systemd/system文件夹,并允许跟随系统启动:

sudo systemctl enable .service

完成!现在软件部分也搞定了,可以愉快地给自家猫用上了,据作者表示,打开风扇时,即使站在旁边,也基本闻不到味道。

解决更多铲屎官难题

这个智能“无臭”猫砂盆的作者,目前在硅谷工作,自我介绍是一名“攻城狮”。

事实上,作者自己家里就有猫,还是两只:

除了这个猫砂盆,作者此前还自己做过家用版大数据处理平台、以及树莓派运行的GPS跟踪器。作者表示,下一步计划研发一个新的装置,阻止猫咪到桌上和自己抢饭。

GitHub:

https://github.com/xinixgit/rpi/tree/main/pi-cat-litter

参考链接:

https://xinxindai.medium.com/build-a-ventilated-cat-litter-box-with-pi-zero-ce943d55b446

在树莓派上安装 PyCharm

PyCharm 是一种 Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用 Python 语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。本教程为你介绍如何在树莓派上安装 PyCharm。本教程作者 @Tony 源自趣小组。

运行 PyCharm 需要 Java 环境,如果树莓派上还没有安装过 JRE,可以使用以下命令安装即可:

sudo apt install default-jre -y

下载安装

前往 JetBrains 官网下载 PyCharm 社区版(Community):

https://www.jetbrains.com/pycharm/download/#section=linux

#解压,命令行中的文件名以实际下载的为准。 tar -zxvf pycharm-community-2020.2.1.tar.gz #运行,命令行中的目录名以实际下载的为准。 cd pycharm-community-2020.2.1/bin ./pycharm.sh

创建快捷方式

为了方便起见,可以添加快捷方式到启动器和桌面。

在启动器中添加图标,编辑文件。

sudo nano /usr/share/applications/pycharm.desktop

输入以下内容

[Desktop Entry] Name=PyCharm Type=Application Exec=/home/pi/pycharm-community-2020.2/bin/pycharm.sh Icon=/home/pi/pycharm-community-2020.2/bin/pycharm.png Categories=Development

然后你就会看到树莓派菜单中的 PyCharm 图标。

在桌面上添加图标,编辑文件。

nano ~/Desktop/pycharm.desktop

输入以下内容

[Desktop Entry] Type=Link Name=PyCharm Icon=/home/pi/pycharm-community-2020.2/bin/pycharm.png URL=/usr/share/applications/pycharm.desktop

然后你就会在桌面上看到 PyCharm 图标。

虹科工业树莓派 VNC Viewer 远程桌面的配置

一、什么是 VNC Viewer

VNC(Virtual Network Console)是虚拟网络控制台的缩写,VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。 在 Linux 中,VNC 包括以下四个命令:VNCserver,VNCviewer,VNCpasswd,和 VNCconnect。大多数情况下用户只需要其中的两个命令:VNCserver 和 VNCviewer。

VNC viewer是一款远程控制的软件,一般用于远程解决电脑故障或软件调试。

二、准备工作

工业树莓派1台

VNC Viewer(根据计算机环境选择性下载,下载链接:https://www.realvnc.com/en/connect/download/viewer/)

三、配置步骤

1、SSH连接登录

2、在终端输入以下命令进入配置界面:

sudo raspi-config

3、启动VNC服务(根据以下路径依次进入:Interfacing Options -> VNC -> Yes)

4、返回配置页面首页,启动Desktop Autologin服务,该服务在不同核心模块的路径不同,如果是消费级树莓派请按照根据处理器型号对应到工业树莓派核心模块的路径。

核心模块:RevPi Core3、RevPi Connect

路径:Select Boot Options->Desktop/CII->Desktop Autologin

核心模块:RevPi Core3+、RevPi Connect+

路径:System Options->Boot/Auto Login->Desktop Autologin

5、退出配置界面,选择重启,拔掉电源。

6、给工业树莓派重新上电,重启工业树莓派,再进行SSH登录

7、VNC Viewer远程访问,输入相应的IP地址、SHH登录账号和密码。

8、完成VNC远程访问,可以根据需求进行配置更新。

关于虹科

虹科是一家在工业物联网IIoT行业经验超过3年的高科技公司,虹科与世界领域顶级公司包括EXOR、Eurotech、Unitronics、Matrikon、KUNBUS等合作,提供一系列先进的高端的工业4.0 HMI、高端边缘计算机、IoT开发方案、PLC与HMI一体机、OPC UA、工业级树莓派等解决方案。物联网事业部所有成员都受过国内外专业培训,并获得专业资格认证,平均3年+的技术经验和水平一致赢得客户极好口碑。

我们积极参与行业协会的工作,为推广先进技术的普及做出了重要贡献。至今,虹科已经为行业内诸多用户提供从硬件到软件的不同方案,并参与和协助了众多OEM的设备研发和移植项目,以及终端用户的智能工厂和工业4.0升级改造项目。我们致力于为中国乃至全球的万物互联、智能制造贡献自己的力量。

启用树莓派 CM4 CM4IO 的双路摄像头

树莓派 CM4IO 底板上提供双 MIPI CSI-2 摄像头接口,但系统默认是没有开启的。本文将介绍如何配置和使用双摄像头。

硬件准备

CM4 + CM4IO 开发板 X 1

树莓派摄像头模块 X 2

摄像头模块软排线 X 2

这里使用官方 800 万像素摄像头模块,默认配的软排线不兼容 CM4IO,所以需要自己配一条软排线如图所示。

使用软排线将摄像头模块与 CM4IO 板上的 CAM0、CAM1 接口连接,注意排线银色亮面朝下。

如果只使用其中一个摄像头,则不需要特别的硬件设置。如果要启用多个摄像头,需要使用跳线帽将 CM4IO 板上的 J6 短接。如下图所示。

系统设置

运行下面的命令更新 dt-blob.bin 文件。

sudo wget https://datasheets.raspberrypi.org/cmio/dt-blob-dualcam.bin -O /boot/dt-blob.bin

运行命令开启摄像头接口。

sudo raspi-config

选择 Interface Options -> Camera -> Enable,设置完后按提示重启系统(有图形界面的系统可以在设置里直接设置开启 Camera)。

使用方法

重启后进入终端输入命令。

ls /dev

确认一下是否出现了 video0、video1 两个设备。

然后就可以开始使用了。至于如何指定某个摄像头,可以使用 -cs 参数。

# 打开第一个摄像头拍照和录制视频 sudo raspistill -o test.jpg -cs 0 sudo raspivid -o test.flv -cs 0 # 打开第二个摄像头拍照和录制视频 sudo raspistill -o test.jpg -cs 1 sudo raspivid -o test.flv -cs 1

如有问题欢迎在小组讨论~

https://talk.quwj.com/

NAS 私有云和 KODI 软硬集成的套件

本文作者:硬件老郭

树莓派4B搭载了博通最新的BCM2711处理器,它采用了4枚性能更为强劲的ARM A72核心。相比上一代树莓派3B+,4B的性能有着2~4倍的提升,处理任务要更为流畅。而在内存上,树莓派4B拥有1GB/2GB/4GB三种规格可选,相比以往的1GB,大大拓展了多任务处理的可能。

与上一代树莓派的性能对比,树莓派4B不只是频率的提升而已,重大的提升还有,采用了USB3.0接口,并且留够了充足的带宽,不像树莓派3是共享的总线带宽,性能受到制约,何况还是USB2.0。还有就是支持H.265 4K硬件解码。

提升如此巨大,我们能怎么才能发挥出它的性能呢?

作为一个“深度”树莓派爱好者,看到树莓派4B性能不再是挤牙膏,而是性能爆炸了,简直是出乎我的意料。要知道,树莓派官方树莓派基金会推出树莓派是为了 慈善目的 的产品,希望将树莓派推广给全世界的青少年电脑爱好者,用于培养计算机程序设计的兴趣和能力,所以价格是非常重要的因素。这也是为什么树莓派不是像手机或者平板那样采用性能强大CPU的原因,但也不排除以后的思路会转变。那么树莓派4B性能大幅提升,价格是不是更贵了?并没有,价格还是和树莓派3发售的价格一致,只不过根据内存大小分为了好几个版本。

在以前实现不了或者说使用效果体验不好的玩法终于可以实现了。比如:AI图像处理、4K电影播放、NAS网络存储、私有云等等。AI图形处理这里就不是我们关心的重点了,我们接下来主要来谈后面几个。

Kodi 媒体中心是一个屡获殊荣的自由和开源的跨平台媒体播放器和用于HTPC(Home theater PC,家庭影院PC)的数字媒体娱乐中心软件,可以运行在Windows、Android、iOS、Mac、Linux、Raspberry Pi系统。它是一个优秀的自由和开源的(GPL)媒体中心软件。最初为Xbox而开发,叫XBMC。因为全世界开发者的参与,这个软件已经拥有远远超过以往的功能,这已经不能用‘一个简单播放器’来包含所有的一切了。因为这个原因,XBMC.14后更名为Kodi。

在树莓派上,我们用LibreELEC_RPi4。它是一个KODI的树莓派定制版本,做了很多优化,去掉了一些不需要的功能。

这里,经过实际测试,CPU占有率20%左右(4核平均值,以大家习惯的win系统占有率计算方式表达,满载是100%)。

内存占用在600M左右。可以打开KODI的资源检测查看。

简单的说,我们可以用KODI 在电视上播放4K电影、电视剧、看电视直播、刷B站视频、听无损音乐,支持安卓苹果手机投屏,手机的照片和视频可以在电视机上播放,与家人分享。

看到这里,你心动了吗?

可能有人会说,我有电视机顶盒,也能实现你说的这些功能。弄这些有必要吗?

是的,没错,但是其实是有很大差别的,虽然有部分是交叉的。听我慢慢道来。。。

电视机顶盒目前的现状

电视机顶盒现在配置都比较高了,或者有些是智能电视机,内部其实就是一个电视机顶盒。

电视机顶盒用的是安卓系统,而我们这个树莓派KODI用的是linux系统。

但是目前的机顶盒生态其实很不友好。只能安装自带应用市场的app,想通过U盘安装app人为设置了很多障碍。

机顶盒开始买来的时候,运行都很流畅,但是只要用了2、3年,就发现越来越卡,不管配置有多高,好像都这样,用的还是那些厂家自带的软件。但就是会卡,这好像是安卓系统避免不了的一样,也有人说这是厂家的计划报废。。。

机顶盒的视频都是会员制了,免费的电影很少,但是很多正在播的电视剧电影等又是独家的,意味着你买的其他视频app的会员可能没有你想看的电视剧、电影。而且就算你买了所有的会员,还有会员专属的广告等着你呢。就算你买了会员,能看的4K电影也是很有限的,少得可怜。在线看4K电影还很考验网速,看的过程中卡顿就很影响观看感受了。

所以很多时候,机顶盒只是成为了一个手机投屏的工具了,都是通过手机来播放投屏观看的。

关于看电视的问题,其实现在很少看电视了,但是家里面老一辈的父母是要看电视的,自己也会偶尔看下新闻、体育什么的。但是机顶盒看电视直播是有版权的,不是你想看就能看得,好像安装了电信宽带电信机顶盒的用户可以免费看。而且频道也就是各个地方台,中央台。

还有,机顶盒它主要是在线播放,目前都是购买了影视的版权的,这也就是说,对于一些资深影迷来说,很多片子没有引进国内是看不到,或者是删减了的。像是很多美剧韩剧等等。

总的来说,现在的机顶盒很畸形,本来它是可以作为一个大平板,和手机一样的,但是你们看到了,这其中有太多的人为限制。目前来说,机顶盒显得很鸡肋,只需要有一个手机投屏就可以了。

KODI 系统的优势和特点

KODI系统虽然使用的Linux内核,但是它是以插件形式安装软件的,并不是linux通用的软件安装方式,它属于高度定制的系统。而由于KODI属于国外开源的软件系统,它的开发都是依据国外的网络使用环境来的,比如:youtube、推特、奈飞等都是正常方式国内用户用不了的。国内用户能使用的我们已经验证并且集成到系统里面了。

KODI 系统永远也不会卡顿。因为是采用的Linux系统,稳定性是很高的,绝大部分服务器都是使用的Linux系统。而且树莓派4B的性能经过我们实测,运行KODI绰绰有余,是跑不满CPU的。而KODI的插件是很纯净的,没有乱七八糟的后台,广告,获取用户权限搜集用户信息什么的,用再久也不会卡顿。

KODI同样支持手机投屏,而且我感觉网速快得多,对应的清晰度也高一些,这点还有待验证。

KODI看电视直播是使用PVR电视直播插件来实现的,支持m3u电视节目单,导入到插件中,重启后就可以看电视了。m3u我们知道是一种流媒体协议,是一种数据广播的形式,点对多传输的。这个电视节目网上搜一下很多的,电视台可达2000多个!不局限于什么地方台中央台,还有国内收费的电视节目,国外各种卫星电视节目,都是免费观看的。

用KODI可以把存储的电影电视剧导入,然后刮削出海报、剧情介绍等信息,形成自己的影音库。这些影音都是存在本地硬盘的,平时通过我们的树莓派系统里面的Aria2 ,qBittorrent 下载软件下载到硬盘,而机顶盒是属于在线播放的。

KODI还能结合NAS系统私有云,把手机备份的相片和视频,在电视上播放与家人一同观看。

KODI还可以安装B站插件,可以观看B站的大量视频,喜欢二次元的不要错过。

KODI可以使用红外线遥控器,或者鼠标键盘。

NAS 网络存储私有云

这里很多同学可能会说了,用树莓派来做NAS性能很拉跨很差劲吧?我买个二手的矿机来做NAS不香吗?价格还便宜不少。

这里我多说两句,普及下矿机的事。在前些年,出了很多区块链的矿机,因为还可以赚点小钱,十分火爆。像是什么联想、迅雷也出过,蜗牛星际、X家云、X客云等等,后来因为政策,这些产品都踩了红线,一时之间全部退市。这样二手市场流出了大量的矿机。

因为是二手商品,厂家都关门了,肯定是没有技术支持的没有售后的,只能买来自己折腾。肯定是需要你要有这方面技术能力和时间成本的。

这些二手矿机年代久远了,由于是矿机,长时间高负荷工作,还能用多久全靠运气,就是花钱碰个运气。

由于这些都是好多年前的硬件方案了。性能只能说是很勉强。

由于带有USB3.0,数据传输相对于USB2.0提升了10倍!300M以上的速度我相信对于绝大多数人来说够用的很了。以前用USB2.0来做NAS系统的时代一去不复返了。USB2.0接硬盘做NAS系统传输速度只有10M,十分鸡肋,只能说能用。现在终于不再受USB2.0的速度限制了。盼了好久,终于等到树莓派USB3.0的到来。

配合上真千兆网口,大大提升了使用体验。

树莓派的千兆网络没问题, 几乎可以跑满:

测试用一台工作站与树莓派直连,931M/s 接近1000M. 这意味着跑个NAS, 瓶颈不再是网络了。当然,你要说你家里是万兆宽带,千兆拖了后腿,也没办法。这个也毕竟是少数,远远还没有到普及的程度。树莓派4B的价格平易近人,还能要求什么呢?关键是看能不能满足我们想要的功能。

整个存储都是放在硬盘上的,而硬盘是通过USB3.0连接到树莓派USB3.0口的。所以USB3.0口对于硬盘的读写速度是非常重要的。

私有云存储

采用在树莓派官方32位系统基础上来搭建。应用软件选择owncloud开源私有云系统。在这里,没有选择专门的NAS软件,如:openmediavault 。因为这类系统对于新手小白来说太复杂,而且使用过程中有一些问题。而owncloud使用起来,就像是使用普通的百度网盘一样,容易上手。像是samba共享服务协议,单独安装即可。

下面我们开始讲解如何快速搭建系统

分为三步:

1、准备硬件。先看看自己手边有没有,没有的话我们有套件的。

2、烧录免费镜像、按要求格式化分区硬盘同时进行。

3、上电使用。

这其实是组成一个完整的主机系统。

硬件准备

1、已经安装了普通散热片的树莓派4B 2G/4G/8G 主板一块。

2、16G TF高速存储卡一张。16G够用了,太大的话,备份还原系统会花更多的时间。

3、USB3.0移动硬盘一个。

4、树莓派4B电源,至少5V/3A。

5、hdmi小口转大口转接线。

6、树莓派4B散热风扇。

树莓派4B主机套件方案介绍

这些东西比较零散,接了线之后,也是比较凌乱的。如果你身边有这些东西可以先用起来试试。

也可以用我们提供的软硬件一体整合解决方案。免费提供已经配置和优化好的镜像文件和相关软件,烧录后即可使用。获取方式见文末。

有详细的说明文档和视频。这些都是免费给大家使用的。有官方教程有指导,不怕你不会。

这个方案整合了所有硬件在一个铝合金外壳内,十分的紧凑。内部可以安装2块2.5寸硬盘。软件上把已经优化配置好的系统和软件做成镜像文件,烧录到TF卡上就可以立即使用了。

最终的一个安装完成效果:

所有接口走线都在后面板上。

烧录镜像文件

TF卡内如果有重要资料的话,请先将TF卡资料备份。待会TF卡将会被格式化,所有数据将会丢失!

运行格式化软件,插入TF卡,格式化提示不用理会。

插入TF卡或者硬盘的时候,遇到任何提示需要格式化操作的,都不用理会,格式化会丢失掉所有数据,除非你需要格式化。这是因为TF卡中有linux分区,WIN系统电脑是无法识别的,所以弹出格式化提示。

我们的系统在WINDOWS系统中会被识别成 RECOVE RY、boot、System 三个盘符。

选择一个格式化就行。如果你还有其他的USB设备,一定要看清楚盘符,别格式化错了。

选择Overwrite format,然后点击Format开始格式化。

选择你要烧录的镜像文件和TF卡的盘符,点击Write开始写入,等待烧录完成。

3、至少准备一块2.5寸SATA硬盘(机械和固态都可以)。硬盘需要按要求分区和命名,建立文件夹。

文件路径说明:

私有云admin账号数据存放位置:NAS1_yun :\owncloud\data\admin\files

也就是手机里照片视频等备份的位置,其他账号依此类推。

下载位置:NAS1_xiazai :\xiazai

Aria2、QB下载软件的下载路径,下载完之后可以移动到其他地方。

KODI电视剧存放位置:NAS1_xiazai :\电视剧

KODI电影存放位置:NAS1_xiazai :\电影

KODI视频存放位置:NAS1_xiazai :\视频

KODI音乐存放位置:NAS1_xiazai :\音乐

KODI电视直播m3u文件位置:NAS1_xiazai :\电视直播源

微力同步同步文件夹:NAS1_xiazai :\verysync

硬盘分区方法(以一块500G硬盘举例):

硬盘采用NTFS格式,逻辑分区。

不管是多少块硬盘,要求有至少2个分区就可以了。分区大小根据自己需要和硬盘大小来分配。

一个分区命名为:NAS1_xiazai,大小建议至少200G。这个是用来存放下载文件的,包括电影、电视剧、视频、音乐,是KODI的播放盘。

另一个分区命名为:NAS1_yun,大小建议至少200G。 这个是owncloud 私有云工作盘符。手机的相片视频自动备份都是在这个盘。

NAS1_yun分区格式化完成后,需要把官方发布的owncloud文件解压后,放在根目录!

免费提供已经配置和优化好的镜像文件和相关软件,烧录后即可使用。见文末。

有详细的说明文档和视频。

这些都是免费给大家使用的。有官方教程有指导,不怕你不会。

到这里,树莓派NAS和KODI影音播放系统搭建就已经介绍完成了。大家先利用现有的东西,烧录镜像文件就可以使用了。免去了自己折腾,中间有很多的问题要出处理,不是每个人都能顺利解决的。如果觉得好用的话,可以考虑用我们的软硬件集成方案。整体性会好很多。把树莓派可以当成一个真正的主机来使用,当然你也可以自己安装需要的软件。

我们提供已经配置、优化好的 应用 、系统整合镜像给大家 免费 使用,仅限个人使用,严禁用于商业用途。

所需的镜像和相关软件、说明文档打包下载地址:

链接:https://pan.baidu.com/s/1hi-_vfgGtK3psH-gaELSMg

提取码:6a9q

如需文中所用到的组件,可以在这里选购:

https://item.taobao.com/item.htm?id=658823159249

希望大家都能愉快的使用树莓派!

作者:硬件老郭

链接:https://www.jianshu.com/p/9a03c99644c5

链接:https://www.jianshu.com/p/798ed10f812c

链接:https://www.jianshu.com/p/95d71b072eae

工业树莓派结合USB摄像头实现远程网络监控

背景

工业环境下为了更好地查看设备附近的运行状况,一般都会安装摄像头达到监控的效果,工业树莓派适用于工业环境,本次测试就使用工业树莓派和USB摄像头结合达到远程网络监控的效果。本次测试采用的远程网络监控工具是MJPG-streame,它是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中,MJPG-streamer的工作就是将其中的一个输入插件和多个输出插件绑定在一起,所有的工作都是通过它的各个插件完成的。

准备工作

1台工业树莓派

1个USB摄像头:普通摄像头即可,本次测试采用的是无需驱动的USB摄像头。

安装步骤

1、检查是否存在USB摄像头设备。

1)方法一:lsusb

2)方法二:ls /dev

可以看到video0就表示有USB摄像头设备在运行

2、安装MJPG-Streamer。

依次按照以下命令安装:

1)sudo apt-get install cmake libjpeg8-dev

2)wget https://github.com/Five-great/mjpg-streamer/archive/master.zip

(注意:如果无法连接到github,可以用PC端下载压缩包,然后通过FinalShell或者FTP服务器上传到树莓派。)

unzip mjpg-streamer-master.zip

3)

cd mjpg-streamer-master cd mjpg-streamer-experimental

4)make

5)sudo make install

6)cd /home

3、启动MJPG-Streamer

/usr/local/bin/mjpg_streamer -i “/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 30 -r 1280×720” -o “/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www”

4、实时视频接收

用浏览器打开网址:http://<树莓派IP地址>:8080/javascript.html

5、总结

如此便可以实现远程网络监控,适用的场景可以是监控树莓派控制的电机的运行状态或者传感器的运行状态。在一定程度上也降低了成本,相较于以太网接口摄像头,USB摄像头更加实惠。

关于虹科

虹科是一家在工业物联网IIoT行业经验超过3年的高科技公司,虹科与世界领域顶级公司包括EXOR、Eurotech、Unitronics、Matrikon、KUNBUS等合作,提供一系列先进的高端的工业4.0 HMI、高端边缘计算机、IoT开发方案、PLC与HMI一体机、OPC UA、工业级树莓派等解决方案。物联网事业部所有成员都受过国内外专业培训,并获得专业资格认证,平均3年+的技术经验和水平一致赢得客户极好口碑。

我们积极参与行业协会的工作,为推广先进技术的普及做出了重要贡献。至今,虹科已经为行业内诸多用户提供从硬件到软件的不同方案,并参与和协助了众多OEM的设备研发和移植项目,以及终端用户的智能工厂和工业4.0升级改造项目。我们致力于为中国乃至全球的万物互联、智能制造贡献自己的力量。

基于树莓派和 ESP32 制造一台掌上电脑

MAKER:rahmanshaber/译:趣无尽(转载请注明出处)

因为树莓派本身就是一台微型的电脑,大家对于如何使用树莓派来实现一台多功能的电脑一直在做不同的尝试。

在前面的教程中我们曾发表过《Pi-Micro:用树莓派ZeroW制作的掌上电脑》,如手机般大小的掌上电脑;还有《Arduino制作:支持Basic和VGA显示器的复古计算机》基于 Arduino 的掌上电脑。

今天我们给大家带来一个基于 ESP32-S2 ,附带 56 个键盘,4 英寸显示屏以及扩展接口的树莓派掌上 PC。整个项目所需材料不多,易于构建,且外壳使用 3D 打印,整体造价不高。

项目特点:

– ESP32-S2,易于焊接且损耗小。

– 4 英寸 IPS 显示屏,4GB RAM,2 个 HDMI 输出端口。

– 56 个键可定制键盘,2 个用于导航的侧边按钮。

– 带有 RTC 时钟、蜂鸣器、振动、光敏传感器和红外发射模块。

– 支持红外遥控;支持自动息屏;支持显示新旧加载项;支持鼠标左右键。

– 支持 MPU6050 陀螺仪模块、BME280 压力模块和温湿度模块。

– 支持键盘按钮关闭模块、显示器以及附加组件;支持使用操作系统和键盘键关闭电源。

– 带有 USB type C 型号的 Nurolink / Dock 端口,支持 UART、I2C 和供电。

– 支持读取电池电量并在电池电量不足时关闭设备电源。

– 支持 ESP32-S2 与树莓派通过 Neopixel 库双向连接。

– 18650 锂电池,带充放电保护。

– 改进版的外壳使其更好地贴合 PCB。

组件清单

Esp32-S2 × 1

树莓派 × 1

3D 打印部件 × 若干

USB C 到 USB C 转换器 × 1

4 x 2 公头排针 × 1

2 x 20 母头排针 × 1

4 英寸 IPS 显示屏 × 1

FPC 连接器 × 1

锂电池 × 1

PCB 板 × 1

GPS 模块 × 1

DS3231 × 1

蜂鸣器 × 1

TP4056 × 1

RTC 时钟 × 1

按键 × 56

USB C 接口 × 2

螺丝螺母 × 若干

电阻 × 若干

电容 × 若干

LED 灯 × 1

接线 × 若干

贴片按键 × 2

吸锡带 × 1

电烙铁 × 1

焊锡丝 × 1

剪线钳 × 1

助焊剂 × 1

修边刀 × 1

PCB 功能介绍

我将提供完整的清单,它包含所有的功能,但你可以根据自己的需求来组装。

组件功能介绍如下(参考):

S – 1 开关电源模块,用于控制设备开关(必备)。

S – 2 连续充电模块 ,断开充电器,防止设备重启

S – 3 升压模, 将电池出来的电压升至 5 V

S – 4 ESP32-S2 + 复位模块,控制器 (必备)。

S – 5 振动模块 提供振动反馈(可选)。

S – 6 时钟模块 断电后保持计时(可选)。

S – 7 MP6050 / BME280 陀螺仪 / 温湿度(可选)。

S – 8 扩展电源 设备关闭时可保持显示模块 S – 7 的功能(可选)。

S – 9 红外模块 红外遥控器 (可选)。

我列出两个版本供大家参考,一个精简版和一个完整版。你可以根据自己的需求对组件进行了删减。

PCB 与 3D 外壳打印

PCB 选定好功能后就可以开始搭建以及 3D 打印外壳。外壳总有五个部分。

关于外壳 3D 打印文件可以在本项目文件库中下载:

https://make.quwj.com/project/401

PCB 总有三个部分。

关于 PCB 3D 打印文件可以在本项目文件库中下载:

https://make.quwj.com/project/401

焊接部分

在 PCB 中一共有八个模块,我将分模块进行焊接,先焊接三个模块的零件,这样有助于分步查错。

焊接顺序如下:

– USB C 端口 > S – 2 > 电池连接器 >> 查看电池是否充电。

– S-4 (暂不焊接 FPC 连接器) > 4 x 2 公头排针 >> 测试能否能够上传固件。

– S-1 > S – 3 >> 连接电池并按 S-3 模块中的按钮,查看指示灯是否亮起。

– 焊接 FPC 连接器(外接显示器用)和 2 x 20 母头排针 > S-8 >> 键盘 >> 连接树莓派和电池,按住电源按钮查看树莓派是否启动。

– S-6 > S-9 > S-7 >> 查看在 OS 的指导下,整个 PCB 板的是否工作正常。

组装部分

螺丝的型号如图所示。

3D 打印外壳所需的螺丝的型号为:

– 22mm x 2

– 9mm x 2

– 6mm x 4

– 8mm x 1

– 10mm x 1

– 16mm x 1

尝试将 PCB 放入,毛边的地方需要用砂纸打磨。

线路连接及其他功能的扩展(可选)

在 PCB 有一个扩展端口(2 x 10 pin 的母头排针),接入后可扩展一下六个功能:

– 无线电广播, LoRa 通信

– 自定义 Wifi

– GPS

– Micro SD

– 蓝牙

– 压力+湿度+温度模块

– 自定义专属模块

Nurolink / Dock 端口的扩展

该设备的 Nurolink / Dock 对接端口,可以用来供电、连接外部设备或外部电路。

如图所示,可连接到 Nurolink / Dock 端口的 GPS 模块。

同时也可通过 Nurolink / Dock 端口连接两个接口,需要将 USB C 和 USB C 的电缆进行改动,需要交换 D+ 和 D- 线,因为 TX 要连接至 RX,没有改动的线是 Tx 是连接到 TX。

Nurolink / Dock 端口的 6 个引脚如下:

-2 个引脚分别为 UART / TTL 引脚:Tx 和 Rx

-2 个引脚分别为电源引脚:3v 和接地

-2 个引脚分别为 I2c 引脚:SDL 和 SCL

可升级的地方

DIY PC 的过程不会一帆风顺,仍有许多改进的地方,可以不断的优化项目。

例如:

Arduino 编码,可在固件中添加功能。

Fusion 360,可改进支持且更容易构建。

Python,可使附件充分发挥作用,例如基于 Lora 的通信应用程序能够与其他 PC 用户进行通信。

FreeCAD,将其移植到 freeCAD,能够更加开源。

KiCAD,能够更加开源。

via

基于树莓派的 WebDAQ 504 应用案例

WebDAQ 504 是 MCC 基于树莓派设计的数据采集产品,与我们之前推荐的 MCC DAQ HATs 系列一样,被用于解决工业数据采集的需求。下面这一则案例带你进一步了解 WebDAQ 504 以及树莓派在工业中的应用。

风力涡轮机变速箱故障测试系统

上海朋禾智能科技有限公司是一家专注于工业设备健康评估和故障诊断的定制解决方案提供商。他们专注于工业物联网(IIoT)平台设计,边缘计算系统架构和工业级硬件平台设计作。

风力发电行业的客户需要风力涡轮机的测试解决方案。通过收集和分析轴承和其它组件的振动数据,对涡轮传动系统齿轮箱进行诊断。

预测风力涡轮机中的齿轮和轴承故障可以降低维护成本,缩短停机时间并防止绿色风电能源生产中断。

挑战

动力传动系统是风力涡轮机的心脏,包含发电机和齿轮箱,可以将叶片的旋转转换为电能。风力涡轮机变速箱可能会经受极端应变和扭矩使用场景,这使组件的耐用性成为一个挑战。

当典型的涡轮机仅以10~18RPM转速旋转时,感应发电机的转速可以达到1000RPM以上。这样的速度会产生了巨大的应力,给每个部件带来了沉重的负担。由于风力涡轮机的远距离监控的特点,传动系统的可靠性是重中之重。

所需的变速箱故障测试系统可模拟常见的轴承故障情况。通过模拟不同的运行和负载条件,它可以帮助检测可能发生轴承和齿轮故障的情况。

客户需要一种振动测量和分析解决方案,该解决方案不仅要功能强大,而且还要足够灵活以满足他们定制化算法的要求。该解决方案将需要在两种模式下使用。在独立模式下,该解决方案将收集数据作为测试平台的一部分,就地完成实时数据查看和分析。在IIoT模式下,数据采集解决方案将与涡轮机一起部署,远程实现实时记录和分析数据。

解决方案

MCC的WebDAQ 504被选为系统的核心数据采集部分。两个基于IEPE的加速度计直接连接到WebDAQ,且无需增加信号调理电路。这两个通道是同步采样的,还使用了内置的抗混叠滤波功能。水平和垂直加速度传感器已预先安装在测试台的齿轮箱轴承上,并且每个通道的采样速率高达25kS/s作为核心。

WebDAQ 504包含一个易于使用的基于Web浏览器的应用程序,该应用程序允许用户设置采集,记录, 分析和显示数据,启用警报以及将数据导出到第三方应用程序。

WebDAQ 504的计算引擎是树莓派计算模块(Raspberry Pi computer module)。通过使用WebDAQ开源代码,程序员可以直接访问树莓派计算模块,这使该系统成为真正的边缘计算解决方案。随附的Python示例程序允许程序员快速构建其应用程序,并连接程序的自定义显示和分析部分。

执行

在独立模式下,通过WebDAQ内置的应用程序进行配置及数据采集,实时分析不同工况(负载和速度)下的振动数据。

在IIoT模式下,WebDAQ 504与涡轮一起部署,并通过以太网进行通信。该系统支持将WebDAQ 504连接到公有云或私有云。通过自定义界面,可以实现诸如设备管理,远程监视和健康评估之类的应用程序,这些应用程序适合于分布式在线监视和健康管理应用程序场景。数据还可以通过MQTT协议上载,与辅助数据应用程序一起使用。

测试台可模拟多种操作条件,为操作员提供有价值的反馈。负载分析数据使工程师能够检测轴承和齿轮故障情况。

成果

完整的系统是一个灵活的平台,可以收集和分析振动数据。它满足了客户的专用软件需求,为客户提高了设备可靠性并减少了设备维护时间。

崔鹏

总经理

上海朋禾智能科技有限公司

上海市浦东新区纳贤路800号科海大楼

home

获取更多关于Measurement Computing的信息,请访问官网:china.mccdaq.com

PALPi 复古游戏主机,基于树莓派 Zero

MAKER: Arnov Sharma/译:趣无尽 相逢已是初识(转载请注明出处)

尽管基于树莓派开发的复古游戏机有不少作品,也很容易买到。我们之前也介绍过「树莓派CM3 掌上游戏机DIY全记录」。

但是还是有必要推荐一下下面这款,基于树莓派 Zero 的复古游戏机。因为它为你展示了两个版本,其中包含了面包板搭建的版本,更加便于理解游戏机搭建的原理,并大幅降低了自己 DIY 的门槛。所用到的材料也很容易获得,这个项目主要的特性如下:

1、使用 PAL 制式显示屏。

2、由 Raspberry Pi Zero 驱动,采用 RecalBox OS 操作系统,该系统还附带一些预装游戏。

3、由 IP5306 IC 供电,该 IC 是用于移动电源电路的 5V 2A 恒定升压 IC,非常适合为 Raspberry Pi Zero 供电。

4、项目的前半部分为面包板版本,后半部分为 PCB 版本。

材料清单

Raspberry Pi Zero × 1

16 GB 存储卡(8 GB 也可) × 1

TV 屏幕 × 1

HDMI 转 micro HDMI 适配器 × 1

5V 2A 充电器/电源可稳定输出 2A × 1

键盘 × 1

USB 转 microUSB 适配器 × 1

RecalBox OS 映像文件/ Raspberry Pi Image Flasher × 1

普通按键 × 1

定制 PCB 板 × 1

IP5306 IC × 1

10uf 0805 电容 × 1

USB 端口 × 1

microUSB 端口 × 1

带有 CON2 连接器线的锂离子电池 × 1

CON2 连接器 × 1

10k 0603 电阻 × 1

2R 0805 电阻 × 1

垂直按钮 × 1

一、初步构想

设备包括 PCB 板和 3D 打印外壳,两者由螺钉连接起来。正面是显示器和按钮,使用 4.3 英寸的显示屏,尺寸大约是 135mm x 140mm,比普通的 Gameboy 屏幕大。反面是 Raspberry Pi Zero 同升压转换电路和锂离子电池。

二、配置 RecalBox 系统

下载 Raspberry Pi 映像文件。

Select the right OS for your device 这里选择 RecalBox

Select your system 这里选择 Rpi0

Raspberry Pi imager will do your work of downloading and installing the RecalBox on the memory card.(完成下载与安装)

安装完成后,将树莓派接上电视屏幕和键盘。

启动设备,RecalBox 就可以正常工作了。

三、GPIO 接线原理图

注:原理图中将按键一端连到 GPIO 口,一端接地。

原理图在本项目文件库中可以下载:

https://make.quwj.com/project/385

四、显示器与 GPIO 控制

显示器种类有很多,既有 HDMI 端口,也有带状电缆端口,在这里从成本考虑选用 PAL 制式的车载显示器(带 PAL 端口)。因为车载显示器工作电压为 12V,而这里需要 5V 或 3.3V 的显示器,所以需要对显示器内部降压电路进行改装,这里移除了 12V 转 3.3V 的降压芯片,并在 Vout 端的电容上增加 VCC 和 GND ,为显示器提供 5V 电压。

为使 PAL 端口运行显示器,需要在配置文件中编辑一些内容。用键盘在网络设置中输入 SSID 和密码。(将其与 winSCP 连接)

需要编辑以下内容:

SDTV 输出的设置

HDMI 显示器连接到的 Raspberry Pi 上就会输出其视频信号,但在 PAL 端口下,需要设置 SDTV 的输出。

进入 boot > config.txt 更改默认设置,从 sdtv_mode 中删除 # 并添加 sdtv_aspect = 1,此外,在 HDMI lines 前加 #。(如图,检查 Boot/config.txt 并复制其中的内容)

GPIO Control

GPIO 口与按键的设置。

进入 recalbox > share > system > recalbox.conf

通过以下两步启用 GPIO 外接按键

设置 controller.gpio.enabled=1(之前是 0)并将 controller.gpio.args.map=1,2 更改为 controller.gpio.args.map=1(2 是第二个玩家)

更改完默认设置(如图,检查 D2 GPIO Controlers),然后重启,RecalPi 便可适用于 PAL 端口和自定义按键。

五、完善面包板版本

这里用了定制的 GPIO 适配器,接线有所变化,参考图片将按键一端连到 GPIO 口,一端接地,完成后可以通过接 TV 测试按键是否正常工作,没问题后将 TV 更换成车载显示器,车载显示器的 VCC 接到 5V,地线连到一起,然后用 5V 2A 的电源供电,车载显示器显示画面则成功(注意之前的 SDTV 设置)。

六、设计电路板

根据面包板搭建的电路绘制 PCB 文件,包括 13 个按键与 Rpi Zero 相连,加 IP5306 IC 驱动的电源电路。其中 IP5306 是一款适用于 3.7 V 锂离子电池的电源管理芯片,可以调节输出电压的大小,这里将其提升到 5V 2A 适用于 Raspberry Pi 和车载显示器。

设计流程如下:

首先在 Fusion360 中设计整体结构,然后利用 Fusion360 的 PCB Layout 在 My PCB Cad 软件中对 PCB Outline 进行建模。(这里在经典的 Gameboy 布局中放置了额外的热键按钮)

七、电路板打样

将生产文件 Gerber 给到 PCB 制板厂商打样。

Gerber 文件在本项目文件库中可以下载:

https://make.quwj.com/project/385

八、焊接 PCB 板

1.SMD 元件焊接

将焊膏涂到待焊焊盘上,摆放好元件后,将 PCB 板放到 SMD 加热板上进行回流焊,加热板从底部向上加热 PCB 板至焊膏熔化,焊膏熔化时从加热板上取下 PCB 板冷却 3-4 分钟。之后按照正确的元件焊接顺序,依次重复此操作。

2.THT 元件焊接

将 USB 端口、按键和 CON2 连接器添加到 PCB 板,然后焊接。

最后焊接排母。PCB 板的焊接就大功告成了,接上锂离子电池,在 USB 端口处接 USB 电源监视器,检查 USB 的输出是否为 5V,没问题后接入 Raspberry Pi Zero W(已安装 RecalBox,并完成配置文件的更改)。

九、整体组装

利用 3D 打印的支撑部件将显示器固定到 3D 打印的外壳上,用四个 M2 螺丝将电路板安装到外壳上,并将显示器的 VCC、GND 和 PAL 端口与 Raspberry Pi 和电路板连接起来。完成后就可以通过 ON – OFF 垂直按钮启动 Recalbox 了。

3D 打印文件在本项目文件库中可以下载:

https://make.quwj.com/project/385

完成!开启你的复古游戏之旅吧!

十、添加更多游戏

添加游戏只需下载相应 ROM 即可,具体操作如下:

进入 Settings > Network Settings,添加路由器的 SSID 和密码,将树莓派连网,可以在网络设置菜单的顶部看到树莓派的 IP 地址。

然后在电脑上打开 Win SCP,输入树莓派的 IP 地址,用户名是 root,pi 的密码是 recalboxroot。

进入 recalbox > share > rom,这里包含所有的 ROM 文件,如果想玩其中一款游戏,只需将其 ROM 文件复制粘贴到 GBA 文件夹中即可。

重启树莓派后打开 GBA 模拟器,就可以看到新添加的游戏了。

希望你可以从这个项目中得到一些制作复古游戏机的启发。

项目所用的代码在本项目文件库中可以下载:

https://make.quwj.com/project/385

via

虹科工业树莓派:根据天气控制温室窗户开合

1.简介

在本案例中,虹科工业树莓派RevPi Core3通过Node-RED编程获取并处理荷兰在线天气门户网站Buienradar的实时天气数据,并根据获取的天气信息对温室的窗户进行控制,从而实现温室的IoT改造。

2.所需器件

虹科RevPi Core3

虹科RevPi DIO模块

继电器

3.实现方式

在本案例中,温室的IoT改造主要集中在两个方面:温室窗户的自动开闭以及自动获取天气数据并分析。

3.1温室窗户开闭控制

温室的窗户通过行程长度为500 mm的线性驱动器执行打开和关闭动作。此线性驱动器配备有24V电机,可以通过虹科RevPi Core3和DIO扩展模块进行控制。

所使用的执行器在冲程结束时自动停止电动机,无需其他传感器或开关。由于执行器需要3A的驱动电流,而DIO模块最多只能输出500 mA的电流,因此这里需要一个额外的继电器来控制24V电机的开闭。

3.2天气数据的获取及分析

为了实现根据天气情况自动打开和关闭窗户的功能,本案例采用可从网络上免费获取的天气数据。此类数据可以采用Node-RED获取。

Node-RED具有用户友好的图形开发界面,可以通过添加HTTP请求节点以及功能节点从Buienradar的网站上获取预计降水量数据。

通过链接 https://gpsgadget.buienradar.nl/data/raintext?lat=52.08&lon=5.47 可以文本形式请求未来两个小时的预期降水量。“lat”和“lon”之后的数字对应于需要降水数据的地方的GPS坐标。这些数据由Node-RED每五分钟检索一次。如果预计在15分钟内下雨,窗户将自动关闭。但是,如果在接下来的15分钟内仍保持干燥,则系统将再次打开窗户。

4.更进一步

当前,RevPi只区分“窗口打开”以及“窗口关闭”两个状态,要获取更多设置,可以进一步开发。另外,也可以连接温度和湿度传感器,准确获取当前天气状况,以进一步提高窗户自动开闭的准确性。还可以通过仪表盘节点进一步升级,通过web浏览器显示当前降雨预报以及窗口状态等。

总而言之,虹科工业树莓派RevPi具有极大的灵活性和无限的潜力,并且软件硬件完全开源,您可以以最大的自由度在RevPi上进行开发。

5.本文使用的模块

RevPi Core 3具有定制的Raspbian系统,预先安装了RT补丁,配备Raspberry Pi计算模块3,内置Broadcom的多核处理器具有足够的能力来执行诸如图像处理之类的复杂任务,可以完成高性能要求的任务。

处理器博通BCM2837

核心数4

时钟频率1.2 GHz

内存1 GB

eMMC闪存4GB

RevPi Core 3使用了最先进的高效DC-DC转换器(总体效率大于80%),从而可以有效减少发热。模块不仅可以在20.4 V至28.8 V标准化的电源电压范围运行,也可以在10.2 V输入电压下运行,这意味着您甚至可以使用汽车电池或太阳能电池板作为电源。先进的保护电路可确保即使在输入电源线上受到大量电磁干扰的情况下,模块也能连续运行(前提是正确连接了功能性接地)。

像Raspberry Pi一样,RevPi Core 3也配备了通用接口:

1个RJ45以太网插座

2个USB 2.0插座

1个Micro HDMI插座

1个Micro USB 2.0插槽

2 个PiBridge(用于RevPi模块扩展)

RevPi Core 3模块可以适应恶劣的工业环境:

电源:12-24 VDC -15%/ +20%,max.10W

工作温度:-40°C至55°C

ESD保护:符合EN 61131-2和IEC 61000-6-2的4 kV / 8 kV

浪涌/冲击测试:根据EN 61131-2和IEC 61000-6-2进行

EMI测试:根据EN 61131-2和IEC 61000-6-2

UL认证(UL文件编号E494534)

I/O模块有三种版本,均可以通过PiBridge与Core模块直接相连。它们的前端都具有相同的28针I/O连接器。除了具有14个数字输入和14个数字输出的标准版本外,还有两个特殊版本,它们仅具有16个数字输入或16个数字输出。根据EN 61131-2的要求,所有版本都有抗干扰保护,并且可以在-40°C到55°C的温度范围,相对湿度高达93%的环境内运行。此外,所有数字I/O模块都具有UL认证(UL文件号E494534)。

输入和输出的开关状态通过PiBridge与RevPi Core的中央处理映像进行周期性数据交换。除了切换状态之外,还可以周期性地传输可能的错误状态(诊断数据)和配置数据。RevPi DIO模块还配备了PWM(脉冲宽度调制)和计数器输入,可以分别为14个输出中的每个激活PWM功能,为14个输入通道中的每个通道激活计数器功能。

工业树莓派零代码实现工业协议与MQTT互转

在以往的文章中,我们已经介绍了虹科的工业树莓派与Node-RED之间配合的种种可能性。今天,我们将通过实操案例,来看看如何使用Node-RED,以拖拽式低代码,甚至是无代码编程的方式,轻松实现工业协议与MQTT互转以及简单的HMI数据面板,帮助您有效降低在OT协议方面的学习成本,在低经验,甚至是无OT编程经验的情况下,快速在OT协议中的数据与云端数据之间建立联系。

准备工作

1.硬件准备

PC一台

工业树莓派一台

24V直流电源

网线

相关协议网关模块(可选,根据实际需求添加)

2.软件准备

PC上:

Chrome内核的浏览器

树莓派上:

Node-RED、Node-RED RevPi Nodes Server(默认已预装,若发现预装缺失,或需要版本更新可联系广州虹科获取相关文档)

node-red-dashboard(可选,用于制作简单的HMI数据面板)

操作步骤

1.树莓派上电,连好网线,使用Advanced IP Scanner或类似软件扫描工业树莓派的IP地址,或在路由器后台中直接查看DHCP客户端列表,从而确定树莓派所在IP地址。

2.浏览器打开树莓派所在IP地址,出现登录画面,账号为admin,默认密码会印在机身侧面的贴纸上,每台机子默认密码各不相同。

3.登录后打开SERVICES选项卡,分别将以下三项设为Enable,最后点SAVE ALL保存设置。

Modbus Master(本文以Modbus为例,因此需要将Modbus主站功能使能,若不使用Mobus协议则无需Enable此项)

Node-RED

Node-RED RevPi Nodes Server

4.回到APPS选项卡,点击PiCtory右边的START进入树莓派的模块配置界面——PiCtory。

5.首先把主模块按实际情况从左边设备列表中拖到右边(作为例子,本文使用Core作为主模块),把其它IO模块和协议网关模块按实际情况中的左右物理位置,按顺序把模块拖到主模块两边(本文没有使用额外模块)。最后,若要使用主模块的Modbus RTU/TCP主站功能,则在Virtual Devices中找到相应的虚拟模块,拖动到右边,如下图所示。

6.设置相应的协议模块,本文以设置Modbus TCP主站为例:选定要设置的Modbus TCP主站虚拟模块,在右下角变量表中拖到最下方,在slave_IP_address中填入Modbus TCP从站所在IP地址,slave_TCP_port中填入Modbus TCP通讯设置的端口号,默认是502。

7.对着Modbus TCP主站虚拟模块右键点击,打开Extended Data设置界面,并按实际情况设置Modbus变量地址等相关参数,输入完成后点OK确定,附上本文Modbus TCP从站相关参数表:

8.配置完成后点上方菜单的File -> Save as Start-Config. 保存到启动方案,然后点Tools -> Reset Driver立即使配置生效。

9.开一个新标签页,再次输入树莓派IP打开工业树莓派设置主页,点击Node-RED右边的START,或直接访问 [树莓派IP]:1880 进入Node-RED编程界面。

10.在左边的节点列表中找到Revolution Pi分类,此分类底下的节点即为专为工业树莓派设计的节点。拖动一个revpi-multiple-input节点到右边网格区域,然后双击打开对其进行配置。先点击Server右边的铅笔案例,保持默认的localhost地址和8000端口,其它参数保持留空,然后点击右上角的添加,最后在Input Pins列表中找到以下3个变量(该列表只能找到输入变量,输入是对树莓派而言),分别勾上然后点右上角的完成。

Input_Word_1

Input_Word_2

Input_Word_3

11.拖一个Debug节点到revpi-multiple-input节点的右边,简单的把两个模块连上,点整个网页右上角的“部署”。

12.把Modbus TCP从站中的变量值稍作更改,这里我把从站中地址1变量的值改成了321(revpi-multiple-input节点需要它监视的变量中至少一个值有变化,才会向后面的节点输出信息),此时在Debug信息区中找到如下信息表示Modbus TCP数据获取成功。(变量属性是数字形式或者字符串形式都没关系,不影响后续使用)。

13.按下图方式配置节点,其中MQTT输入输出节点仅需配置MQTT地址、端口、Topic等基本信息即可,本文把树莓派的发布Topic设为了RevPiPub,订阅Topic设为了RevPiSub。

分割消息和消息分流节点配置分别如下。

分流节点右边的3个节点为revpi – output,默认会选定前面设置过的localhost:8000作为Server,这部分不需要更改,在下方Pin中分别选择3个输出变量名Output_Word_1、Output_Word_2、Output_Word_3即可。

14.修改完成后,别忘了点击整个网页右上角的“部署”。然后我们尝试把Modbus TCP从站中地址2变量的值改成44555,此时即能通过MQTT获取到一条记录Modbus变量的信息。

15.随后我们通过MQTT发送指令,分别通过JSON中out1、out2、out3三个字段,修改3个Modbus写入变量的值,效果如下图。

16.至此,MQTT和工业通讯协议中的变量交互已经完成,我们既实现了MQTT数据上传,也实现了数据下发。接下来,我们可以尝试创建一个简单的HMI数据面板。首先,在Node-RED右上角的“三”菜单中找到“节点管理”,然后进入“安装”选项卡,搜索node-red-dashboard并安装(安装速度取决于网络环境和树莓派工作负载)。

17.我们在前面的基础上,额外加上按下图形式编排的一些节点。其中左边一列节点均为inject节点,被设为每秒为周期重复注入字符串(变量名),中间一列节点全是工业树莓派专用节点中的revpi – getpin,用以通过变量名获取值,右边全是dashboard分类下的gauge。

18.点击部署后,浏览器访问 访问 [树莓派IP]:1880/ui 即可看到由Node-RED自动生成的简易HMI数据面板。

总结

通过以上的简单步骤,我们可以轻松实现Modbus变量数据与MQTT的交互,中途没有输过任何一行代码,甚至没有进入过命令行界面,全部都是浏览器上的设置操作,其它工业树莓派所支持的通讯协议的配置也是大同小异。总的思路就是给树莓派设置好相应的参数,树莓派自动从相应协议中获取值并存到变量中,我们只需要在Node-RED中拖拽编程,把变量送到MQTT发送组件即可。这种编程方式大幅降低了非OT从业人员开发相关应用的学习成本,用户也不用担心之前从未使用过树莓派,甚至完全没有Linux系统使用经验也没关系。此外,利用Node-RED上的其它开源节点,我们也能够以MQTT以外的多种方式传输数据、以丰富多样方式的展示数据。有编程经验的用户,也可以通过function节点在发送前对数据进行运算、过滤等多种处理,甚至利用exec节点接入其它应用,进行更为复杂的边缘运算。

透过树莓派为 Pico 添加 WiFi 功能

树莓派 Pico 是一款很棒的设备。它具有出彩的特性,拥有强大的 SDK 和文档,而且成本很低。美中不足的是,它没有网络功能。

几款基于 RP2040 的 MCU 目前已上市。但是与 Pico 的价格相比,这几款开发板比较贵,而且它们也不具有网络功能。

本文将向你介绍如何通过几个简单的步骤,使用树莓派为树莓派 Pico 添加网络功能。我们将使用 Telemetrix 树莓派 Pico 包和两个开源网络实用程序,无需额外的硬件。

你只需按照下面列出的步骤操作即可。另外,你也可以使用 Python 脚本来控制和监视 Pico 的 GPIO 引脚。

硬件部分

树莓派 Pico

支持 WiFi 或以太网的树莓派

USB-A 转 Micro USB 数据线

一台 Linux、macOS 或 Windows 10 PC

用到的软件和在线服务

Raspberry Pi OS

Telmetrix4RpiPico(适用于 树莓派 Pico 的开源服务器固件)

Telemetrix-rpi-pico(适用于 PC 的开源 Python 客户端 API)

ser2net(适用于树莓派点免费开源串行端口网络代理)

sosat(适用于 PC 的开源免费多功能中继工具)

原理

Telemetrix 项目允许你通过 USB/串行 将消息从 PC 中上传到 Pico 的固件中,从而监控和控制树莓派 Pico 的 GPIO。

如果我们可以将串行数据流转换为 TCP/IP 流,通过 TCP 中继串行数据会怎样?

没错,这正是我们将要做的,所以让我们现在就开始吧。

第 1 步:给 Pico 上传 Telemetrix

安装步骤很简单,只需按照 Telemetrix 用户指南上描述的步骤操作即可:

1、下载 Telemetrix4RpiPico.uf2 文件。

2、按住 Pico 开发板上的 BOOTSEL 按钮,然后将 Pico 插入树莓派或 PC 的 USB 接口,然后松开 BOOTSEL 按钮。

3、Pico 会被识别为大容量存储设备。

4、将下载的 MicroPython UF2 文件放入 RPI-RP2 卷上。你的 Pico 将自动重启,然后程序就开始运行了。

第 2 步:更新 Raspberry Pi OS

在树莓派上打开一个终端窗口,并执行以下命令:

sudo apt-get update

然后运行命令(如果系统已经是最新的话,可选,运行这个命令会很耗时):

sudo apt-get upgrade

完成后,可以继续下面的步骤。

第 3 步:查找树莓派的 IP 地址

打开终端窗口并输入以下命令:

ifconfig

eth0是为以太网分配的 IP 地址,wlan0是为 WiFi 分配的 IP 地址。由于我用网线把树莓派连接到路由器,并将树莓派连接到 WiFi,因此这两个条目都分配了 IP 地址。当然,我可以选择使用这两个地址中的任何一个,但是由于我想在本演示中使用 WiFi,所以我使用了wlan0地址192.168.2.126。

请记下树莓派列出的 IP 地址,我们在后面的步骤中会用到。

第 4 步:在树莓派上安装配置 ser2net

ser2net 是一个串行转网络的代理。它将 IP 数据流转换为串行数据,并将数据重定向到特定的串行端口。它还把来自串行端口的数据转换为 TCP/IP 流。ser2net 作为守护进程运行,安装之后,它会在每次启动树莓派时自动运行。

要安装 ser2net,请在终端中输入以下命令:

sudo apt-get install ser2net

接下来,我们需要通过修改配置文件来配置 ser2net。首先,在终端中输入以下命令来停止守护进程:

sudo systemctl stop ser2net

然后,在终端中输入以下命令来修改 /etc/ser2net.config 文件:

sudo nano /etc/ser2net.config

请将以下内容添加到文件的最后:

3333:raw:0:/dev/ttyACM0:115200,remctl

保存文件并退出编辑器。

添加的这行内容告诉 ser2net 将在 IP 端口 3333 上接收到的 IP 数据重定向到 COM 端口 /dev/ttyACM0 上的串行设备。要了解 ser2net 的更多信息,请输入以下内容来参考其手册页:

man ser2net

现在,让我们重启 ser2net 守护进程。在终端窗口中,输入:

sudo systemctl start ser2net

第 5 步:用 USB 数据线连接 Pico 和树莓派

连接两个设备之间的数据线后,然后输入:

ls -l /dev/ttyA*

你应该会看到列出的 ttyACM0。

ls -l /dev/ttyA* crw-rw—- 1 root dialout 166, 0 Jun 12 19:17 /dev/ttyACM0 crw-rw—- 1 root dialout 204, 64 Jun 12 19:40 /dev/ttyAMA0

第 6 步:你的客户端计算机是否基于 Windows?

如果你使用 Linux 或 macOS,请跳转到第 7 步。

如果你使用 Windows,你需要在计算机上安装适用于 Linux 的 Windows 子系统 (WSL)。

WSL 可以让开发人员直接在 Windows 上运行 GNU/Linux 环境——包括大多数命令行工具、实用工具和应用程序,免去了使用传统虚拟机或配置双引导的麻烦。

要安装 WSL,请按照此教程进行操作。在选择 Linux 版本时,请选择 Ubuntu 20.04。

安装后,请转到第 7 步。使用 WSL 终端窗口执行所有后续步骤。

第 7 步:安装 Socat

Socat 是基于命令行的实用程序,它建立两个双向字节流并在它们之间传输数据。Socat 是树莓派服务器计算机上使用的 ser2net 的对等点。我们将把它安装在客户端 PC 上。

在客户端计算机的终端窗口中,键入:

sudo apt-get install socat

第 8 步:安装 Telemetrix 客户端

请检查你的计算机上是否安装了 Python3。

python3 -V

如果没有,请先安装。

接下来,通过输入以下命令来检查是否已安装 pip3:

pip3 -V

pip3 的版本会显示在终端中。如果显示空行或有关安装 pip3 的错误消息,请输入以下命令来安装 pip3:

sudo apt-get install python3-pip

我们现在准备从 PyPi 安装 Telemetrix。请在终端窗口中,输入:

sudo pip3 install telemetrix-rpi-pico

第 9 步:下载并修改 Telemetrix 示例脚本

访问 GitHub 项目:

https://github.com/MrYsLab/telemetrix-rpi-pico

下载源码。

保存并解压缩 .zip 文件。解压后进入examples目录,编辑 blink.py。我们之所以使用这个例子,是因为它不需要任何额外的硬件。

请将文件中的以下几行

# Create a Telemetrix instance. board = telemetrix_rpi_pico.TelemetrixRpiPico()

更改为:

# Create a Telemetrix instance. board = telemetrix_rpi_pico.TelemetrixRpiPico(com_port=’/home/afy/MyProxySerialPort’)

修改后的行包含在一行代码中。然后保存文件。

正如我们将在第 10 步中看到的那样,Socat 将创建一个名为 /home/afy/MyProxySerialPort 的虚拟 com 端口。

在这里,我们告诉 Python 脚本使用该 COM 端口。

第 10 步:启动 Socat 并运行 Blink 示例

在终端窗口中,复制并粘贴以下命令。在执行命令之前,请把其中的 IP 地址改为你的树莓派的 IP 地址。

socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:192.168.2.126:3333,forever,reuseaddr,keepalive &

该命令包含在一行中。在该行的末尾,& 符号使命令在后台运行,以便你可以在同一终端窗口中运行 blink.py 脚本。

现在运行修改后的 blink.py,你会看到 Pico 上的 LED 开始闪烁。

python3 blink.py

总结

恭喜你,完成了!现在,你可以编写自己的程序了。如果你愿意,也可以运行一些其他的 demo。请记住一定要像第 9 步中那样指定 com_port 参数。

另外,如果你想编写自己的脚本,请参阅 Telemetrix API 和用户指南。

via

ED-CM4NANO:基于树莓派 CM4 的工业计算机

CM4 NANO 是 EDATEC 为工业应用设计的一款嵌入式计算机,提供与标准树莓派4 相同的功能。其设计兼顾了高性能和低成本的存储方案,能同时支持 eMMC 和 microSD 卡存储。更宽的工作温度、更好的无线性能也使其比标准的树莓派4 更适合用于工业领域。

ED-CM4NANO 充分利用 CM4 的结构灵活性,解决 CPU、无线模块、PMU 的散热问题。 BT 天线提高了无线通信的可靠性,提供了灵活的扩展能力。

系统可根据不同应用配置 1GB/2GB/4GB/8GB RAM 和 8GB/16GB/32GB eMMC,2.4/5.8G双频WiFi和蓝牙(可选),支持外接天线。

对于需要大数据存储容量的应用场景,用户可以使用 eMMC 安装操作系统并存储应用数据,同时用户可以使用 SD 卡存储大用户数据,相比内置 eMMC 内存, SD 卡可以提供更大的容量,其成本更有效。

ED-CM4NANO 提供报警蜂鸣器,电池供电的实时时钟,支持具有POE功能的千兆网口,兼容官方Raspberry Pi PoE HAT。

ED-CM4NANO 的 CSI 和 DSI 接口完全兼容 Raspberry Pi4 Model B。CSI 支持 Raspberry Pi 官方 8M 和 12M Pixel HQ 摄像头,DSI 接口支持 Raspberry Pi 官方7寸触摸屏。标准 HDMI 接口可输出 4K 高清视频。

ED-CM4NANO 提供 2 路 USB3.0 和 1 路 USB2.0 接口,USB2.0 接口可用于更新系统镜像。

ED-CM4NANO 提供非常强大的扩展能力,支持标准的 Raspberry Pi 40 针扩展接口,用户可以通过板载 USB3.0 Type C 接口机械轻松扩展高速设备。

系统支持 +12V~18VDC 电源输入,40PIN 插座提供 5V@2A 和 3.3V@1.5A 输出电源,支持大功率扩展模块。

ED-CM4NANO PCB 的尺寸为 95*58mm,比树莓派4B 略大。出色的散热性能让整个系统能在高温环境下可靠工作。根据我们在实验室的实际测试,ED-CM4NANO 可以在 -25~60°C 的环境温度下可靠工作。

ED-CM4NANO 机箱底部预留了四个M2.5螺丝孔,方便用户将 ED-CM4NANO 安装在其他设备上。 ED-CM4NANO 还支持 DIN 导轨安装。

特性

处理能力

Broadcom BCM2711 4 核 Cortex A72 1.5GHz (ARM v8) 64 位 CPU

支持 H.265(HEVC)(最高 4Kp60 解码),H.264(最高 1080p60 解码,1080p30 编码)

OpenGL ES 3.0 图形支持

内存 1GB/2GB/4GB/8GB LPDDR4-3200 SDRAM 可选

8GB/16GB/32GB eMMC 可选

摄像头和显示器

1 个 CSI 接口,支持树莓派官方 5M & 8M 像素摄像头模组

1 个 HDMI 接口

1 个 DSI 接口,支持树莓派官方显示

有线接口

10/100M/1000 以太网,支持 PoE 供电(需要官方 PoE HAT)

2 个 USB3.0(外置)

1 个 USB3.0(内置)

1 个 USB2.0

无线通信

2.4G/5.8G WiFi 兼容 IEEE 802.11 b/g/n/ac 标准

蓝牙 5.0 BLE

WiFi/BLE 外置天线和 PCB 天线可选

存储

microSD 卡座(用于扩展用户数据存储)

可扩展接口

Raspberry Pi 标准 40 针连接器

Raspberry Pi 标准 4 针 POE 连接器

其他

带备用电池的 RTC

红色 LED 电源指示灯

绿色 LED 状态指示

系统重置按钮

蜂鸣器

电源

12~18V DC 电压范围输入

5.5/2.5mm DC Jack 或 Phoenix 端子连接器可选

产品型号的命名规则如图。

FAQ

Q: 我可以从 CM4 NANO 的 SD 卡启动系统吗?

A: 不能。CM4 NANO 是为工业应用而设计的,为了保证系统的可靠性,CM4 NANO 必须使用带有 eMMC 内存的 CM4。系统只能从 eMMC 启动,SD 卡用于数据存储。

Q:CM4 NANO 上 40PIN 引脚有没有被占用?

A:CM4 NANO 的以下功能占用了 40PIN 引脚:

蜂鸣器占用 GPIO6,如果不需要,可以去掉电阻 R39,将 GPIO6 与蜂鸣器电路断开。

SD 卡模块占用 GPIO22、23、24、25、26、27。如果您不需要使用它,请不要插入 SD 卡。

购买

复制下方链接,在浏览器中打开即可下单:

http://link.nxez.com/buy/ed-cm4nano

介绍视频

树莓派4 UART 多串口配置通信

相比树莓派零、1、2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置参考。

注意,目前搜到的大多数描述树莓派 4 串口的文章,大多数开头都是禁用下蓝牙,这个做法针对树莓派0-3 是必须的,因为本身串口不够用,但对树莓派 4 来说并不需要,因为有额外 4 个串口可以利用,默认配置好的两串口一个用于蓝牙(UART0)另一个是 miniUART 可以保留设置。此方面的文章大多都是一个流程,原因是参考的最初版本是树莓派 3 的设置;树莓派 4 的额外串口设置在树莓派论坛中可以看到相关的介绍,外面的文章不太多。

UART 配置

1. 展示所有串口命令

$ dtoverlay -a | grep uart

展示 pi4 中所有串口

pi@raspberrypi:~ $ dtoverlay -a | grep uart midi-uart0 midi-uart1 miniuart-bt uart0 uart1 uart2 uart3 uart4 uart5

2. 查看特定串口信息

$ dtoverlay -h uart2

查看 UART2 的配置信息等:

pi@raspberrypi:~ $ dtoverlay -h uart2 Name: uart2 Info: Enable uart 2 on GPIOs 0-3 Usage: dtoverlay=uart2, Params: ctsrts Enable CTS/RTS on GPIOs 2-3 (default off)

相关信息会展现 GPIOs 与新的 UART 串口的分配:0-3 对应 UART2, 4-7 对应 UART3,8-11 对应 UART 4,以及 12-15 对应 GUIO 5

关于 4 个针脚中后两位对应的 CTS/RTS,可参考:

https://blog.csdn.net/zeroboundary/article/details/8966586

3. 配置开启串口 UART2-5

执行编辑 config.txt 命令:

sudo nano /boot/config.txt

在文件结尾添加如下:

dtoverlay=uart2 dtoverlay=uart3 dtoverlay=uart4 dtoverlay=uart5

保存(Write Out)并退出(Exit)

重启后查看是否生效:

$ ls /dev/ttyAMA*

结果显示如下:

pi@raspberrypi:~ $ ls /dev/ttyAMA* /dev/ttyAMA0 /dev/ttyAMA1 /dev/ttyAMA2 /dev/ttyAMA3 /dev/ttyAMA4

各 UART 串口与 GPIO 对应关系:

GPIO14 = TXD0 -> ttyAMA0 GPIO0 = TXD2 -> ttyAMA1 GPIO4 = TXD3 -> ttyAMA2 GPIO8 = TXD4 -> ttyAMA3 GPIO12 = TXD5 -> ttyAMA4 GPIO15 = RXD0 -> ttyAMA0 GPIO1 = RXD2 -> ttyAMA1 GPIO5 = RXD3 -> ttyAMA2 GPIO9 = RXD4 -> ttyAMA3 GPIO13 = RXD5 -> ttyAMA4

4. 测试

4.1 串口自发自收测试

现在我们先测试 UART2 是否启用成功,比较简单的测试方式是将其 TXD 和 RXD 相连,自发自收。

根据上方对应关系,UART2 对应 TXD2 和 RXD2,对应 GPIO0 和 GPIO1,对应 ttyAMA1

注:UART0 对应的 ttyAMA0,UART1 对应的 ttyS0,UART2 到 UART5 对应的 ttyAMA1 到 ttyAMA4。

找到对应的 GPIO0 和 GPIO1 针脚连起来:

在树莓派端命令行进入 Python3 环境,通过如下模块和命令自发自收:

pi@raspberrypi:~ $ python3 Python 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> import serial >>> ted = serial.Serial(port=”/dev/ttyAMA1″, baudrate=9600) >>> ted.write(“Hello World”.encode(“gbk”)) 11 >>> ted.read(11) b’Hello World’ >>>

同理,我们可以继续用跳线帽将 GPIO4 和 5 相连测试 UART3;GPIO8 和 9 相连测试 UART4; GPIO12 和 13 相连测试 UART5。

pi@raspberrypi:~ $ python3 Python 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> import serial >>> ted = serial.Serial(port=”/dev/ttyAMA1″, baudrate=9600) >>> ted.write(“Hello World”.encode(“gbk”)) 11 >>> ted.read(11) b’Hello World’ >>> ted3 = serial.Serial(port=”/dev/ttyAMA2″, baudrate=9600) >>> ted3.write(“Hello No.3”.encode(“gbk”)) 10 >>> ted3.read(10) b’Hello No.3′ >>> ted4 = serial.Serial(port=”/dev/ttyAMA3″, baudrate=9600) >>> ted4.write(“Hello No.4”.encode(“gbk”)) 10 >>> ted4.read(10) b’Hello No.4′ >>> ted5 = serial.Serial(port=”/dev/ttyAMA4″, baudrate=9600) >>> ted5.write(“Hello No.5”.encode(“gbk”)) 10 >>> ted5.read(10) b’Hello No.5′ >>>

4.2 串口间通信测试

接下来测试 UART2 和 UART3 间的通信,将 TXD2 连接 RXD3 即 GPIO0 与 GPIO5 相连;将 TXD3 与 RXD2 连接即 GPIO4 与 GPIO1 相连。

GPIO0 = TXD2 -> ttyAMA1 GPIO4 = TXD3 -> ttyAMA2 GPIO1 = RXD2 -> ttyAMA1 GPIO5 = RXD3 -> ttyAMA2

pi@raspberrypi:~ $ python3 Python 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> import serial >>> ted = serial.Serial(port=”/dev/ttyAMA1″, baudrate=9600) >>> ted3 = serial.Serial(port=”/dev/ttyAMA2″, baudrate=9600) >>> ted.write(“Msg from UART2…”.encode(“gbk”)) 17 >>> ted3.read(17) b’Msg from UART2…’ >>> ted3.write(“Msg from UART3…”.encode(“gbk”)) 17 >>> ted.read(17) b’Msg from UART3…’ >>>

OK 挺顺利,UART2 和 UART3 间通信正常。

参考

官方 UART 配置文档:

https://www.raspberrypi.org/documentation/configuration/uart.md

论坛关于多串口的命令与指引:

https://www.raspberrypi.org/forums/viewtopic.php?t=244827#p1493698

本文遵循CC 4.0 BY-SA版权协议,原文出处:

https://blog.csdn.net/weixin_40796925/article/details/107907991