А для экрана покупать металлизированные коннекторы или достаточно посадить его на землю?NBVV, 02 Февр. 22, 07:39В общем-то все равно. Но обратите внимание, что заземлять экран нужно в одной точке (с одного конца). Если это, конечно, настоящая земля, а не ноль (зануление). Цеплять экран к нулю - в общем случае плохое решение. Если же нормальной, хорошей земли нет, то лучше вообще использовать витую пару без экрана. Витая пара и так неплохо компенсирует наводки. Тем более, что 1-Wire - довольно медленная шина.
Ненавязчивая автоматизация ректификационной установки
OldBean
Доцент
Красноярск
1K 1.4K

Отв.2380 02 Февр. 22, 14:12
NBVV
Специалист
Новосибирск
133 2
Отв.2381 02 Февр. 22, 14:31 (через 20 мин)
Земли в квартире нет. Может тогда соединить экран с двумя "земляными" проводами в витых парах?
OldBean
Доцент
Красноярск
1K 1.4K

Отв.2382 02 Февр. 22, 15:41
Может тогда соединить экран с двумя "земляными" проводами в витых парах?NBVV, 02 Февр. 22, 14:31Смысл витой пары в симметрии и постоянном шаге скрутки. В результате эдс от длинноволновой наводки, наводимая в одной "петельке" витой пары, компенсируется такой же эдс, но с обратным знаком, наводимой в следующей "петельке". Таким образом витая пара компенсирует длинноволновые наводки. Экран, подключенный так, как Вы говорите, работая как длинная антенна, будет "болтать" одну из линий каждой пары. При сильных наводках (например, при грозе) эта болтанка может оказаться существенной для логики. Или даже, не дай Бог!, фатальной...
NBVV
Специалист
Новосибирск
133 2
Отв.2383 04 Февр. 22, 03:53
Двигаюсь дальше)). Почему у меня нет рабочих переменных?
@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from lite import *
>>> print(hinfo())
Список устройств, обнаруженных на шине i2c и хабах:
U0 11_8_A1 Датчик RMS [0.3549, 0, 1]
w0 13_8_A3 PDM-контроллер [2000.0, 0, 2]
Z0 15_0_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z1 15_1_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z2 15_2_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z3 15_3_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z4 15_4_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z5 15_5_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z6 15_6_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z7 15_7_FF Нормально разомкнутый контакт [1.0, 0, 0]
H0 15_8_A5 Хаб 1-Wire
P0 77_8_55 Датчик давления BMP180 [0.00750061683, 0, 5]
>>> print(vinfo())
Датчики:
P0 766.9 мм.рт.ст.
U0 227.9 В
Контроллеры:
w0 0 Вт
>>> print(uinfo())
Рабочие пер-е:
>>>
И не желают работать горячие клавиши:
Режимы:
0 Мониторинг
>>> v
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'v' is not defined
>>> v:
File "<stdin>", line 1
v:
^
SyntaxError: invalid syntax
>>> i
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined
>>> i:
File "<stdin>", line 1
i:
^
SyntaxError: invalid syntax
@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3
Python 3.9.2 (default, Mar 12 2021, 04:06:34)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from lite import *
>>> print(hinfo())
Список устройств, обнаруженных на шине i2c и хабах:
U0 11_8_A1 Датчик RMS [0.3549, 0, 1]
w0 13_8_A3 PDM-контроллер [2000.0, 0, 2]
Z0 15_0_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z1 15_1_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z2 15_2_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z3 15_3_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z4 15_4_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z5 15_5_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z6 15_6_FF Нормально разомкнутый контакт [1.0, 0, 0]
Z7 15_7_FF Нормально разомкнутый контакт [1.0, 0, 0]
H0 15_8_A5 Хаб 1-Wire
P0 77_8_55 Датчик давления BMP180 [0.00750061683, 0, 5]
>>> print(vinfo())
Датчики:
P0 766.9 мм.рт.ст.
U0 227.9 В
Контроллеры:
w0 0 Вт
>>> print(uinfo())
Рабочие пер-е:
>>>
И не желают работать горячие клавиши:
Режимы:
0 Мониторинг
>>> v
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'v' is not defined
>>> v:
File "<stdin>", line 1
v:
^
SyntaxError: invalid syntax
>>> i
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined
>>> i:
File "<stdin>", line 1
i:
^
SyntaxError: invalid syntax
OldBean
Доцент
Красноярск
1K 1.4K

