RaspberriPi 温度/气候记录仪

ChangeCode
转载
发布时间: 2025-06-10 17:25:11 | 阅读数 0收藏数 0评论数 0
封面
高耐受性温度计和气候记录仪,适用于您的阁楼或其他户外建筑。
1

为Raspberry Pi硬盘进行刷机/安装所需软件

下载 "RASPBIAN JESSIE LITE"

创建新的硬盘用于DashboardPI

通过USB适配器将microSD卡插入电脑,并使用dd命令创建磁盘镜像

使用df -h命令找到插入的microSD卡,卸载它并使用磁盘复制dd命令创建磁盘镜像

$ df -h
/dev/sdb1 7.4G 32K 7.4G 1% /media/XXX/1234-5678

$ umount /dev/sdb1

注意:确保命令完全准确,错误的命令可能会损坏其他磁盘

输入=RASPBIAN JESSIE LITE镜像文件的位置 输出=您的microSD卡的位置

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb

(注意:在此示例中是/dev/sdb,而/dev/sdb1是microSD卡上现有的工厂分区)

设置您的Raspberry Pi

将新创建的microSD卡插入Raspberry Pi,并通过连接到HDMI端口的显示器供电开机

登录

用户名: pi 密码: raspberry

为了安全起见更改您的账户密码

sudo passwd pi

启用Raspberry Pi高级选项

sudo raspi-config

选择: 1 扩展文件系统

9 高级选项

A2 主机名 更改为 "AtticTemp"

A4 SSH 启用SSH服务器

A7 I2C 启用i2c接口

启用英语/美国键盘

sudo nano /etc/default/keyboard

修改以下行: XKBLAYOUT="us"

为了使键盘布局更改/文件系统调整生效重启Pi

$ sudo shutdown -r now

自动连接到您的WiFi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

添加以下行以让您的Raspberry Pi自动连接到家庭WiFi(假设无线网络名为"linksys"为例)

network={
ssid="linksys"
psk="WIRELESS PASSWORD HERE"
}

为连接到WiFi网络重启Pi

$ sudo shutdown -r now

现在,您的Pi终于连接到了本地网络,您可以通过SSH远程登录。但首先需要获取当前分配给它的IP地址。

在上述命令输出中查找 "inet addr: 192.168.XXX.XXX" 获取Pi的IP地址

前往另一台机器并通过ssh登录到您的Raspberry Pi

$ ssh pi@192.168.XXX.XXX

开始安装所需的软件包

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install vim git python-requests python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev

更新本地时区设置

$ sudo dpkg-reconfigure tzdata

使用界面选择您的时区

设置简单的目录l命令 [可选]

$ vi ~/.bashrc

添加以下行:

alias l='ls -lh'
$ source ~/.bashrc

修复VIM默认语法高亮[可选]

$ sudo vi /etc/vim/vimrc

取消注释以下行:

syntax on
2

克隆项目/安装软件驱动程序

克隆项目存储库

$ cd ~
$ git clone https://github.com/khinds10/AtticTemp.git

DHT22 安装

$ cd ~
$ git clone https://github.com/adafruit/Adafruit_Python_DHT.g...
$ cd Adafruit_Python_DHT/
$ sudo python setup.py install
$ sudo python ez_setup.py
$ cd 示例/
$ vi simpletest.py

更改以下行:

传感器 = Adafruit_DHT。DHT22

注释掉该行

pin = 'P8_11'

取消注释该行并将引脚号更改为 16

pin = 18

运行测试

Python simpletest.py

您应该会在命令行上看到 Temp 和 Humidity 的度量读数。

SSD1306安装

将 drivers/SSD1306.zip 解压到项目文件夹

安装驱动程序

$ cd ssd1306/
$ sudo python setup.py install

确认你的器件已注册,通常在 i2c 总线上为 \0x3c

$ sudo i2cdetect -y 1


0 1 2 3 4 5 6 7 8 9 a b c d e f

00: -- -- -- -- -- -- -- -- -- -- -- -- --

10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --


运行演示以确认您的显示器处于正常工作状态

$ cd examples/ $ python demo.py


3

所需用品

树莓派Zero

DHT22温湿度传感器

0.96英寸 I2C/IIC/SPI串行 128x64 OLED LCD屏

2.4英寸 400x240 16:9比例 串行:UART/I2C/SPI TFT触摸屏显示器

4

设备接线

SSD1306显示

GND -> GND

数据 -> SDA

CLK -> SCL

VCC -> 3V

Digole 显示器

GND -> GND

数据 -> SDA

CLK -> SCL

VCC -> 3V

DHT22 恒湿器

VCC -> 5V

GND -> GND

数据 - > GPIO 18 / 引脚 12

5

构建设备

将有机玻璃切割成适合设备前端的尺寸,位于3D打印框架下方。

使用螺丝通过3D打印框架来固定玻璃。

6

构建设备(二)

使用热熔胶将组件粘贴到前面板上。

将电线单元连接在内部。

安装背部面板,这样就大功告成了。

7

在 Settings.py 配置文件中配置应用程序以正确运行

找到settings.py文件,并根据您的实际设置进行调整。

用于获取本地天气信息的forecast.io API密钥

weatherAPIURL = 'https://api.forecast.io/forecast/'

weatherAPIKey = '您在FORECAST.IO的API密钥'

自己选择需不需要运行远程温度/湿度记录器

deviceLoggerAPI = 'mydevicelogger.com'

您可以通过谷歌搜索来获得家庭住址的经纬度

latitude = 41.4552578

longitude = -72.1665444

设置计划脚本

使用crontab -e命令编辑计划任务:

添加以下行,以每7分钟运行一次displays.py脚本:

*/7 * * * * python /home/pi/AtticTemp/displays.py

可选项:如果您希望每10分钟将温度记录器的数据上传到API,请使用crontab -e再次编辑计划任务。

添加以下行,以每10分钟运行一次temp-check.py脚本:

*/10 * * * * python /home/pi/EnvironmentClock/temp-check.py

这样,您就可以设置定期执行的任务来运行您的Python脚本,确保按照设定的时间间隔更新显示信息或上传温度数据。

8

可选:创建您自己的天气图像以在显示屏上呈现

上传您自己的128x128文件到以下URL:

访问 http://www.digole.com/tools/PicturetoC_Hex_converter.php

选择您要上传的图片文件,并添加希望它在屏幕上显示的尺寸(宽度/高度)

在“Used for”下拉菜单中选择“256 Color for Color OLED/LCD(1 byte/pixel)”

获取生成的十六进制输出。

将该十六进制输出添加到一个显示/构建头文件(.h文件)中,可以参考其他文件来确保语法正确。

在digole.c文件中包含新文件:#include "myimage.h"

在命令行钩子中添加对您的图像文件的新命令。注意:下面的命令表示在位置(10,10)绘制您的图像。您可以将其更改为不同的X,Y坐标,也可以根据新图像的实际大小更改128,128这些值。

} else if (strcmp(digoleCommand, "myimage") == 0) {
drawBitmap256(10, 10, 128, 128, &myimageVariableHere,0); // myimageVariableHere是在您的(.h)文件中定义的变量
}

现在重新构建(忽略错误),以使您的新图像能够使用以下命令渲染。

$ ./digole myimage

重新构建[包括]Digole显示驱动程序以应用您的更改:

$ cd display/build
$ gcc digole.c
$ mv a.out ../../digole
$ chmod +x ../../digole

这样,您就可以成功地将自己的图像文件添加到项目中,并通过命令行命令进行展示。请根据实际需要调整坐标和尺寸参数。

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载