继我之后 使用Raspberry Pi将基本温度记录到Internet 文章我决定升级我的日志记录设备。巧合的是,亚瑟·阿玛拉(Arthur Amarra)为“retroScreen”HAT提供了诺基亚5110屏幕,i2c标头和四个开关。这正是我所需要的。
因此,这里是基于Raspberry Pi A +型的温度和压力记录器的略微修改,它提供:
- 温度和压力记录
- 84×48 液晶屏 屏幕
- 3个按钮
- 5种显示模式
- 背光灯开关
硬件
该设备包括:
- Raspberry Pi A +型
- 基本情况
- retroScreen由Arthur Amarra
- BMP180传感器模块
- 3个触觉开关
- PiHut WiFi加密狗
传感器
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条留言
我可以’似乎无法弄清楚如何将显示器实际连接到RPi。您能指出我有关连接的详细信息吗?
该屏幕是retroScreen附加板的一部分,该附加板仅插入GPIO接头。因此,在这种情况下,屏幕易于安装。在某个时候,我将做一个直接连接5110屏幕的快速教程。
很棒!
谢谢!