Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomhartley/AirPi
a Raspberry Pi weather station
https://github.com/tomhartley/AirPi
Last synced: 3 months ago
JSON representation
a Raspberry Pi weather station
- Host: GitHub
- URL: https://github.com/tomhartley/AirPi
- Owner: tomhartley
- Created: 2012-11-26T17:43:10.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2017-11-01T11:35:21.000Z (about 7 years ago)
- Last Synced: 2024-07-06T00:06:07.025Z (4 months ago)
- Language: Python
- Size: 113 KB
- Stars: 351
- Watchers: 55
- Forks: 139
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-conservation-tech - AirPi - A Raspberry Pi weather station and air quality monitor. (Hardware / United States)
README
AirPi
========A Raspberry Pi weather station and air quality monitor.
This is the code for the project located at http://airpi.es
Currently it is split into airpi.py, as well as multiple input and multiple output plugins. airpi.py collects data from each of the input plugins specified in sensors.cfg, and then passes the data provided by them to each output defined in outputs.cfg. The code for each sensor plugin is contained in the 'sensors' folder and the code for each output plugin in the 'outputs' folder.
Some of the files are based off code for the Raspberry Pi written by Adafruit: https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code
For installation instructions, see http://airpi.es/kit.php
## Installation
### Prerequisites
You will need to install the following dependencies:
`sudo apt-get install git-core python-dev python-pip python-smbus libxml2-dev libxslt1-dev python-lxml i2c-tools`
and
`sudo pip install rpi.gpio requests`
AirPi requires python-eeml. To install:
```
cd ~/git
git clone https://github.com/petervizi/python-eeml.git
cd python-eeml
sudo python setup.py install
```### i2c
To set up i2c, first add your user to the i2c group. For example, if your username is "pi":
`sudo adduser pi i2c`
Now, add the modules needed.
`sudo nano /etc/modules`
Add the following two lines to the end of the file:
```
i2c-bcm2708
i2c-dev
```Exit by pressing CTRL+X, followed by y to confirm you want to save, and ⏎ (enter) to confirm the filename.
Finally, unblacklist i2c by running the following command:
`sudo nano /etc/modprobe.d/raspi-blacklist.conf`
Add a `#` character at the beginning of the line `blacklist i2c-bcm2708`. Then exit in the same way as last time.
Now, reboot your Raspberry Pi:
`sudo reboot`
### Board Version
Let's check to see which board version you have. Run:
`sudo i2cdetect -y 0`
You should see this as the output:
```
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77
```If not, run:
`sudo i2cdetect -y 1`
and you should see the above. This tells you if your board is version 0 or 1. This is important for the next step.
### Get The AirPi Code
Clone this repo into your git directory (or wherever you want):
```
cd ~/git
git clone https://github.com/tomhartley/AirPi.git
cd AirPi
```### Configuring
Edit the settings file by running:
`nano sensors.cfg`
The start of the file should look like this:
```
[BMP085-temp]
filename=bmp085
enabled=on
measurement=temp
i2cbus = 1[BMP085-pres]
filename=bmp085
enabled=on
measurement=pres
mslp=on
i2cbus = 1
altitude=40
```If your board version is "0" change both instances of `i2cbus = 1` to `i2cbus = 1`
Press CTRL+X to exit the file, when prompted, press "y" to save the file.
If you want to push the data to Xively, edit the `outputs.cfg` file:
`nano outputs.cfg`
The start of the file should look like this:
```
[Print]
filename=print
enabled=on[Xively]
filename=xively
enabled=on
APIKey=xxxxxxxxxx
FeedID=xxxxxxxxxx
```If you have registered with https://xively.com - you can add your API Key and Feed ID here.
## Running
AirPi **must** be run as root.
`sudo python airpi.py`
If everything is working, you should see output similar to this:
```
Success: Loaded sensor plugin BMP085-temp
Success: Loaded sensor plugin BMP085-pres
Success: Loaded sensor plugin MCP3008
Success: Loaded sensor plugin DHT22
Success: Loaded sensor plugin LDR
Success: Loaded sensor plugin MiCS-2710
Success: Loaded sensor plugin MiCS-5525
Success: Loaded sensor plugin Mic
Success: Loaded output plugin Print
Success: Loaded output plugin XivelyTime: 2014-06-04 09:10:18.942625
Temperature: 30.2 C
Pressure: 992.55 hPa
Relative_Humidity: 35.9000015259 %
Light_Level: 3149.10025707 Ohms
Nitrogen_Dioxide: 9085.82089552 Ohms
Carbon_Monoxide: 389473.684211 Ohms
Volume: 338.709677419 mV
Uploaded successfully```