Отв.2384 04 Февр. 22, 05:31
Почему у меня нет рабочих переменных?NBVV, 04 Февр. 22, 03:53Потому что Вы их и не создавали.
Рабочие (пользовательские) переменные создаются либо в пользовательских скриптах, которые загружаются при запуске основной программы (main.py) и указываются как параметры в командной строке, либо в консоли питона, если вы работаете непосредственно с библиотекой lite. Примеры создания и использования пользовательских переменных в скриптах есть в файлах sr1.py и sr2.py. В консоли питона (и вообще в питоне) переменные создаются в операциях присваивания. Например, так: pi = 3.14. При этом создается вещественная переменная pi, значение которой будет 3.14.
В чистой же библиотеке lite, которую Вы импортировали, есть, полезные, переменные, которые связаны с подключенным оборудованием, которые система обнаружила. Эти переменные создаются автоматически при импорте библиотеки. В Вашем случае это объекты U0, w0, H0 и P0. У каждого из этих объектов (переменных) есть разные свойства, которые тоже являются переменными и имеют некие значения. Для доступа к этим переменным нужно использовать конструкцию "Имя объекта.имя свойства". Например, U0.v - это текущее значение RMS напряжения в сети, P0.v - значение атмосферного давления, w0.v - текущая мощность нагрева ТЭНа. "v" - это просто сокращение "value". Если, после импорта lite, Вы напишете в консоли P0.v и нажмете Enter, то питон напечатает Вам значение атмосферного давления.
NBVV
Специалист
Новосибирск
133 2
Отв.2385 04 Февр. 22, 05:46 (через 16 мин)
А горячие клавиши тоже заработают после запуска main (при условии, что я буду использовать Ваш sr1)?
Добавлено через 52мин.:
Пытаюсь запустить main. Если пишу как в руководстве - python3 main.py user.py, - то сначала ругается, затем выдает каждую секунду информацию функции info()(не останавливаясь):
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py user.py,
No module named 'user'
Адрес и порт TCP-сервера: ('localhost', 5238)
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/Desktop/Amrita/lite_0413/lite.py", line 1526, in server_thread
server.bind(server_addr)
OSError: [Errno 98] Address already in use
Датчики: Время: Горячие клавиши:
P0 766.9 мм.рт.ст. Общее 0:00:00:01 q: Завершение работы
Q0 0 мл Режима 0:00:00:01 h: Показать обнаруженное оборудование
U0 224.7 В
Рабочие пер-е:
Контроллеры:
q0 0 мл/час
s0 0 °
w0 0 Вт
Режимы:
0 Мониторинг Клиентов: 0; запросов: 0
Датчики: Время: Горячие клавиши:
P0 766.9 мм.рт.ст. Общее 0:00:00:02 q: Завершение работы
Q0 0 мл Режима 0:00:00:02 h: Показать обнаруженное оборудование
U0 224.6 В
Рабочие пер-е:
Контроллеры:
q0 0 мл/час
s0 0 °
w0 0 Вт
Режимы:
0 Мониторинг Клиентов: 0; запросов: 0
Если пишу python3 main.py sr1.py ? то :
[6]+ Stopped python3 main.py user.py
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Traceback (most recent call last):
File "/home/pi/Desktop/Amrita/lite_0413/main.py", line 22, in <module>
exec('from ' + sp + ' import *')
File "<string>", line 1, in <module>
File "/home/pi/Desktop/Amrita/lite_0413/sr1.py", line 110
time.sleep(1)
IndentationError: unexpected indent
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $
Что нужно сделать, чтобы main запустился корректно?
Добавлено через 52мин.:
Пытаюсь запустить main. Если пишу как в руководстве - python3 main.py user.py, - то сначала ругается, затем выдает каждую секунду информацию функции info()(не останавливаясь):
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py user.py,
No module named 'user'
Адрес и порт TCP-сервера: ('localhost', 5238)
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/Desktop/Amrita/lite_0413/lite.py", line 1526, in server_thread
server.bind(server_addr)
OSError: [Errno 98] Address already in use
Датчики: Время: Горячие клавиши:
P0 766.9 мм.рт.ст. Общее 0:00:00:01 q: Завершение работы
Q0 0 мл Режима 0:00:00:01 h: Показать обнаруженное оборудование
U0 224.7 В
Рабочие пер-е:
Контроллеры:
q0 0 мл/час
s0 0 °
w0 0 Вт
Режимы:
0 Мониторинг Клиентов: 0; запросов: 0
Датчики: Время: Горячие клавиши:
P0 766.9 мм.рт.ст. Общее 0:00:00:02 q: Завершение работы
Q0 0 мл Режима 0:00:00:02 h: Показать обнаруженное оборудование
U0 224.6 В
Рабочие пер-е:
Контроллеры:
q0 0 мл/час
s0 0 °
w0 0 Вт
Режимы:
0 Мониторинг Клиентов: 0; запросов: 0
Если пишу python3 main.py sr1.py ? то :
[6]+ Stopped python3 main.py user.py
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Traceback (most recent call last):
File "/home/pi/Desktop/Amrita/lite_0413/main.py", line 22, in <module>
exec('from ' + sp + ' import *')
File "<string>", line 1, in <module>
File "/home/pi/Desktop/Amrita/lite_0413/sr1.py", line 110
time.sleep(1)
IndentationError: unexpected indent
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $
Что нужно сделать, чтобы main запустился корректно?
OldBean
Доцент
Красноярск
1K 1.4K

