Найти - Пользователи
Полная версия: Вывод полученной информации с COM порта на WEB страницу.
Начало » Центр помощи » Вывод полученной информации с COM порта на WEB страницу.
1 2
romario82
Здравствуйте!
У меня такой вопрос?
Я собрал на микроконтроллере цифровой термометр, и значение температуры передаю через 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

Помогите с реализацией.
JOHN_16
В чем проблема то? что у вас не получается конкретно?
romario82
Этот код, как я понимаю, должен выступать в роли скрипта.
Как правильно организовать взаимодействие этого кода с ВЕБ страницой.
JOHN_16
ну тут надо с обратной стороны идти:
у вас есть веб-сервер. Приходит на него запрос, тот передает ее cgi скрипту, который запрашивает по ком порту значение температуры, и отдает страницу серверу.

у вас сам скрипт работает?
romario82
Вот в организации обмена данными между WEB-сервером и cgi скриптом мне и нужна помощь. Сам я «потихоньку» изучаю PYTHON, но чтоб углубится, катастрофически не хватает времени.
Поэтому очень буду признателен «наброскам кода», к примеру, как приведённую выше программу «превратить» в cgi скрипт, какой код должна содержать web страница для отправки запроса скрипту …

Спасибо JOHN_16 за проявленный интерес к моему вопросу!!!!!
FishHook
Для питона ИМХО более актуален WSGI, статьи в википедии достаточно для того, чтобы набросать простой WSGI-скрипт. Но если изобретать велосипед задачи не стоит, возьмите нормальную батарейку от маэстро Ранахера http://werkzeug.pocoo.org/ и жизнь Ваша станет легка и прекрасна.
JOHN_16
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()
romario82
Питону почему-то не нравится переменная 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()
Подключился к порту в python shel l
>>> import serial
>>> ser = serial.Serial('COM1', 9600)
>>> while 1:
...     ser.readline()
заработало сразу
JOHN_16
romario82
я не скажу за всех, скажу за себя, но моя точка зрения найдет положительный отклик у многих:
Если я задаю вам конкретный вопрос, то я ожидаю услышать ответ на заданный вопрос.
Вашу проблему, если бы вы шли мне на встречу, мы бы уже решили, а так вы тяните кота за понятно что. Если у вас такой метод обучения, то скажите , я просто перестану обращать внимания на этот топик.

romario82
в Ubuntu не получается подключиться к порту
догадываюсь почему, потому что хозяин /dev/ttyUSB1 есть никто иной как root.dialout, а вы с обычной записью пользователя не являетесь ни тем ни другим.

romario82
выдаёт – синтаксическая ошибка.
код ошибки указывайте, и если там синтаксическая ошибка, то уж поверьте там именно она.

А теперь еще раз : что выдает на экран чтение с устройства?
alexbadaloff
romario82
Питону почему-то не нравится переменная s, выдаёт – синтаксическая ошибка

Более чем уверен, что вы юзаете python 3, а пример вам дали из python 2:
поменяйте:
print s
на:
print(s)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB