树莓派远程及文件传输:以呼吸参数测量及获取为例

2018-08-28 10:23:20 浏览数 (1)

一、所需设备

  1. 野生的树莓派一只
  2. 萌萌哒windows 10台式机一个
  3. 装有raspbian系统的胖胖的4G SD卡一张
  4. 名字有点长 的Micro HDMI USB充电线一条
  5. 输出5V = 2A充电头(装逼名称:变压器)一枚
  6. 另加一连串乱七八糟的硬件电路板导联线
  7. 一个被笔者落下的显示屏(可以直接使用台式机的显示屏)

二、设备图片

野生的树莓派

翻个个儿的野生的树莓派

萌萌哒windows 10台式机

肥肥的4G SD卡

身姿妖娆的Micro HDMI USB充电线

学名“变压器”的充电头

一堆不知名的硬件

我们的主角:气流感应器

三、树莓派知识储备

戳这里==> 树莓派菜鸟入门攻略

四、组装

完成图如下:

组装完成

从图中我们可以看到,我们主要做的工作就是:

  • 将Rj-45水晶头网线插到树莓派的以太网接口中
  • 将两块硬件电路板按照引脚的位置插到树莓派上
  • 接通树莓派的电源
  • 插上装有raspbian操作系统的SD卡

等待片刻,待我们看到指示灯如下图亮起来,我们的树莓派硬件层已经组装完成:

四盏指示灯(橙黄、闪绿、绿、红)全部亮起,说明我们的树莓派已组装完成

五、 树莓派网络配置

在组装完树莓派以后,我们需要让我们的树莓派编程“中央空调”,即:让其他电脑都可以通过远程/局域网来访问控制我们的树莓派我们的树莓派。

首先,我们需要给我们的树莓派接上显示屏,方便我们对树莓派进行网络参数配置。

raspberian系统GUI显示屏

然后,打开命令行,使用指令修改或获取我们树莓派的IP地址。

  • 打开命令行

raspberian命令行

raspberian命令行

  • 通过命令行,进入/etc/network文件夹

进入/etc/network文件夹

网络参数配置的文件夹——/etc/network文件夹

  • 对interfaces文件进行查看编辑

编辑interfaces文件(管理员身份)

interfases文件内容

因为我们通过rj-45接头的网线连接树莓派,所以我们修改宽带信息,即eth0参数下的ip地址等信息:

代码语言:javascript复制
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 172.17.64.197
network 255.255.255.0
gateway 172.17.64.1

上述代码为静态IP配置,其好处是:当树莓派固定在指定局域网中使用,我们无需每次使用树莓派都查看其IP地址信息;其坏处是:当网络变掉时,需要重新接上树莓派的HDMI视频接口连接上显示屏,然后通过USB连接鼠标键盘,在延时性超强的图形化界面下重新配置IP地址,笔者表示已经累死在插拔显示屏的路上。。。

下面,我们来看看动态IP配置的代码:

代码语言:javascript复制
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

好处是:适用于经常变化的网络环境下,只需要通过访问路由器的设备IP列表即可查看树莓派的IP地址;其坏处是:每次都要查看树莓派的IP地址。

最后,萌萌哒windows 10台式机登场,连接树莓派所在的局域网,使用ping命令验证网络配置是否成功。

其指令为:

代码语言:javascript复制
ping [ip地址]

如我们的IP地址为:

代码语言:javascript复制
172.17.64.197

我们只要输入一下代码即可:

代码语言:javascript复制
ping 172.17.64.197

若网络ping不通,我们需要检查网络问题,因该问题不属于本教程范围,大家可以查看网上相关资料解决。

六、 让程序跑起来

完成网络配置以后,我们就要开始实现远程访问并获取呼吸相关的数据了。

我们可以使用ssh命令与树莓派建立连接,ssh配置参考:

如何在Windows 10上启用SSH

点击此处下载openssh

ssh命令如下:

代码语言:javascript复制
ssh [用户名]@[IP地址或域名]

按下enter键,命令行会提示输入密码。

树莓派raspberian系统的用户及密码为:

代码语言:javascript复制
用户:pi
密码:raspberry

所以我们ssh远程操作指令如下:

代码语言:javascript复制
~$ ssh pi@172.17.64.197
pi@172.17.64.197's password: raspberry

远程连接上我们的树莓派后,我们运行我们的python文件来获取呼吸的数据:

代码语言:javascript复制
pi@raspberry ~ $ sudo python ./iHealth/iHealth-python/getBreaths_send.py

PS:因调试原因,我们将 getBreaths_send.py文件拷贝了一份并修改了其中的代码命名为zz_getBreaths_send.py,将其数据存入~/iHealth/iHealth-python/data-breath文件夹,产生数据文件的名称为:breath_年-月-日_时:分:秒.txt

在我们点击enter键前,我们将与树莓派连接的气流感应器靠近鼻孔,自然的呼气:

将气流感应器靠近鼻孔自然地呼吸

随着程序的运行以及我们自然的呼吸,我们可以看到命令行出现如下图所示的数据:

呼吸气流数据

其显示的格式如下:

代码语言:javascript复制
{'breath': [气流大小]} [当前采样点标号]

但是我们txt数据文件的数据存储格式为:

呼吸数据存储内容

七、 远程获取呼吸数据文件

若远程获取呼吸数据的文件,我们需要用到scp的命令,scp的命令格式如下:

代码语言:javascript复制
scp [用户名]@[IP地址]:[文件路径]

如我们需要获取树莓派的getBreath_send.py文件,我们需要使用如下指令代码:

代码语言:javascript复制
scp pi@172.17.64.197:~/iHealth/iHealth-python/data-breath/breath_2016-08-02_11:19:33.txt

:为转移字符,表示:

当然我们的windows电脑是无法直接使用scp命令的,我们可以点击下面链接,直接下载winscp软件: 点击下载winscp

PS: winscp分为命令行和GUI两种模式,其中GUI使用与命令行类似,只要知道树莓派的用户名密码IP地址即可连接。

到目前为止我们树莓派呼吸数据的提取教程结束了,希望可以给入门树莓派的同学们带来一些帮助。文章挺长的,感谢大家阅读!

0 人点赞