Raspberry Pi Weather Station

Welcome RaspberryPi Weather project github!

Raspberry Pi Server Instalation.

Changing directory to HOME.

Меняем рабочую директорию на домашнюю.

cd ~

Installing Adafruit_Python_DHT and development packages.

Ставим Adafruit_Python_DHT и пакеты разрабоитки.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git build-essential python3-dev python3-openssl
git clone git://github.com/adafruit/Adafruit_Python_DHT.git Adafruit_Python_DHT
cd Adafruit_Python_DHT/
sudo python3 setup.py install

Installing Postgresql 9.x.

Install if don’t have postgresql. You can use remote postgresql server.

Ставим postgsql сервер. Вы можете использовать свой postgresql сервер на другом сервере.

sudo apt-get install postgresql

Changing postgresql admin password to p0stgr3spass (or another).

Меняем пароль админа на p0stgr3spass или другой.

sudo -u postgres psql
postgres=> alter user postgres password 'p0stgr3spass';

Сreating user weather (or another) with password w3ath3rpass (or another).

Создаем пользователя weather (или пользователя с другим именем) с паролем w3ath3rpass (или другим паролем).

postgres=> create user weather with password 'w3ath3rpass';

Creating database weather (or another) for user weather (or another). Создаем базу * weather *(или с другим названием) для пользователя weather (или другого пользователя).

postgres=> create database weather owner weather;

Quit from psql console. Выходим из psql консоли.

postgres=> \q

Instaling psycopg2 - postgresql database driver and PIP.

Ставим psycopg2 - драйвер подключения к postgresql и PIP.

sudo apt-get install python3-psycopg2
sudo apt-get install python3-pip

Installing aiohttp python package for httpserver.

Ставим пакет aiohttp необходимый для http сервера

sudo pip3 install aiohttp

Installing Raspberry Pi Weather.

git clone https://github.com/h0tc0d3/rpi-weather.git

Connect your sensor to Raspberry Pi board.

Подключите ваш сенсор к плате Raspberry Pi

Sensor DHT22

Edit configuration file.

Редактируем файл конфигурации

cd rpi-weather/
nano main.cfg

Configuration file description.

Описание файла конфигурации.

