国外课栈 - 跨学科知识视角栈

Raspberry Pi 和 Python 串口读取数字万用表数据

 二维码 11
文章附图

硬件

实现方法

设置 Raspberry Pi

需求

  • 一张空的 SD 卡(最小 4Gb)

  • 用于将 Raspberry Pi 连接到显示器的 HDMI 转 DVI 转换器

  • 一个 USB 键盘

  • 一个微型 USB 电源适配器

  • USB 鼠标一个(可选)

准备 SD 卡为 Raspberry Pi 编写操作系统:

  • 下载推荐的操作系统(Raspbian)

  • 解压下载的文件

  • 从以下位置下载 Win32DiskImager(或任何类似的软件)

  • 解压/提取文件

  • 将 SD 卡插入 PC 并运行 Win32diskimager 软件。 选择提取的 .img 映像文件和要写入映像的驱动器。 然后点击写按钮。

第一次启动树莓派

  • SD卡准备好后,插入树莓派,连接显示器和USB键盘。 现在,插入电源适配器。 LED 开始闪烁。 树莓派第一次启动,最终弹出一个 Raspi-config 窗口。

  • 更改所需的设置,如 expand_rootfs、configure_keyboard、change_pass 等。

  • 完成所有配置后,最后选择“完成”以重新启动树莓派。

  • 重启后,树莓派提示进行树莓派登录:

  • 输入默认登录“pi”和默认密码“raspberry”,然后按回车键。

  • 最后,输入 startx 启动 Raspbian 桌面

USB - 串口接口

万用表和Raspberry Pi 连接

对于任何两个设备之间的成功通信,必须有一种有助于良好通信的媒介。 Fluke 数字万用表带有一个 USB 串行接口作为数据传输介质。 因此,Raspberry Pi 和万用表之间的通信过程是使用 USB 串行接口进行的。 这两个设备之间的通信不仅仅通过将它们连接在一起来实现。 必须有一些东西来执行中介工作。 Pyserial 是 Python 的一个模块,它有助于用户和驱动程序之间的接口。 为了进行通信,用户必须发送一个命令,从数字万用表请求数据。 为响应此请求,万用表将其拥有的信息发送给用户。 实际上,Pyserial 位于用户空间和 USB 转 UART 驱动程序之间,有助于访问串行端口。 下图显示了这些设备之间的数据流是如何发生的。

Python 编程

测试和结果

执行 Python 脚本时,万用表会向 Raspberry Pi 发送一些值。 必须测试从万用表接收到的数据是否为真实值。 因此,来自万用表的数字数据与模拟设备一起进行了测试。

测试是在玻璃杯中放入一些冰块。 将温度计(酒精)和万用表的热电偶浸入冰中。 在两种仪器(温度计和数字万用表)中的温度读数都在 0 摄氏度左右后,执行 Python 脚本。 当 Python 程序正在运行并记录数据时,一些开水被倒入玻璃杯中。 由于高温,两台仪器的读数都开始上升。 由于酒精温度计是模拟设备,与数字万用表相比,酒精浓度上升缓慢。

测试可以通过其他测量来完成,如电阻、电压和万用表的其他功能。

分析温度计的读数和万用表的记录数据,发现水的最高温度约为 78.6 摄氏度。

源代码


阅读完整文档