Arduino Mega Server
Модератор: Alex
Re: Arduino Mega Server
Вот уже третьи сутки не снимают бан за мой код. Еще раз попробую. Время опроса температуры в первой вкладке
#ifdef TEMP_FEATURE
if (cycle5m) {tempWorks();} //Меняйте на любой из возможных 1s,4s,20s,30s - это секунды и 1m,3m,5m - минуты
#endif
#ifdef TEMP_FEATURE
if (cycle5m) {tempWorks();} //Меняйте на любой из возможных 1s,4s,20s,30s - это секунды и 1m,3m,5m - минуты
#endif
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Re: Arduino Mega Server
Сегодня этот день настал - отформатировал свою больную карту на 8 гигов через адаптер микро-макси на нетбуке ( прогу вспомню вечером ). Вставляю в USB-reader - Винда орёт что карта не форматирована. На большом другом компе с тем же ридером нормально прочиталась , любопытство победило и я залил файлы сервера. И о ,боги, она ЗАВЕЛАСЬ !!!!!Avd67 писал(а): Я, наверное, красным фломастером обведу в календаре тот день, когда АМС запустится
Полгода танцев с бубном такого не сотворили. Название проги вечером ( или сами погуглите )
И с праздиком Вас !
UPD Прога называется USB disk storage format tool. Скачивал отсюда. 8 гигов колбасит почти час, но после этого все заработало.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Re: Arduino Mega Server
спасибо большоеserghei писал(а):На первой вкладке АМС в середине loop есть код5m это время через которое сработает вывод температуры. Дальше смотрите вкладку timers самое начало.Код: Выделить всё
#ifdef TEMP_FEATURE if (cycle5m) {tempWorks();} #endifЭто время - меняйте на 1,4,20,30 секунд или 1 ,3,5 минут. Не уверен , но кажется во всех версиях так.SPOILERSPOILER_SHOWКод: Выделить всё
unsigned long timer1s; unsigned long timer4s; unsigned long timer20s; unsigned long timer30s; unsigned long timer1m; unsigned long timer3m; unsigned long timer5m;
*** Сообщение запрещено. Сообщение похоже на спам. ***
Re: Arduino Mega Server
Неа, не помогает(serghei писал(а):Сегодня этот день настал - отформатировал свою больную карту на 8 гигов через адаптер микро-макси на нетбуке ( прогу вспомню вечером ). Вставляю в USB-reader - Винда орёт что карта не форматирована. На большом другом компе с тем же ридером нормально прочиталась , любопытство победило и я залил файлы сервера. И о ,боги, она ЗАВЕЛАСЬ !!!!!Avd67 писал(а): Я, наверное, красным фломастером обведу в календаре тот день, когда АМС запустится
Полгода танцев с бубном такого не сотворили. Название проги вечером ( или сами погуглите )
И с праздиком Вас !
UPD Прога называется USB disk storage format tool. Скачивал отсюда. 8 гигов колбасит почти час, но после этого все заработало.
Re: Arduino Mega Server
А что за программа у вас для отладки HTM и cjAndroid2i2 писал(а):Ох... И снова я со своими проблемами. >.<
Повесил 2 реле на 11 и 12 пин.
Код был культурно слизан с данного форума, но чуть-чуть под себя переделан.Ну и, как и со всеми другими железяками, для начала решил воткнуть свой модуль на уже готовую страницу управления.SPOILERSPOILER_SHOWКод: Выделить всё
#ifdef RELAYS_FEATURE byte RPIN[2] ={11,12}; byte RCTRPIN[2]={11,12}; int current_val[2]; int old_val[2]; void relInit() { for (byte i=0; i<=1; i++){ pinMode(RCTRPIN[i],LOW); } Serial.print("Relays module... "); modulRel = MODUL_ENABLE; Serial.print("started\n"); } void rel_control() { for (byte i=0; i<=1; i++) { current_val[i]=digitalRead(RCTRPIN[i]); if (old_val[i] != current_val[i]){ if (digitalRead(RCTRPIN[i])== HIGH) { rel_sw(i, 1); }else { rel_sw(i, 0); } old_val[i] = current_val[i]; } }} void rel_sw(byte num, byte stat) { if(stat==1) { digitalWrite(RPIN[num], HIGH); Serial.print("REL"); Serial.print(num+1); Serial.print(": on\n"); REL_state[num] = 1; } else { digitalWrite(RPIN[num], LOW); Serial.print("REL"); Serial.print(num+1); Serial.print(": off\n"); REL_state[num] = 0; } } #endif
По примеру leds добавил пару строк в Ajax.В sample2 просто заменил два LED'a на свои REL.SPOILERSPOILER_SHOWКод: Выделить всё
else if (StrContains(HTTP_req, "request_generic")) {sendXmlAnswer(cl); SetREL(); responseGeneric(cl);} . . . // Generic void SetREL() { if (StrContains(HTTP_req, "REL1=1")) { REL_state[0] = 1; // save LED state digitalWrite(11, HIGH); } else if (StrContains(HTTP_req, "REL1=0")) { REL_state[0] = 0; // save LED state digitalWrite(11, LOW); } // REL 2 (pin 12) if (StrContains(HTTP_req, "REL2=1")) { REL_state[1] = 1; digitalWrite(12, HIGH); } else if (StrContains(HTTP_req, "REL2=0")) { REL_state[1] = 0; digitalWrite(12, LOW); } }Но...SPOILERSPOILER_SHOWКод: Выделить всё
var strREL1 = ""; var strLED3 = ""; var strLED4 = ""; var REL2_state = 0; var LED4_state = 0; ... // REL 1 if (this.responseXML.getElementsByTagName('REL')[0].childNodes[0].nodeValue === "checked") { document.REL_form.REL1.checked = true; document.getElementById("REL1").innerHTML = "ON"; } else { document.REL_form.REL1.checked = false; document.getElementById("REL1").innerHTML = "OFF"; } // REL 2 if (this.responseXML.getElementsByTagName('REL')[2].childNodes[0].nodeValue === "on") { document.getElementById("REL2").innerHTML = "REL 2 is ON (D12)"; document.getElementById("REL2").innerHTML = "ON"; LED3_state = 1; } else { document.getElementById("REL2").innerHTML = "REL2 is OFF (D5)"; document.getElementById("REL2").innerHTML = "OFF"; REL2_state = 0; } // LED 4 if (this.responseXML.getElementsByTagName('LED')[3].childNodes[0].nodeValue === "on") { document.getElementById("LED4").innerHTML = "LED 4 is ON (D3)"; document.getElementById("ld3").innerHTML = "ON"; LED4_state = 1; } else { document.getElementById("LED4").innerHTML = "LED 4 is OFF (D3)"; document.getElementById("ld3").innerHTML = "OFF"; LED4_state = 0; } ... request.open("GET", "request_generic" + strREL1 + strREL2 + strLED3 + strLED4 + randomNoCache(), true); request.send(null); setTimeout('getArduinoIO()', 1000); strREL1 = ""; strREL2 = ""; strLED3 = ""; strLED4 = ""; } // getArduinoIO() ... unction GetCheck() { if (REL_form.REL1.checked) { strREL1 = "&REL1=1"; } else { strREL1 = "&REL1=0"; } } /* ----------------------------------------- service LEDs when button checked/unchecked -------------------------------------------- */ function GetButton1() { if (REL2_state === 1) { REL2_state = 0; strREL2 = "&REL2=0"; } else { REL2_state = 1; strREL2 = "&REL2=1"; } } function GetButton2() { if (LED4_state === 1) { LED4_state = 0; strLED4 = "&LED4=0"; } else { LED4_state = 1; strLED4 = "&LED4=1"; } ... <h3>Светодиоды,<br>использующие чекбоксы</h3> <form id="check_RELs" name="REL_form"> <input type="checkbox" name="REL1" value="0" onclick="GetCheck()" /> REL 1 (D11)<br /><br /> </form> </div> </div> <div class="cell-4"> <div class="box"> <h3>Светодиоды,<br>использующие кнопки</h3> <button type="button" id="REL2" onclick="GetButton1()">REL 2 is OFF (D12)</button><br /><br /> <button type="button" id="LED4" onclick="GetButton2()">LED 4 is OFF (D9)</button><br /><br /> </div> </div>
Как понимаете, ничего с моим реле не происходит, как бы яростно я не тыкал по кнопкам.
Направьте на путь истинный.![]()
Что я опять сделал не так?
Re: Arduino Mega Server
awladimer Злоупотреблять слишком частым опросом температуры не надо. 5-ти минут вполне достаточно , если только для теста датчиков. Сам таким грешу , но потом возвращаю к 5 минут.
Да это простой текстовый редактор Notepad++
Для начала работы по адаптации "под себя" попробуй пройти эту школу. А потом можно браться и по серьезней.
Да это простой текстовый редактор Notepad++
Для начала работы по адаптации "под себя" попробуй пройти эту школу. А потом можно браться и по серьезней.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
Android2i2
- Сообщения: 18
- Зарегистрирован: Вс фев 05, 2017 2:19 pm
- Контактная информация:
Re: Arduino Mega Server
Как выше ответил Сергей, это NotePad++.awladimer писал(а):А что за программа у вас для отладки HTM и cjAndroid2i2 писал(а):Ох... И снова я со своими проблемами. >.<
Повесил 2 реле на 11 и 12 пин.
Код был культурно слизан с данного форума, но чуть-чуть под себя переделан.Ну и, как и со всеми другими железяками, для начала решил воткнуть свой модуль на уже готовую страницу управления.SPOILERSPOILER_SHOWКод: Выделить всё
#ifdef RELAYS_FEATURE byte RPIN[2] ={11,12}; byte RCTRPIN[2]={11,12}; int current_val[2]; int old_val[2]; void relInit() { for (byte i=0; i<=1; i++){ pinMode(RCTRPIN[i],LOW); } Serial.print("Relays module... "); modulRel = MODUL_ENABLE; Serial.print("started\n"); } void rel_control() { for (byte i=0; i<=1; i++) { current_val[i]=digitalRead(RCTRPIN[i]); if (old_val[i] != current_val[i]){ if (digitalRead(RCTRPIN[i])== HIGH) { rel_sw(i, 1); }else { rel_sw(i, 0); } old_val[i] = current_val[i]; } }} void rel_sw(byte num, byte stat) { if(stat==1) { digitalWrite(RPIN[num], HIGH); Serial.print("REL"); Serial.print(num+1); Serial.print(": on\n"); REL_state[num] = 1; } else { digitalWrite(RPIN[num], LOW); Serial.print("REL"); Serial.print(num+1); Serial.print(": off\n"); REL_state[num] = 0; } } #endif
По примеру leds добавил пару строк в Ajax.В sample2 просто заменил два LED'a на свои REL.SPOILERSPOILER_SHOWКод: Выделить всё
else if (StrContains(HTTP_req, "request_generic")) {sendXmlAnswer(cl); SetREL(); responseGeneric(cl);} . . . // Generic void SetREL() { if (StrContains(HTTP_req, "REL1=1")) { REL_state[0] = 1; // save LED state digitalWrite(11, HIGH); } else if (StrContains(HTTP_req, "REL1=0")) { REL_state[0] = 0; // save LED state digitalWrite(11, LOW); } // REL 2 (pin 12) if (StrContains(HTTP_req, "REL2=1")) { REL_state[1] = 1; digitalWrite(12, HIGH); } else if (StrContains(HTTP_req, "REL2=0")) { REL_state[1] = 0; digitalWrite(12, LOW); } }Но...SPOILERSPOILER_SHOWКод: Выделить всё
var strREL1 = ""; var strLED3 = ""; var strLED4 = ""; var REL2_state = 0; var LED4_state = 0; ... // REL 1 if (this.responseXML.getElementsByTagName('REL')[0].childNodes[0].nodeValue === "checked") { document.REL_form.REL1.checked = true; document.getElementById("REL1").innerHTML = "ON"; } else { document.REL_form.REL1.checked = false; document.getElementById("REL1").innerHTML = "OFF"; } // REL 2 if (this.responseXML.getElementsByTagName('REL')[2].childNodes[0].nodeValue === "on") { document.getElementById("REL2").innerHTML = "REL 2 is ON (D12)"; document.getElementById("REL2").innerHTML = "ON"; LED3_state = 1; } else { document.getElementById("REL2").innerHTML = "REL2 is OFF (D5)"; document.getElementById("REL2").innerHTML = "OFF"; REL2_state = 0; } // LED 4 if (this.responseXML.getElementsByTagName('LED')[3].childNodes[0].nodeValue === "on") { document.getElementById("LED4").innerHTML = "LED 4 is ON (D3)"; document.getElementById("ld3").innerHTML = "ON"; LED4_state = 1; } else { document.getElementById("LED4").innerHTML = "LED 4 is OFF (D3)"; document.getElementById("ld3").innerHTML = "OFF"; LED4_state = 0; } ... request.open("GET", "request_generic" + strREL1 + strREL2 + strLED3 + strLED4 + randomNoCache(), true); request.send(null); setTimeout('getArduinoIO()', 1000); strREL1 = ""; strREL2 = ""; strLED3 = ""; strLED4 = ""; } // getArduinoIO() ... unction GetCheck() { if (REL_form.REL1.checked) { strREL1 = "&REL1=1"; } else { strREL1 = "&REL1=0"; } } /* ----------------------------------------- service LEDs when button checked/unchecked -------------------------------------------- */ function GetButton1() { if (REL2_state === 1) { REL2_state = 0; strREL2 = "&REL2=0"; } else { REL2_state = 1; strREL2 = "&REL2=1"; } } function GetButton2() { if (LED4_state === 1) { LED4_state = 0; strLED4 = "&LED4=0"; } else { LED4_state = 1; strLED4 = "&LED4=1"; } ... <h3>Светодиоды,<br>использующие чекбоксы</h3> <form id="check_RELs" name="REL_form"> <input type="checkbox" name="REL1" value="0" onclick="GetCheck()" /> REL 1 (D11)<br /><br /> </form> </div> </div> <div class="cell-4"> <div class="box"> <h3>Светодиоды,<br>использующие кнопки</h3> <button type="button" id="REL2" onclick="GetButton1()">REL 2 is OFF (D12)</button><br /><br /> <button type="button" id="LED4" onclick="GetButton2()">LED 4 is OFF (D9)</button><br /><br /> </div> </div>
Как понимаете, ничего с моим реле не происходит, как бы яростно я не тыкал по кнопкам.
Направьте на путь истинный.![]()
Что я опять сделал не так?
P.S.
Реле у меня так и не заработало.
*** Сообщение запрещено. Сообщение похоже на спам. ***
Arduino Mega 2560 + Ethernet 5100
Windows 10
IDE 1.6.5
Уровень знаний: Пещерный человек
Windows 10
IDE 1.6.5
Уровень знаний: Пещерный человек
Re: Arduino Mega Server
Жаль,что сообщения не нумеруются на форуме. Пару десятков страниц ( даже больше )назад выкладывали поправленный скетч " key ". На Дуе заработал на вкладке " Управление" - управление светом. Если размножить до 5, то должно получиться. Мне проверить не на чем - нет свободных серверов.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Arduino Mega Server
Как это не нумеруются?)) У твоего например номер 46760)) И прямая ссылка на него viewtopic.php?p=46760#p46760serghei писал(а):Жаль,что сообщения не нумеруются на форуме.
Можно получить по клику на листочек, рядом с надписью "Добавлено" справа вверху.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Arduino Mega Server
Может быть для уличного и домашнего да. А вот в птичнике в инкубаторной мне придеться делать хотя бы до минуты чтоб отслеживать инкубаторы за пять минут может произойти всякое, и тогда яйца на помойку.serghei писал(а):awladimer Злоупотреблять слишком частым опросом температуры не надо. 5-ти минут вполне достаточно , если только для теста датчиков. Сам таким грешу , но потом возвращаю к 5 минут.
Да это простой текстовый редактор Notepad++
Для начала работы по адаптации "под себя" попробуй пройти эту школу. А потом можно браться и по серьезней.