Отв.2386 04 Февр. 22, 07:42
А горячие клавиши тоже заработают после запуска main (при условии, что я буду использовать Ваш sr1)?NBVV, 04 Февр. 22, 05:46Конечно заработают, если нормально запустится main.py. Именно там они и обрабатываются.
Что нужно сделать, чтобы main запустился корректно?NBVV, 04 Февр. 22, 05:46Нужно скормить ему нормальный файл пользовательского скрипта. Имя "user.py" в примере - это имя файла пользовательского скрипта, в котором отражены специфические особенности решаемой задачи. Имя может быть любое. Допустимое в данной ОС. А у Вас нет файла (пользовательского скрипта) с таким именем. В этом случае система должна работать в одном режиме "Мониторинг". Странно, что у Вас экран не обновляется корректно. В выходные попробую промоделировать Вашу ситуацию. Тогда будет понятна причина этого мусора.
Если пишу python3 main.py sr1.py ? то :NBVV, 04 Февр. 22, 05:46Скорее всего, смешались табы с пробелами в одном блоке. Если сами не найдете - приложите архивы файлов main.py и sr1.py, которые Вы используете. В выходные поразбираемся вместе.
NBVV
Специалист
Новосибирск
133 2
Отв.2387 04 Февр. 22, 07:48 (через 7 мин)
main.py и sr1.py скачаны с этого сайта, изменений пока не вносил.
ekochnev
Магистр
Екатеринбург
214 55
Отв.2388 04 Февр. 22, 07:58 (через 10 мин)
Там в sr1.py явно двух пробелов не хватает в начале 109-й строки.
NBVV
Специалист
Новосибирск
133 2
Отв.2389 04 Февр. 22, 08:14 (через 17 мин)
Только в 109-й или со 109-й по 115-ю?
ekochnev
Магистр
Екатеринбург
214 55
Отв.2390 04 Февр. 22, 08:22 (через 8 мин)
NBVV, ну так возьмите и попробуйте исправить и посмотрите что получится!
У меня под рукой сейчас нет ни оборудования, ни подходящего компьютера.
При запуске у вас ругань идет на неправильный отступ в 110-й строке. Чисто визуально я вижу, что нужно либо добавить два пробела в начале 109-й строки, либо убрать два пробела в начале 110-й. Больше пока ничем помочь не могу. Сам я эти скрипты не использовал никогда.
У меня под рукой сейчас нет ни оборудования, ни подходящего компьютера.
При запуске у вас ругань идет на неправильный отступ в 110-й строке. Чисто визуально я вижу, что нужно либо добавить два пробела в начале 109-й строки, либо убрать два пробела в начале 110-й. Больше пока ничем помочь не могу. Сам я эти скрипты не использовал никогда.
NBVV
Специалист
Новосибирск
133 2
Отв.2391 04 Февр. 22, 08:26 (через 5 мин)
Дело в том, что строки со 109-й по 115-ю все без пробелов.
''' Добавим специфичные для данного процесса горячие клавиши
'''
hot_keys['g'] = 'Задать уставку по текущей температуре'
hot_keys['+'] = 'Увеличить уставку'
hot_keys['-'] = 'Уменьшить уставку'
hot_keys['s'] = 'Включить/выключить режим старт/стоп'
hot_keys['t'] = 'Включить/выключить контроль температуры ТСА'
hot_keys['w'] = 'Включить/выключить контроль температуры воды'
hot_keys['b'] = 'Посылать или нет важную информацию на чат'
#-------------------------------------------------------------------------------
''' Добавим специфичные для данного процесса горячие клавиши
'''
hot_keys['g'] = 'Задать уставку по текущей температуре'
hot_keys['+'] = 'Увеличить уставку'
hot_keys['-'] = 'Уменьшить уставку'
hot_keys['s'] = 'Включить/выключить режим старт/стоп'
hot_keys['t'] = 'Включить/выключить контроль температуры ТСА'
hot_keys['w'] = 'Включить/выключить контроль температуры воды'
hot_keys['b'] = 'Посылать или нет важную информацию на чат'
#-------------------------------------------------------------------------------
ekochnev
Магистр
Екатеринбург
214 55
Отв.2392 04 Февр. 22, 08:36 (через 10 мин)
Я не знаю, как Вы считает строки, но в приложенном выше вами же файле, то что Вы написали в предыдущем сообщении у меня находится в 209 строке, а я же пишу про 109-ю...
NBVV
Специалист
Новосибирск
133 2
Отв.2393 04 Февр. 22, 08:46 (через 11 мин)
Я прошу прощения, отображение сотен номеров строк не входит в экран, только десятки)), пролистывал строки вручную и промазал на сотню.
Добавлено через 6мин.:
Пробелы поставил.
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Traceback (most recent call last):
File "/home/pi/Desktop/Amrita/lite_0413/main.py", line 22, in <module>
exec('from ' + sp + ' import *')
File "<string>", line 1, in <module>
File "/home/pi/Desktop/Amrita/lite_0413/sr1.py", line 25, in <module>
url = 'https://api.telegram.org/bot' + token + '/'
NameError: name 'token' is not defined
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $
Добавлено через 6мин.:
Пробелы поставил.
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $ python3 main.py sr1.py
Traceback (most recent call last):
File "/home/pi/Desktop/Amrita/lite_0413/main.py", line 22, in <module>
exec('from ' + sp + ' import *')
File "<string>", line 1, in <module>
File "/home/pi/Desktop/Amrita/lite_0413/sr1.py", line 25, in <module>
url = 'https://api.telegram.org/bot' + token + '/'
NameError: name 'token' is not defined
pi@raspberrypi:~/Desktop/Amrita/lite_0413 $
ekochnev
Магистр
Екатеринбург
214 55
Отв.2394 04 Февр. 22, 08:58 (через 12 мин)
Все правильно, ругается на 25 строку.
А сейчас внимательно прочитайте что перед ней написано.
Добавлено через 9мин.:
Плохо конечно, что Сергей выкладывает скрипты с ошибками, не проверяя их работоспособность, которые нельзя просто взять и запустить. Для человека, ориентирующегося в питоне, исправить все это абсолютно не проблема, а вот для новичков беда.
Чувствую, следующая ошибка у NBVV будет из-за отсутствующего фракционника или датчика температуры.
А сейчас внимательно прочитайте что перед ней написано.
Добавлено через 9мин.:
Плохо конечно, что Сергей выкладывает скрипты с ошибками, не проверяя их работоспособность, которые нельзя просто взять и запустить. Для человека, ориентирующегося в питоне, исправить все это абсолютно не проблема, а вот для новичков беда.
Чувствую, следующая ошибка у NBVV будет из-за отсутствующего фракционника или датчика температуры.
NBVV
Специалист
Новосибирск
133 2
Отв.2395 04 Февр. 22, 09:11 (через 14 мин)
С моим знанием питона, мне сейчас бесполезно вчитываться - даже вчитавшись я не смогу сделать вывод и поправить ошибку. Тем более, что эти скрипты уже у кого-то, как я понимаю, работают и я думаю, что может я что-то делаю не так. Если короче, то сейчас мне нужна рыба, а не удочка)).
ekochnev
Магистр
Екатеринбург
214 55
Отв.2396 04 Февр. 22, 09:13 (через 2 мин)
Судя по всему, Вы даже не пытались читать. Там нормальным русским языком все написано. Текст никак не связан с программированием
NBVV
Специалист
Новосибирск
133 2
Отв.2397 04 Февр. 22, 13:49
Вы неверно судите. Я же сказал что не знаю, что с этим (прочитанным) делать. Ну нет у меня телеграм бота, но ведь, явно,
скрипт не должен из-за этого останавливаться. Какой-то баг и я спрашиваю как его исправить. И заранее написал про рыбу и удочку))
скрипт не должен из-за этого останавливаться. Какой-то баг и я спрашиваю как его исправить. И заранее написал про рыбу и удочку))
ekochnev
Магистр
Екатеринбург
214 55
Отв.2398 04 Февр. 22, 14:13 (через 24 мин)
Я понимаю, что его у вас нету.
Так выше 25-й строки на которую я ссылался, как раз и написано, где его можно зарегистрировать, чтобы этот телеграм-бот у вас появился. Ну либо закомментируйте в этом файле все места, где идет ссылка на него, чтобы питон не ругался на его отсутствие. Если Вы хотите пользоваться данным софтом как есть без изменений, тогда следуйте инструкциям, как сделать так, чтобы он работал (зарегистрировать бот). Если хотите, что-то особенное, что есть только у Вас, тогда лучше начать изучать питон и написать свой скрипт. Я лично пошел по этому пути.
Так выше 25-й строки на которую я ссылался, как раз и написано, где его можно зарегистрировать, чтобы этот телеграм-бот у вас появился. Ну либо закомментируйте в этом файле все места, где идет ссылка на него, чтобы питон не ругался на его отсутствие. Если Вы хотите пользоваться данным софтом как есть без изменений, тогда следуйте инструкциям, как сделать так, чтобы он работал (зарегистрировать бот). Если хотите, что-то особенное, что есть только у Вас, тогда лучше начать изучать питон и написать свой скрипт. Я лично пошел по этому пути.
OldBean
Доцент
Красноярск
1K 1.4K

