Картинки из оригинальной статьи
В статье описывается о том, как обойти ошибки, которые могут возникнуть при реализации проекта метеостанции https://blog.avislab.com/raspberry-pi-meteo_ru/.
В проекте использовалась система Raspbian buster десктопная версия от 2020-05-27 на Raspberry Pi 3.
Вначале соберите схему по проекту автора:
Обновите в своей системе информацию о пакетах командой
sudo apt update
Затем в Меню -> Параметры -> Raspberry Pi Configuration запустите или в терминале дайте команду sudo raspi-config.
Активируйте интерфейс I2C, пройдя по пути Interfacing Options -> P5 I2C -> Yes -> Ok.
Для правильного отображения даты и времени установите свою часовую зону. Для этого пройдите по пути Localisation Options -> I2 Change Time Zone. Выберите часть света и затем свой или ближайший город. Я выбираю Asia -> Chita.
Нажмите Tab и выберите Finish.
Проверьте адрес BME280, подав в терминале команду
sudo i2cdetect -y 1
Если адрес отличается от 76, тогда вам придется в скриптах изменить адрес на свой.
В браузере откройте страницу https://www.raspberrypi-spy.co.uk/2016/07/using-bme280-i2c-temperature-pressure-sensor-in-python/ и скачайте скрипт командой
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bme280.py
Проверьте работу BME280, набрав в терминале команду
python bme280.py
Должны быть выведены показания температуры, давления и влажности.
Далее согласно оригиналу статьи установите базу данных sqlite3 и веб-сервер apache2 командами
sudo apt-get install sqlite3
sudo apt-get install apache2
Запустите веб-сервер командой
sudo service apache2 start
На компьютере локальной сети в браузере введите IP адрес Raspberry Pi и проверьте вывод веб-страницы Apache2
В установленной версии каталогом Document Root по умолчанию является /var/www/html.
Если в Windows вы пользовались файловым менеджером Total Commander или FAR, то можете установить файловый менеджер Midnight Commander командой
sudo apt install mc
В Midnight Commander можно быстро перемещаться по каталогам, просматривать и редактировать текстовые файлы. Для ввода команд в терминале можно скрыть панели, нажав Ctrl+o. Чтобы вернуть панели, снова нажмите Ctrl+o. Чтобы выйти из mc, в нижней строке меню щелкните по пункту 10 Quit.
Далее по проекту скачиваем файлы с github.com и создаем базу данных:
cd /home/pi
git clone https://github.com/avislab/weather.git
Если выдается сообщение о том, что команда git не найдена, тогда установите её командой
sudo apt install git
После скачивания командой git в домашней папке /home/pi/ появится папка weather. В случае затруднений можете скачать её в Каталоге файлов. Перейдите в этот каталог командой
cd /home/pi/weather
Далее выполните:
python ./install.py
В случае если вы скачали файлы с Каталога файлов, то могут быть проблемы в работе скачанных файлов. В этом случае установите права доступа на эти файлы (владелец pi, права 777) командами:
sudo chown -R pi:pi /home/pi/weather /
sudo chmod -R 777 /home/pi/weather /
Теперь требуется отредактировать скрипт командой
nano /home/pi/weather/weather.py
Найдите в тексте скрипта строки home_dir, www_dir и отредактируйте следующим образом:
home_dir = "/home/pi/weather/"
www_dir = "/var/www/html/weather/"
Заметьте, что после /var/www/ перед /weather надо вставить html.
Выйдите из редактора, нажав Ctrl+X, подтвердите сохранение буфера, нажав y и затем нажмите Enter для перезаписи файла.
Для облегчения запуска скрипта установите права доступа на каталог /var/www/:
sudo chown -R pi:pi /var/www/
sudo chmod -R 777 /var/www/
Создайте папку weather:
mkdir /var/www/html/weather
и в ней пустой файл index.htm:
touch /var/www/html/weather/index.htm
Если вы установили mc, то запустите его и убедитесь в том, что каталог и файл созданы.
Попробуйте тестовый запуск скрипта:
python /home/pi/weather/weather.py
Если скрипт не запускается, то дайте ему права на выполнение:
sudo chmod +x /home/pi/weather/weather.py
Скрипт отработает с ошибками, но файл index.htm будет записан.
Повторите ещё пару раз запуск скрипта. Затем на компьютере локальной сети в адресной строке браузера введите http://IP-адрес_Raspberry_Pi/weather/. Скорее всего вы увидите показания и графики в виде наклонных линий. Постепенно по мере заполнения базы данными графики превратятся в более-менее плавные кривые.
При запуске скрипта показания записываются в базу данных. Для записи показаний каждые 15 минут отредактируйте crontab командой
sudo crontab -e
Обязательно в начале команды вставьте sudo, иначе скрипт запускаться не будет.
После строк комментариев добавьте строку
*/15 * * * * /home/pi/weather/weather.py
и в конце строки нажмите Enter. Сохраните файл.
Скрипт должен отрабатывать без ошибок, иначе через crontab он запускаться не будет. Отредактируйте скрипт weather.py командой
nano /home/pi/weather/weather.py
Переместитесь в самый конец скрипта и закомментируйте две последние строчки со ссылками на сайт автора. Сохраните изменения. После этого скрипт должен работать без ошибок.
Подождите 15-20 минут и снова в браузере откройте или обновите веб-страницу проекта. Должны измениться показания, время и графики.
Для редактирования базы данных и удаления ошибочных записей удобно использовать DB Browser for SQLite. Скачать можно с сайта разработчика sqlitebrowser.org/dl/. Доступна версия для Windows и Linux.
Используя эту программу, я удалил сбойную первую запись, в которой было записано значение атмосферного давления 431.34 мм ртутного столба. Сбойные значения искажают графики, поэтому их надо своевременно удалять, чтобы привести графики к нормальному виду.
Как удалить ошибочную запись из базы данных описано в статье Система домашней автоматизации WebHomePi - первые шаги (в самом конце статьи).
Можно отключить монитор, клавиатуру, установить Raspberry Pi в укромном месте и подключаться к микрокомпьютеру по ssh. Как это сделать, читайте в статье Как подключиться к Raspberry Pi из Windows по SSH. Подключение по ssh из Linux описано в статье Ubuntu и Armbian — установка LAMP и WordPress.
Для сведения: все настройки проекта произведены по ssh. Подключался к Raspberry Pi по локальной сети с компьютера с системой Linux Mint 19.1.
На данный момент у вас доступ к веб-странице проекта только из локальной сети. Как настроить доступ к проекту из интернета, читайте в статье Как получить доступ по интернету к датчикам в квартире. В роутере вашей локальной сети для Raspberry Pi надо будет настроить статический IP адрес и пробросить для него порт 80 (port forwarding). Также понадобится зарегистрировать домен на динамическом DNS сервисе.
P.S. Если вам по какой-либо причине не удалось скачать файлы с github.com, то можете скачать с Яндекс.диска. Распакуйте скачанный архив командой unzip weather-master.zip, у вас появится папка weather-master. Создайте в домашнем каталоге папку weather и скопируйте содержимое папки weather-master в папку weather. Всё это удобно делать в Midnight Commander (mc).
Источник: https://blog.avislab.com/raspberry-pi-meteo_ru/ |