Raspberry Pi温度记录仪MkII

3

继我之后 使用Raspberry Pi将基本温度记录到Internet 文章我决定升级我的日志记录设备。巧合的是,亚瑟·阿玛拉(Arthur Amarra)为“retroScreen”HAT提供了诺基亚5110屏幕,i2c标头和四个开关。这正是我所需要的。

因此,这里是基于Raspberry Pi A +型的温度和压力记录器的略微修改,它提供:

  • 温度和压力记录
  • 84×48 液晶屏 屏幕
  • 3个按钮
  • 5种显示模式
  • 背光灯开关

硬件

该设备包括:

临时记录器Mk2

传感器

BMP180传感器在 BMP180 I2C数字气压传感器 文章。该传感器体积小,价格便宜,可提供温度和压力。 retroScreen在其PCB上提供了兼容的接头,因此’s a natural choice.

WiFi加密狗

在以前的版本中,我使用了 爱迪迈斯EW-7811UN WiFi加密狗,但是这次我决定使用PiHut品牌的产品。使用my设置同样容易 在Raspberry Pi上设置WiFi指南.

开关

以前,我添加了一个开关,以使设备正常关机。 retroScreen为四个开关提供了空间,因此我焊接了三个2针触觉开关。这是一个更整洁的解决方案,为我提供了更多供用户输入的选项。

开关将GPIO引脚接地,因此在Python脚本中将其拉高。按下开关时,它们已接地并拉至低电平。脚本使用“callbacks”在检测到这些下降沿时采取适当的措施。

  • 开关#1(GPIO 22)允许用户在5种可用显示模式之间循环。
  • 开关#2(GPIO 27)允许用户在一组对比度值之间循环,因此可以对屏幕进行微调。
  • 开关#3(GPIO 17)告诉脚本退出和/或关闭Pi。通过将AUTO_SHUTDOWN标志设置为1,Pi也可以根据需要关闭自身。

物语和物联网

要将数据记录到Internet,我使用Thingspeak服务。我会在 上一篇文章.

使用我的示例脚本 您将需要设置一个Thingspeak帐户,创建一个新频道并从API设置中获取“写入API密钥”。看到 官方文件 求助。

初步准备

这是我用来构建设备的步骤顺序:

  • 使用最新的Raspbian创建新的SD卡
  • 通过LXDE桌面配置的WiFi
  • 然“sudo apt-get update”
  • 然“sudo apt-get upgrade”
  • 使用以下方式启用了SPI 本指南 (including “py-spidev” and “python-dev”)
  • 使用以下方式启用i2c 本指南 (including “python-smbus”和“ i2c-tools”)

retroScreen安装

诺基亚屏幕需要再安装一些零碎的零件。我没有’不需要所有的RetroScreen示例都可以工作,因此我使用了比安装程序中描述的简化的安装过程。 retroScreen网站。显然,如果您想更详细地研究该板,则可以按照整个过程进行操作,并尝试这些示例。

git clone //github.com/adafruit/Adafruit_Nokia_LCD
cd Adafruit_诺基亚_LCD
sudo  蟒蛇  setup.py install

温度记录脚本

确保您位于主目录中:

cd ~

然后从我的BitBucket存储库中直接下载三个文件到Pi:

wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bmp180.py
wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/templogger2.py
wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/templogger2_cfg.py

该脚本还使用了两个字体文件(来自fonts2u.com),必须下载:

wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/5x7_practical.ttf
wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/F25_Bank_Printer_Bold.ttf

注意 :  在命令行上,您可以使用向上/向下箭头键循环显示先前的命令,然后只需重新键入文件名即可节省很多输入!

编辑配置文件并将您的Thingspeak API密钥添加到THINGSPEAKKEY参数。

nano templogger2_cfg.py

您可以使用[CTRL-X],[Y]和[ENTER]保存并退出Nano编辑器。

运行脚本

在运行主目录时“ls”命令您应该具有以下文件:

  • templogger2.py
  • templogger2_cfg.py
  • 5x7_practical.ttf
  • F25_Bank_Printer_Bold.ttf

您还应该有一个“Adafruit_Nokia_LCD” directory.

您可以使用以下命令运行记录器

sudo  蟒蛇  templogger2.py

您可以使用CTRL-C退出或按Switch#3停止脚本。如果AUTO_SHUTDOWN设置为1,则Pi将关闭。 20秒后,可以断开电源。

在启动时自动运行

为了避免手动启动脚本,您可以将其配置为在Pi启动时启动。在这一点上,我无法正常使用“autoboot”技术,而是使用systemd方法启动Python脚本。

我遵循了本教程: 如何使用systemd在启动时自动运行Python脚本

我的Unit文件templogger2.service看起来像这样:

Description=Templogger2 Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pi/templogger2.py > /home/pi/templogger2.log 2>&1
[Install]
WantedBy=multi-user.target

显示方式

按钮1允许您滚动浏览5种不同的显示模式。他们看起来像这样:

临时记录器显示模式 临时记录器显示模式 临时记录器显示模式 临时记录器显示模式 临时记录器显示模式

最终结果

设备启动并运行并配置了Thingspeak频道后,您可以产生以下输出:

温度和压力图

这些图表会随着新数据的到来实时更新。该通道还允许您以CSV,XML和Json格式下载数据。

以10分钟为间隔,每24小时为您提供144个数据点。您可以将图形设置为显示一定数量的数据点,以便进行调整以提供适当的数据分布。

我在示例中仅使用了两个数据流(温度和压力),但Thingspeak将总共接受八个数据流。

这是我的公众 RPiSpy Temp Logger通道.

替代字体

为了清楚地在屏幕上显示文本,我使用了两种字体:

5×7个实用常规 http://www.fonts2u.com/5×7-practical-regular.font
F25银行打印机粗体从 http://www.fonts2u.com/f25-bank-printer-bold.font

您可以使用其他字体,只要您调整Python的相应部分即可。有些工作比其他工作更好,并且有足够的实验空间。

 

分享。

3条留言

    • 该屏幕是retroScreen附加板的一部分,该附加板仅插入GPIO接头。因此,在这种情况下,屏幕易于安装。在某个时候,我将做一个直接连接5110屏幕的快速教程。

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.