отправка данных в сериал с компьютера по команде с batch
- Войдите на сайт для отправки комментариев
Здравствуйте.
что хотелось сделать: по расписанию с компьютера отправляется команда и ардуинка включает или выключает освещение.
что имеется:
код на ардуино:
#define RELAY_PWR 7 #define RELAY_SW 8 int val; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(RELAY_PWR, OUTPUT); digitalWrite(RELAY_PWR, HIGH); pinMode(RELAY_SW, OUTPUT); digitalWrite(RELAY_SW, HIGH); } void loop() { if (Serial.available()) { val = Serial.read(); if (val == '1') { digitalWrite(RELAY_PWR, LOW); Serial.print("Light_on \n"); for (int i = 0; i < 17; i++) { digitalWrite(RELAY_SW, LOW); delay(100); digitalWrite(RELAY_SW, HIGH); delay(100); } } if (val == '0') { digitalWrite(RELAY_PWR, HIGH); Serial.print("Light_off \n"); } } }
несколько комментариев: в качестве нагрузки используется гирлянда с переключателем режимов включения. первое реле (RELAY_PWR) включает\выключает саму нагрузку, второе реле (RELAY_SW) подает сигналы на кнопку переключения режимов (постоянное свечение - 17 позиция), ну и соответственно используется как гальваническая развязка на всякий случай.
код и софт на компе:
управление на данный момент выполняется отправкой соответственно 1 или 0 в порт через plink (компонент putty), но сообщение уходит только в интерактивном виде. ключ -batch не работает.
plink.exe -serial com7 -batch -m 0.txt
ЧЯДНТ
может кто-то уже сталкивался с подобными вопросами и имеет варианты решения?
часов rtc нет, возможно в будущем прицеплю.
А ты не через bat файл, а напиши программу на Delphi/C#, вставь её запуск в автозагрузку, да отправляй всё что угодно когда и сколько хочешь.
Языками не владею.. к сожалению.
штош, тогда я снимаю своё предложение. А так было бы красиво и изящно.
http://arduino.ru/forum/otvlechennye-temy/na-fone-obshchei-isterii-po-ki...
С esp было бы гораздо проще, но там логический уровень 3.3 вольта.
Вы правы, было бы весьма изящно.
С esp было бы гораздо проще, но там логический уровень 3.3 вольта.
А это проблема?
К сожалению эти варианты были испробованы самыми первыми. железка на них отреагировала никак.
Посмотрите, не происходит ли RESET ардуино при отправке в СОМ порт из командного файла.
К сожалению эти варианты были испробованы самыми первыми. железка на них отреагировала никак.
Возможно не тот порт, не те параметры порта, не учтены совсем или используются не те символы конца строки, порт занят незакрытым монитором порта или другой какой программой и т.д. и т.п. Иначе чего бы ей не реагировать?
Хотя сорри! Bruzzer правильно написал - ардуинка перезагружается.
del
Но, в первый раз после вызова MODE, все равно винда за DTR дёргает. Так что срабатывать начинает со второго раза.
UPD: Похоже, что таково дефолтовое поведение DOS/Windows: первое открытие порта, после отключения DTR, все равно его передернет. Второе и последующее - уже не подвержены таковому дефекту. В Powershell так же происходит.
Всем спасибо.
какого-то лешего
вот это запустилось. На данный момент в качестве ОС установлена win10 ltsc
порты и параметры были прописаны корректно.
С esp было бы гораздо проще, но там логический уровень 3.3 вольта.
А это проблема?
Найти релюшку, которая будет нормально отрабатывать логическую единицу в 3.3 вольта и при этом коммутировать переменку сетевого питания достаточно проблематично. Если у вас есть варианты, с удовольствием выслушаю)
Самая простая дешевая релюха на 10 ампер прекрасно работает на 3 вольта. Хотя в описании написано 5. Проверено лично на СТМ (который тоже 3 вольта).
Типа такой: https://www.radiosfera.org/catalog/rele/releynye_moduli/500/
Найти релюшку, которая будет нормально отрабатывать логическую единицу в 3.3 вольта и при этом коммутировать переменку сетевого питания достаточно проблематично. Если у вас есть варианты, с удовольствием выслушаю)
Найти релюшку, которую можно было бы подцеплять напрямую к выходам контроллера - вообще проблема. В любом случае нужен усилитель тока и цепи защиты. Т.е. нужен модуль реле. А такие модули прекрасно работают с управляющим напряжением 3.3В. Так что проблем нет. От слова совсем.