[MAIN]
; Sensor type: 11 - DHT11, 22 - DHT22, 2302 - AM2302.
; Тип сенсора для снятия температуры и влажности. Возможные значения 11 - DHT11, 22 - DHT22, 2302 - AM2302.
sensor = 2302
; Pin number which connected sensor.
; Номер пина куда подключен сенсор.
pin = 4
; Time interval to poll sensor(in minutes). Low values have a greater number of records in database.
; Время опроса сенсора в минутах. Чем чаще тем больше записей будет в базе данных.
interval = 5
; Start from round interval(Max 60 minutes).
; (if interval=60 and start_time=00 then fist database update start from next hour 00 minutes)
; (if interval=5 and start_time=00 then fist database update start from next hour 00 minutes)
; (if interval=5 and start_time=15 then fist database update start from this or next hour in 00 or 15 or 30 or 45 minutes)
; (if interval=5 and start_time=5: 0 5 10 15 20 25 30 35 40 45 50 55
; Округление времени добавления значений в базу.
; Например мы хотим, чтобы значения записывались каждый час в 00 минут, тогда Interval = 60 и start_time = 0.
; Каждые 5 минут - interval=5 и start_time=5. Записи в базу будут добавляться в 0 5 10 15 20 25 30 35 40 45 50 55 минут.
; Если start_time=5  и interval = 1, то первая запись начнется в 0 5 10 15 20 25 30 35 40 45 50 55 минут, 
; но последущие записи будут добавляться каждую минуту. Например необходимо записывать показания каждый час,
; но например сервер не работал какое-то время, то добавление начнется с ровного времени.
; Например со следущего часа в 00 минут, а не например в 17:38
start_time = 5
; Web server host. 0.0.0.0 - listen on all ethernet interfaces.
; IP или хост на котором будет запущен веб сервер. 0.0.0.0 обозначает запускать на всех интерфейсах.
host = 0.0.0.0
; Web server Port
; Порт, который будет открывать веб сервер.
port = 8080
; debug mode - show extended logs
; Режим отладки. Если включен то будет выводиться более подробный лог.
debug = false
; Truncate database table after start python3 install.py(delete all data).
; Функция очистки таблицы показаний при запуске python3 install.py. 
; Бывает необходимо удалить все значения при отладке.
truncate = true
; Working directory.
; Рабочая директория.
home_dir = /home/pi/rpi-weather
; Directory where log files will be saved
; Директория куда будут сохраняться логи.
; Если директория не существует, то создается при запуске python3 install.py
log_dir = /home/pi/rpi-weather/logs
; server Pid file
; Файл c id процесса http сервера. Необходим для проверки запущен ли http сервер.
; Например если сервер упал, то перезапускаем сервер.
pid_file = /home/pi/rpi-weather/logs/server.pid

[DATABASE]
; Database type: pgsql - postgresql, mysql - not implemented!
; Тип базы данных: pgsql - postgresql, mysql - поддержка не реализована!
type = pgsql
; Database connection host.
; Адрес сервера баз данных.
host = localhost
; Database connection username.
; Имя пользователя для подключения к базе данных.
user = weather
; Database connection pass
; Пароль с которым авторизируется пользователь базы данных.
pass = m3t30pass
; Database connection name.
; Имя базы данных.
name = weather
; The name of the table where the data will be added
; Имя таблицы куда будут записываться показания.
table = DATA
[CHART]
; Chart Title Color
; Цвет заголовка чарта.
title_color = gray
; Chart Temperature Color
; Цвет графика температуры.
temperature_color = #284785
; Chart Humidity Color
; Цвет графика влажности
humidity_color = #EE1111
; Fahrenheit values
; Показывать значения градусов в Фаренгейтах

[CSV]
; Default days to output in csv file URL like: /weather.csv
; Количество дней по умолчанию, которое выводится в csv файле.
days = 3
; Maximum days to output in csv file. URL like: /weather.csv?days={days}
; Максимальное разрешенное количество дней, которое может быть отдано в CSV.
; Количество дней можно передать через ссылку вида /weather.csv?days={days}
; Где {days} количество дней, например 7. /weather.csv?days=7
max_days = 30
; CSV Time stamp format. For more info see https://www.postgresql.org/docs/9.4/static/datatype-datetime.html
; https://www.postgresql.org/docs/9.4/static/functions-formatting.html
; Формат времени в CSV файле, не рекомендуется менять, так как перестанет работать виджет и веб чарт.
timestamp_format = YYYY-MM-DD HH24:MI:SS
; Default Fahrenheit values for temperature. 
; Also you can get csv with fehrenheit values on URL: /weather.csv?days={days}&fahrenheit=true /weather.csv?fahrenheit=true
; Значения температуры по умолчанию будут в фаренгейтах. Так же вы всегда можете получить значения в фарегейтах,
; открыв ссылку вида /weather.csv?days={days}&fahrenheit=true /weather.csv?fahrenheit=true
fahrenheit = false

Starting installation. Script create database table and create logs direcory.

Запускаем установку. Скрипт создаст таблицу для показаний в базе данных, создаст директорию для логов

python3 install.py

Edit CRON Jobs.

Редактируем задания CRON.

crontab -e

Add line. Change the path to the files on your own!

Добавляем строку. Меняем пути к файлам на свои!

* * * * * /home/pi/rpi-weather/cron.sh >> /home/pi/rpi-weather/logs/cron.log 2>&1

Save and exit from editor. Сохраняем и выходим из редактора.

Success!

Wait few minutes and open in browser http://rpiserverip:8080/. rpiserverip change to your Raspberry Pi server ip adress. You can see chart. If you open http://rpiserverip:8080/weather.csv then see csv data.

Ждем пару минут и открываем http://rpiserverip:8080/. rpiserverip меняем на ip адрес своего сервера Rapberry Pi. Вы должны увидеть графики температуры и влажности. Если открыть http://rpiserverip:8080/weather.csv , то можно уведеть данные в csv формате.

Chart

Also you can install Rpi Weather Widget.

Так же вы можете установить виджет для рабочего стола.

https://github.com/h0tc0d3/RPiWeatherWidget

MainChart English

MainChart Russiam