Предупреждение. Не используйте Raspbian Stretch, на ней WebIOPi вообще не запускается. Найдите в Сети предыдущую версию. Все описанное относится к версии Raspbian Jessie.
Скачать Raspbian Jessie версия от 2016-05-27 архив ZIP 1.4 Gb
Raspbian Jessie и Stretch сейчас уже старые дистрибутивы, но вы их можете скачать по ссылке downloads.raspberrypi.org/raspbian/images/. Историю версий можно посмотреть по ссылке https://en.wikipedia.org/wiki/Raspberry_Pi_OS. При использовании старых дистрибутивов можно давать команду sudo apt update для обновления списка пакетов, но не давайте команду sudo apt upgrade для обновления пакетов - это может нарушить работу системы.
Как пропатчить и установить WebIOPi версии 0.7.1 описано в статье Монитор температуры и влажности на DHT11 / DHT22 и WebIOPi в Raspberry Pi. Здесь опишу, как на Raspberry Pi 3 подключить к уже имеющимся датчикам еще и датчик давления BMP180. Предусмотрено построение графика давления.
Подпаяйте выводы датчика к контактной гребенке, которая идет в комплекте, и установите датчик на макетную плату. Соберите схему:
Датчик BMP180 использует интерфейс I2C, поэтому в raspi-config необходимо включить его. Запустите raspi-config командой sudo raspi-config и перейдите Interfacing Options, затем I2C. На вопрос - сделать интерфейс доступным, выберите Да (Yes)
Подтвердите выбор - Ok и выйдите из программы - Finish. Проверить работу датчика можно программой на Python'е.
Установите утилиту wget командой sudo apt-get install wget. Скачайте и распакуйте архив командами
wget http://osoyoo.com/driver/Adafruit_Python_BMP.zip
unzip Adafruit_Python_BMP.zip
Перейдите в каталог Adafruit_Python_BMP и установите библиотеку BMP Python Library командами
cd Adafruit_Python_BMP
sudo python setup.py install
Между параметрами команды должен быть один пробел. Теперь перейдите в каталог examples и запустите скрипт теста датчика
cd examples
sudo python simpletest.py
Вы должны увидеть примерно следующее:
Я подключаюсь к Raspberry Pi 3 удаленно по локальной сети через Wi-Fi с компьютера Linux Mint, используя протокол ssh. Из Windows можно подключаться по ssh, используя программу PuTTY. В Linux работать по ssh удобнее, можно использовать команду scp для копирования файлов с/на Raspberry Pi 3. Также использую файловый менеджер mc (Midnight Commander). Это аналог FAR или Total Commander в Windows.
На Raspberry Pi 3 отключены монитор, клавиатура и мышь. Подается только питание и подключены датчики. Блок питания должен обеспечивать ток 2-2,5 А.
После проверки датчика можно посмотреть BMP180 в WebIOPi. Для этого отредактируйте файл config командой
sudo nano /etc/webiopi/config
В разделе [DEVICES] раскомментируйте или добавьте строку bmp = BMP085
Перезапустите WebIOPi командой sudo /etc/init.d/webiopi restart.
В браузере на одном из компьютеров локальной сети попробуйте посмотреть монитор датчиков, указав IP адрес Raspberry Pi и путь к Devices Monitor примерно так:
192.168.1.28:8000/app/devices-monitor
Возможна такая ошибка — ваш браузер вместо открытия страницы начинает поиск по этому адресу и выводит кучу сообщений о невозможности найти такой текст. Значит вам надо изменить настройки браузера. В настройках браузера отмените поиск по адресной строке. В Mozilla Firefox в разделе Поиск снимите галку "Использовать адресную строку для поиска и навигации". Теперь браузер должен открывать адрес, а не начинать поиск.
Значения температуры выводятся с точностью до десятых и даже сотых долей градуса, хотя погрешность показаний составляет полградуса в середине диапазона и до двух градусов по краям диапазона измерений. На картинке видно, что показания датчиков температуры в квартире находятся в пределах допуска.
Следующий шаг - построение графика атмосферного давления. По аналогии с другими графиками подготовьте файлы press.html, data_press.txt и отредактируйте index.html в каталоге /home/pi/webiopi-dht/examples/html. Отредактируйте script.py в каталоге /home/pi/webiopi-dht/examples/python.
Скачать файлы можно в каталоге файлов.
После редактирования файлов и перезапуска WebIOPi в браузере введите примерно следующее: 192.168.1.28:8000
Щелкните по картинке барометра и через пару секунд должен построиться график давления
Если при вводе цифрового адреса браузер вместо отображения страницы начинает поиск по этому адресу, то надо изменить настройки браузера.
Иногда при конфликте считывания показаний в файл данных записывается сбойное значение, например, давление 860 мм рт. столба. На графике это выглядит как пик или ломаная линия. Чтобы привести график к нормальному виду, удалите сбойное значение из файла data_press.txt. Это удобно делать во встроенном редакторе mcedit менеджера Midnight Commander. Запустите mc. Перейдите в каталог с файлом data_press.txt. Нажмите Ctrl+O, чтобы скрыть панели. Заметьте, что рабочий каталог остался тот же. Дайте команду mcedit data_press.txt. Нажмите Ctrl+End, чтобы перейти в конец файла. Нажимая Page Up, начинайте листать страницы файла, пока не найдете сбойное значение. Удалите эту строку и сохраните файл (F2). В окне подтверждения щелкните Сохранить. Внизу в строке меню щелкните Выход. Теперь график должен вернуться к нормальному виду.
Чтобы облегчить поиск сбойной строки, растяните график в месте сбоя. Определите момент сбоя, как показано на рисунке. Откройте файл данных в редакторе mcedit, найдите эту строку и удалите ее.
Встроенный редактор mcedit удобен и для удаления ненужных строк в файлах данных. Как описано выше, откройте в редакторе файл данных. Нажмите клавишу F3 (начало блока), потом стрелку вниз - выделится текущая строка. Нажимая клавишу Page Down, выделяйте строки целыми страницами. В нужном месте снова нажмите F3 (Конец блока). Теперь нажмите F8 и выделенный текст будет удален.
После редактирования файла html или txt не перезапускайте WebIOPi и не перезагружайте компьютер, просто обновите страницу в браузере.
Если вы пишите скрипт на Python'е сами, то обратите внимание на следующее замечание. Как известно, пробелы в Питоне определяют логику работы программы. Но на работу скрипта могут влиять и комментарии. Избегайте комментариев в конце строк после операторов. Также нежелательны закомментированные операторы. Лучше всего комментарии располагать кучно в начале программы. Не вставляйте пробелы "для красоты" в текст комментариев. Всё это может запутать Питон. В таких случаях скрипт не работает и в то же время никаких ошибок не выдается, так как явных багов в программе нет. После удаления комментариев в указанных местах скрипт начинает работать.
Иногда скрипт начинает работать ненадежно. Работает какое-то время, а потом останавливается. При написании скрипта для отступов используйте что-то одно — клавишу табуляции или только пробелы. Если вы будете использовать без разбора табуляцию и пробелы, то скрипт может перестать работать или его работа нарушится, так как разные редакторы используют под табуляцию разное число пробелов - 4, 8 и т. д. Это может запутать программу и скрипт не будет работать.
Использованные ресурсы
http://lock.3dn.ru/news/raspberry_pi_dlja_domashnej_avtomatizacii_grafiki_parametrov/2015-09-18-136
http://lock.3dn.ru/news/raspberry_pi_dlja_domashnej_avtomatizacii_podkljuchenie_datchikov_po_shine_i2c/2015-09-02-133
http://osoyoo.com/2016/09/30/using-raspberry-pi-to-drive-bmp180/
http://ksm.khnu.km.ua/blog/index/12
|