Доброго времени суток! Бьюсь второй день, перечитал кучу статей по питону, малине и самому датчику, но все никак не могу победить. Датчик подключен, библиотека Adafruit_Python_BMP установлена и работает через терминал. Решил я все это дело вывести на html страницу, настроил cgi-bin в apache, создал скрипт и подключил. Код (Python): #!/usr/bin/python print('Content-type: text/html\r\n\r') import Adafruit_BMP.BMP085 as BMP085 # Imports the BMP library sensor = BMP085.BMP085() print 'Temp = {0:0.2f} *C'.format(sensor.read_temperature()) # Temperature in Celcius print 'Pressure = {0:0.1f} mm Hg'.format(sensor.read_pressure()/133.322) Код страницы: HTML: <html> <head></head> <body> <form action="./cgi-bin/test2.py" method="get"> <p>Click here: <button type="submit">Submit</button> </form> </body> </html> И вообщем-то ничего не вышло, при открытии test2.py в браузере ничего, после чего решил посмотреть отладочную информацию python в web, а там ошибка на ошибке. При этом все эти пути " file:///usr/lib/cgi-bin/build/bdist.linux-armv7l/egg/Adafruit_GPIO/I2C.py " и еще 5 я не могу ему предоставить, потому как их нет не в git-e ни после компиляции. git использую в этот https://github.com/adafruit/Adafruit_Python_BMP Может есть какие-то особые способы заставить работать python скрипты датчиков в html ? з.ы. змея до момента малины не учил, только осваиваю, но написал кучу кодов в С для AVR
@art161ru, у вас недостаточно прав на /dev/i2c-1. Пример установки прав - https://lexruee.ch/setting-i2c-permissions-for-non-root-users.html
не помогло, все в прежнем состоянии. а список i2c устройств я и до этих манипуляций мог смотреть без рута командой i2cdetect -y 1
@art161ru, apache у вас стартует, скорее всего, от www-data. Добавьте пользователя www-data в i2c группу Код (Bash): sudo usermod -aG i2c www-data
без изменений, уже подумываю найти способ писать все это sql таблицу и строить из нее график на странице, только вот никогда не работал с БД и уж тем более БД + web
вообщем вылечилось само собой все и похоже что всего-то надо было поставить libboost-python-dev. Пока ковырялся с NRF24 нужно было доставить его, у о чудо заработало и CGI
Ваша страница на PHP? Если так, то через php запускается что угодно. Но как я понял у Вас CGI, там так же. Только php наверное удобнее, потому как конкретно не привязана к пути и может быть размещена в любой директории доступной web-серверу. И если надо можно применить sqlite. Интересно то, что в php запущенный скрипт будет продолжать работать и после закрытия этой страницы. Будь это bash, phyton или даже исполняемый бинарный файл и т.п. на всё время пока web-сервер в работе. Работать будут от имени пользователя web-сервера. https://www.php.net/manual/ru/book.exec.php
я перезагружал полностью систему да я думал над php, но не хочется систему нагружать, сейчас на малине и так очень много сервисов работает и еще доделываю метеостанцию. Идеальный вариант для меня это в фоне работающий питон который пишет все значения в БД, а на web странице потом согласно таблице БД строить график что-то типа такого:
Ну так пусть ваш CGI скрипт запустит Ваш скрипт. Как в php знаю - страница некая для старта/рестарта/останова запускает скрипт и более не используется. А другая рабочая страница будет иметь доступ к данным. Сам я лично питон отношу к совсем ненужным средствам. Всё запускаю средствами php скрипты на bash, который запускает бинарники. Среди которых сбор данных с другого сервера, который по ModbusRTU читает данные с оборудования, так же сервер для раздачи данных клиентам по сети ну и формирование данных для отображения на веб странице. А этот запущенный bash скрипт продолжает работу контролируя работу всего остального. И по мере каких-то нарушений перезапускает те или иные элементы общей системы. Вы насколько понял хотите что-бы скрипт продолжал работу и после посещения страницы. Вот и я о том. А php в работе только в моменты посещения страниц.