24.02.2018, 22:33 | #1 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600 |
Модуль "Вебка к роутеру для arduino-Терморегулятора"
С вебморды есть просмотр на пк температуры со всех датчиков.
Терморегулятор на Arduino работает самостоятельно. Роутер не обязателен, можно одноразово и с пк настройки прописать. Код:
с консоли arduino-IDE r+=setS - ARDUINO ОТПРАВИТ ВСЕ УСТАНОВОКИ r+=setN - ARDUINO ОТПРАВИТ ВСЕ ИМЕНА ДАТЧИКОВ r+=setM - ARDUINO ОТПРАВИТ ВСЕ СЕРИЙНЫЕ НОМЕРА ДАТЧИКОВ r+=setT - ARDUINO ОТПРАВИТ ВСЕ ПОКАЗАНИЯ ТЕМПЕРАТУРЫ Код:
строка: a+=0 115200 16 04 11 27 a+=0 - ключ + пробел. 115200 - speed +пробел. 16 - 16-ти символьный LCD + пробел. 04 - колличество датчиков + пробел. 11 - номер ноги 1wire + пробел. 27 - это i2c адрес 0x27 Код:
Для 4 первых датчиков строка должна быть полностью, деже если только термометр: b+=0 7 KotelIn 28A9324B03000043 1 5 1 512 16 a+= - ключ. 0 - порядковый номер датчика + пробел. (отщет с нуля!!)В веб-морде отщет идет с 1!! 7 - колличество символов в имени датчика + пробел. KotelIn - само имя датчика + пробел. (только латынь!!!) 28A9324B03000043 - серийный датчика + пробел. 1 - тип прибора+пробел. (0 - термометр, 1 - Термостат, 2 - Кондиционер) 5 - номер GPIO-выхода + пробел. 1 - активный HIGH + пробел. (0 - LOW) 512 - 51,2 градуса (максимум 99,9 градуса) температура отключения gpio терморегулятор (включения gpio кондиционер) + пробел. 16 - 1,6 градуса гистерезис. (максимум 9,9 градуса) К оставшимся 6 датчикам: b+=4 6 Okno-2 28A9324B03000088 --- Скетч для arduino в архивах. 1. Залить Скетч в arduino. Подключить кнопки, i2C-LCD и ds18b20 + подтяжку от 3,3кОм до 4,7кОм 2. СЕРИЙНЫЕ НОМЕРА ДАТЧИКОВ ПРОГРАМА ПРОСКАНИРУЕТ И СОХРАНИТ САМА, ТОЛЬКО НАДО: * НАЖАТЬ И УДЕРЖИВАТЬ ОДНОВРЕМЕННО ДВЕ КНОПКИ "buttonMenu" И "buttonPLUS", * и нажать и потом отпустить кнопку reset на плате, ПОДОЖДАТЬ 5-6 СЕК, * ОТПУСТИТЬ КНОПКИ "buttonMenu" И "buttonPLUS" * или * НАЖАТЬ И УДЕРЖИВАТЬ ОДНОВРЕМЕННО ДВЕ КНОПКИ "buttonMenu" И "buttonPLUS", * ПОДАТЬ ПИТАНИЕ, ПОДОЖДАТЬ 5-6 СЕК И ОТПУСТИТЬ КНОПКИ "buttonMenu" И "buttonPLUS" buttonMenu = 2, //кнопка пин 2 buttonPLUS = 3, //кнопка пин 3 buttonMinus = 4; //кнопка пин 4 На LCD отобразит температуру. Прибор уже готов сам работать. По умолчанию gpio-выходы 5, 6, 7, 8 с активными уровнями HIGH. LCD 16-ти символьная. В меню-настроек на самой arduino можно изменять: тип - термометр, термостат, кондиционер и их температуру отключения-включения и гистерезис на 4 датчиках ((термостат и кондиционер это терморегуляторы отличающиеся, между собой, по методу включения-отключения gpio-выходов)). и колличество датчиков. С вебморды еще можно изменить gpio-выходы и менять местами, i2c адрес LCD, и на 20-ти символьный, подписывать имена к датчикам, местами менять Серийные номера, переключать активные уровни HIGH-LOW, скрость порта (при наведении в подсказке с которыми работает), 2. Поключить к роутеру. * Потом установить Необходимые пакеты в роутер: * kmod-usb-serial-ch341 или kmod-usb-serial-pl2303, или другой, в зависимости какой usb-uart переходник используется на arduino. * Если подключаться к uart роутера то usb-serial не надобно устанавливать. 3. С архива установить: opkg install port_listen opkg install termostat-serial-arduino 4. Модуь пропишется в вебке Cyberwrt. После установки при первом входе в вебку модуля перекинет в настройки, это надо для запуска демона port_listen, который постоянно слушает порт. С не настроенным или не установленным ком-портом не запустится. И обязательная последовательность действий для упрощения первичной настройки синхронизации. Код:
Если в скетче ничего не изменялось то прописать только свой ком-порт и нажать сохранить и перезагрузить обязательно. Потом нажать в вебе "Термостат-arduino-serial", должна отобразится температура. И нажать "Настройка_arduino". И все, Настройки arduino и модуля в роутере синхронизируются, и теперь можно настраивать под себя. Что бы от этого не затиралась флэш, вписываются только изменения. Если изменений в arduino не было, то и писать ничего не будет. Если, что то, где то криво пошло не так. Есть RESET всех настроек. * АВАРИЙНОЕ ВОССТАНОВЛЕНИЕ РАБОТОСПОСОБНОСТИ UART-232 И ВСЕХ НАСТРОЕК * НАЖАТЬ И УДЕРЖИВАТЬ КНОПКУ "buttonPLUS" ПОДАТЬ ПИТАНИЕ, ПОДОЖДАТЬ 5-6 СЕК И ОТПУСТИТЬ КНОПКУ "buttonPLUS" * НАЖАТАЯ КНОПКА "buttonPLUS" Reset to defaults: ВСЕХ НАСТРОЕК И ЗАПИШЕТ speed=115200; * или * ПРИ ВКЛЮЧЕННОМ ПИТАНИИ НАЖАТЬ И УДЕРЖИВАТЬ КНОПКУ "buttonPLUS" НАЖАТЬ И ОТПУСТИТЬ КНОПКУ "RESET" НА ПЛАТЕ, * ПОДОЖДАТЬ 5-6 СЕК И ОТПУСТИТЬ КНОПКУ "buttonPLUS" * или * НАЖАТАЯ КНОПКА "buttonMinus" Reset to defaults: ВСЕХ НАСТРОЕК И ЗАПИШЕТ speed=57600; * или * НАЖАТЫЕ ВМЕСТЕ КНОПКИ "buttonPLUS" И "buttonMinus" Reset to defaults: ВСЕХ НАСТРОЕК И ЗАПИШЕТ speed=9600; Последний раз редактировалось melsem; 26.03.2018 в 16:05. |
10.03.2018, 22:47 | #2 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600 |
Архивы перезалил.
Дописал: 1. i2c - адрес можно с веба менять. 2. Теперь название прибора хранится и в самой ардуино. /* НАЗВАНИE ПРИБОРА (кирилица 27-символa a латынь 54-символa) В ARDUINO ДЛЯ EEPROM 312-367 */ если вписывать с вебки, лишние символы обрежутся. Но при за-програмировании ардуино с консоли надо быть внимательным. (Символ в кирилице занимает 2 байта, латынь 1 байт.) 3. Проверку на отвал питания датчика или корпуса, или выход со строя самого датчика (не только crc). Выводить на LCD и в веб будет "Err-CRC" Во всех примерах с ds18x20 что встрачались проверка crc это просто .... И все втупую, как и я раньше, переписывают, а проверки то никакой и нету. Последний принятый байт сравнивается с этим же байтом? И еще в самом скетче. Скетч отдельно в архиве. Последний раз редактировалось melsem; 11.03.2018 в 00:59. |
Метки |
arduino, cyberwrt, ds18b20, терморегулятор, openwrt |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|