Форум сайта python.su
2
Здравствуйте!
У меня такой вопрос?
Я собрал на микроконтроллере цифровой термометр, и значение температуры передаю через com порт на компьютер. Мне нужно удалённо контролировать Т в серверной. Я хочу выводить значение температуры на web страницу, которая размещена на самом сервере (установлен Apach, ОС Linux Ubuntu). Прогу для работы с com портом в инете нашёл:
import time import serial # configure the serial connections (the parameters differs on the device you are connecting to) ser = serial.Serial( port='/dev/ttyUSB1', baudrate=9600, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_TWO, bytesize=serial.SEVENBITS ) ser.open() ser.isOpen() print 'Enter your commands below.\r\nInsert "exit" to leave the application.' input=1 while 1 : # get keyboard input input = raw_input(">> ") # Python 3 users # input = input(">> ") if input == 'exit': ser.close() exit() else: # send the character to the device # (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device) ser.write(input + '\r\n') out = '' # let's wait one second before reading output (let's give device time to answer) time.sleep(1) while ser.inWaiting() > 0: out += ser.read(1) if out != '': print ">>" + out
Офлайн
221
В чем проблема то? что у вас не получается конкретно?
Офлайн
2
Этот код, как я понимаю, должен выступать в роли скрипта.
Как правильно организовать взаимодействие этого кода с ВЕБ страницой.
Офлайн
221
ну тут надо с обратной стороны идти:
у вас есть веб-сервер. Приходит на него запрос, тот передает ее cgi скрипту, который запрашивает по ком порту значение температуры, и отдает страницу серверу.
у вас сам скрипт работает?
Офлайн
2
Вот в организации обмена данными между WEB-сервером и cgi скриптом мне и нужна помощь. Сам я «потихоньку» изучаю PYTHON, но чтоб углубится, катастрофически не хватает времени.
Поэтому очень буду признателен «наброскам кода», к примеру, как приведённую выше программу «превратить» в cgi скрипт, какой код должна содержать web страница для отправки запроса скрипту …
Спасибо JOHN_16 за проявленный интерес к моему вопросу!!!!!
Офлайн
568
Для питона ИМХО более актуален WSGI, статьи в википедии достаточно для того, чтобы набросать простой WSGI-скрипт. Но если изобретать велосипед задачи не стоит, возьмите нормальную батарейку от маэстро Ранахера http://werkzeug.pocoo.org/ и жизнь Ваша станет легка и прекрасна.
Офлайн
221
romario82
Для начала бы неплохо понять работает ли железка так как надо, что выдаст вам этот код?
import time import serial # configure the serial connections (the parameters differs on the device you are connecting to) ser = serial.Serial( port='/dev/ttyUSB1', baudrate=9600, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_TWO, bytesize=serial.SEVENBITS, timeout=5 ) s=ser.read(1024) print s print repr(s) ser.close()
Офлайн
2
Питону почему-то не нравится переменная s, выдаёт – синтаксическая ошибка. Проверял работу в Винде т. к. в Ubuntu не получается подключиться к порту (внутренние проблемы в самой системе и питоне, разбираюсь)
import time import serial # configure the serial connections (the parameters differs on the device you are connecting to) ser = serial.Serial( port='COM1', baudrate=9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS ) s=ser.read(1024) print s print repr(s) ser.close()
>>> import serial >>> ser = serial.Serial('COM1', 9600) >>> while 1: ... ser.readline()
Офлайн
221
romario82
я не скажу за всех, скажу за себя, но моя точка зрения найдет положительный отклик у многих:
Если я задаю вам конкретный вопрос, то я ожидаю услышать ответ на заданный вопрос.
Вашу проблему, если бы вы шли мне на встречу, мы бы уже решили, а так вы тяните кота за понятно что. Если у вас такой метод обучения, то скажите , я просто перестану обращать внимания на этот топик.
romario82догадываюсь почему, потому что хозяин /dev/ttyUSB1 есть никто иной как root.dialout, а вы с обычной записью пользователя не являетесь ни тем ни другим.
в Ubuntu не получается подключиться к порту
romario82код ошибки указывайте, и если там синтаксическая ошибка, то уж поверьте там именно она.
выдаёт – синтаксическая ошибка.
Офлайн
16
romario82
Питону почему-то не нравится переменная s, выдаёт – синтаксическая ошибка
print s
print(s)
Отредактировано alexbadaloff (Апрель 23, 2013 10:16:42)
Офлайн