Отв.2399 04 Февр. 22, 15:24
Плохо конечно, что Сергей выкладывает скрипты с ошибками, не проверяя их работоспособностьekochnev, 04 Февр. 22, 08:58Во-первых, я выкладываю только те скрипты, которые я реально использую в своих процессах. Т.е. на моих конфигурациях они работают безупречно. Естественно, перед публикацией я удаляю из скриптов некоторые фрагменты, которые не предназначены для публикации (IP-шники, токены ботов и т.п.). Возможно, эти два пробела в 109-й строке удалились случайно при такой корреции. Перед публикацией. Ну, например, случайно курсор в редакторе не туда встал. Бывает. :))) Естественно, у меня нет возможности проводить полное тестирование всех скриптов после таких коррекций. Это досадная и, кстати, редкая случайность. Поэтому не нужно обобщать...
Во-вторых, это не коммерческий продукт. У меня нет возможности (да и цели такой не стоит!) проводить полное тестирование софта, с учетом, в том числе, возможности запуска ПО не совсем подготовленными пользователями. Это - просто мое хобби, с результатами которого я делюсь с форумчанами. В знак благодарности за другую информацию, которую народ выкладывает на форуме. Поэтому этот софт - абсолютно "as is...". Я готов бесконечно помогать новичкам в освоении питона, но без претензий к качеству ПО, которое я пишу, по сути, для себя.
Ну и, в-третьих. Данная автоматика - это не электрочайник, который воткнул в розетку, нажал кнопку - он тебе и водичку вскипятил. Это конструктор, который, при определенном умении, позволяет решать очень широкий класс задач, связанных с автоматизацией различных процессов. Но она (ненавязчивая автоматика) требует хотя бы минимального уровня владения электроникой и программированием как на C (прошивки), так и на питоне (собственно процессы). В основном, конечно, на питоне.
Ну нет у меня телеграм бота, но ведь, явно,Конечно не должен. Там стоит опеределенный флаг (условие). Скрипт просто не должен посылать сообщения в telegram.
скрипт не должен из-за этого останавливаться. Какой-то баг и я спрашиваю как его исправить. И заранее написал про рыбу и удочку))NBVV, 04 Февр. 22, 13:49
В выходные смоделирую Вашу конфигурацию и ситуацию. Разберемся. Другого еще не было :) Но пион подучить, все-таки, желательно. Это очень простой, изящный, модный и перспективный язык. В любом случае в жизни пригодится. Не пожалеете. Скоро эти проблемы Вам покажутся просто детскими и смешными :)