bmp180 RPi и python в html

Тема в разделе "Raspberry Pi", создана пользователем art161ru, 28 авг 2019.

  1. art161ru

    art161ru Нуб

    Доброго времени суток!
    Бьюсь второй день, перечитал кучу статей по питону, малине и самому датчику, но все никак не могу победить. Датчик подключен, библиотека 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, а там ошибка на ошибке.
    [​IMG]

    При этом все эти пути " 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
     
    Последнее редактирование: 29 авг 2019
  2. parovoZZ

    parovoZZ Гуру

    Ну а в гите у автора не спросить?
     
  3. ZAZ-965

    ZAZ-965 Гуру

    Igor68 и arkadyf нравится это.
  4. art161ru

    art161ru Нуб

    не помогло, все в прежнем состоянии. а список i2c устройств я и до этих манипуляций мог смотреть без рута командой i2cdetect -y 1
     
  5. ZAZ-965

    ZAZ-965 Гуру

    @art161ru, apache у вас стартует, скорее всего, от www-data. Добавьте пользователя www-data в i2c группу
    Код (Bash):
    sudo usermod -aG i2c www-data
     
    Igor68 нравится это.
  6. art161ru

    art161ru Нуб

    без изменений, уже подумываю найти способ писать все это sql таблицу и строить из нее график на странице, только вот никогда не работал с БД и уж тем более БД + web
     
  7. art161ru

    art161ru Нуб

    вообщем вылечилось само собой все и похоже что всего-то надо было поставить libboost-python-dev.
    Пока ковырялся с NRF24 нужно было доставить его, у о чудо заработало и CGI :)
     
  8. ZAZ-965

    ZAZ-965 Гуру

    Чтобы применить новые политики нужно было выйти из текущего сеанса и вновь залогиниться.
     
    Igor68 нравится это.
  9. Igor68

    Igor68 Гуру

    Ваша страница на PHP?
    Если так, то через php запускается что угодно. Но как я понял у Вас CGI, там так же. Только php наверное удобнее, потому как конкретно не привязана к пути и может быть размещена в любой директории доступной web-серверу. И если надо можно применить sqlite.
    Интересно то, что в php запущенный скрипт будет продолжать работать и после закрытия этой страницы. Будь это bash, phyton или даже исполняемый бинарный файл и т.п. на всё время пока web-сервер в работе. Работать будут от имени пользователя web-сервера.

    https://www.php.net/manual/ru/book.exec.php
     
  10. art161ru

    art161ru Нуб

    я перезагружал полностью систему
    да я думал над php, но не хочется систему нагружать, сейчас на малине и так очень много сервисов работает и еще доделываю метеостанцию. Идеальный вариант для меня это в фоне работающий питон который пишет все значения в БД, а на web странице потом согласно таблице БД строить график что-то типа такого:

    [​IMG]
     
  11. Igor68

    Igor68 Гуру

    Ну так пусть ваш CGI скрипт запустит Ваш скрипт. Как в php знаю - страница некая для старта/рестарта/останова запускает скрипт и более не используется. А другая рабочая страница будет иметь доступ к данным. Сам я лично питон отношу к совсем ненужным средствам. Всё запускаю средствами php скрипты на bash, который запускает бинарники. Среди которых сбор данных с другого сервера, который по ModbusRTU читает данные с оборудования, так же сервер для раздачи данных клиентам по сети ну и формирование данных для отображения на веб странице. А этот запущенный bash скрипт продолжает работу контролируя работу всего остального. И по мере каких-то нарушений перезапускает те или иные элементы общей системы. Вы насколько понял хотите что-бы скрипт продолжал работу и после посещения страницы. Вот и я о том. А php в работе только в моменты посещения страниц.