![]() |
![]() |
#51 |
Member
Регистрация: 05.11.2012
Сообщений: 63
Вес репутации: 0 ![]() |
![]()
Ну это ясно я смотрел фотки в первом посте, на то примерно и расчёт. Тут просто суть что роутер у нас один на всю сеть и он мастер сети и на всю сеть у нас 20 регистров. Да мы можем писать и читать с каждой ардуины свои данные но если регистры будут использоваться как обычные переменные то 20 переменных это мало а вот если работать с битами то 320 переменных вполне достаточно.
Добавлено Ну вот что я на ваял это нужно добавить в php и передать в html PHP код:
Последний раз редактировалось alexval2007; 07.12.2013 в 20:02. |
![]() |
![]() |
![]() |
#52 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Потому что используемая функция модбас работет со словом.
Я уже говорил, что для ардуино я не встречал библиотеку модбас работающую с битами т.е. с функциями 0x05(0x06). Да используется не рационально для дискретных сигналов. Если сильно захотеть можно немного "поизвращаться", как заметил alexval2007 рассматривать переменную - регистр, как 16 бит регистр и выделять каждый бит как цифровую переменную отдельно для дискретных сигналов типа вкл/выкл (1/0). |
![]() |
![]() |
![]() |
#53 |
Member
Регистрация: 05.11.2012
Сообщений: 63
Вес репутации: 0 ![]() |
![]()
я так понимаю в dps.php файле эти строки передают регистры в html
PHP код:
|
![]() |
![]() |
![]() |
#54 | |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#55 |
Member
Регистрация: 05.11.2012
Сообщений: 63
Вес репутации: 0 ![]() |
![]()
а между ними вклинится можно? например так
PHP код:
|
![]() |
![]() |
![]() |
#56 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
вклинится можно, лишь бы ваша html страница правильно интерпретировала получаемые данные.
|
![]() |
![]() |
![]() |
#57 |
Member
Регистрация: 05.11.2012
Сообщений: 63
Вес репутации: 0 ![]() |
![]()
получилось вывести в web 16 лампочек сейчас разбираюсь с кнопками надеюсь скоро выложу результат
Добавлено: Ну вот и выкладываю моё творчество конечно можно еще улучшить по крайней мере код ардуино. В php и html возможны разные глупые ошибки извините я в этом не силён. Лампочки в web загораются стабильно ровно те которые включаю в ардуино тут вроде всё хорошо получилось. Кнопки тут непонятно светодиод кнопкой включить удалось а вот выключить нет. Наверно нужна консультация товарища andr128 index.html Код HTML:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; Charset=UTF-8"> <script type="text/javascript" src="js/jquery.js"></script> <title>smart home</title> <style type="text/css"> body { // margin: 10px; padding: 10px; background: #41A89E; } .p11 { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; line-height: 1px; color: #330000; //margin: auto; //margin: 1px; } .p12 { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 12px; font-style: normal; line-height: normal; color: #009999; margin: auto; // padding: 3px; } //#bd { text-align: center; } .p16 { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 16px; font-style: normal; line-height: normal; font-weight: bold; // color: #009999; // color: #297DD1; color: #e9f5f0; // margin: auto; padding: 2px; text-align: center; // width: 90%; /* Ширина слоя */ background: #009999; /* Цвет фона */ /* background: #3b679e; background: -moz-linear-gradient(top, #3b679e 0%, #2b88d9 41%, #207cca 65%, #7db9e8 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3b679e), color-stop(41%,#2b88d9), color-stop(65%,#207cca), color-stop(100%,#7db9e8)); background: -webkit-linear-gradient(top, #3b679e 0%,#2b88d9 41%,#207cca 65%,#7db9e8 100%); background: -o-linear-gradient(top, #3b679e 0%,#2b88d9 41%,#207cca 65%,#7db9e8 100%); background: -ms-linear-gradient(top, #3b679e 0%,#2b88d9 41%,#207cca 65%,#7db9e8 100%); background: linear-gradient(to bottom, #3b679e 0%,#2b88d9 41%,#207cca 65%,#7db9e8 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3b679e', endColorstr='#7db9e8',GradientType=0 ); */ border-radius: 5px; } #frm { // background-image: url(img/bkg.png); // no-repeat; // background-size: 100%; background: #e9f5f0; // background: #D6D6D6; border-radius: 8px; border: 1px solid #FFFFFF; box-shadow: 0 0 10px rgba(0,0,0, 0.5); /* Параметры тени */ padding: 10px; //margin: 10px; width: 320px; padding: 10px; //padding-right: 20px; float: left; font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 14px; } #regs, #ri0, #ri1, #ri2, #ri3, #ri4, #ri5, #ri6, #ri7, #ri8, #ri9 { width: 55px; } #r0, #r1, #r2, #r3, #r4, #r5, #r6, #r7, #r8, #r9, #lamp1, #lamp2, #lamp3, #lamp4, #lamp5, #lamp6, #lamp7, #lamp8, #lamp9, #lamp10, #lamp11, #lamp12, #lamp13, #lamp14, #lamp15, #lamp16 { width: 55px; //display: none; } input { margin: 2px; } #img_lamp1, #img_lamp2, #img_lamp3, #img_lamp4, #img_lamp5, #img_lamp6, #img_lamp7, #img_lamp8, #img_lamp9, #img_lamp10, #img_lamp11, #img_lamp12, #img_lamp13, #img_lamp14, #img_lamp15, #img_lamp16 { vertical-align: middle; } #thumb { width: 320px; height: 60px; background: #e9f5f0; padding: 10px; border-radius:5px; box-shadow: 0 0 10px rgba(0,0,0, 0.5); /* Параметры тени */ } .wait { display: none; // vertical-align: bottom; // vertical-align: top; vertical-align: middle; // width: 30px; // height: 30px; } .logo{ // margin: 2px; padding-left: 15px; padding-bottom: 5px; } #r9set, set_button1, set_button2, set_button3, set_button4, set_button5, set_button6, set_button7, set_button8, set_button9, set_button10, set_button11, set_button12, set_button13, set_button14, set_button15, set_button16 { width: 60px; } </style> </head> <body> <script> //================================================ // Скрипты //================================================ var ID_timer; //======================= // вызвать при загрузке //======================= $(document).ready(function() { $(getjsondata(0,0,0)); }); // проверка значения надписи function setonoff(v) { if ( v == "вкл" ) { return 1 } else { return 0 }; } //=============================== // обработка событий кнопок //=============================== $(function() { $('*').click(function(){ switch (this.id) { // (addreg, valreg, rw) case 'r0set' : getjsondata(0, $("#ri0").val(), 1 ); break; case 'r1set' : getjsondata(1, $("#ri1").val(), 1 ); break; case 'r2set' : getjsondata(2, $("#ri2").val(), 1 ); break; case 'r3set' : getjsondata(3, $("#ri3").val(), 1 ); break; case 'r4set' : getjsondata(4, $("#ri4").val(), 1 ); break; case 'r5set' : getjsondata(5, $("#ri5").val(), 1 ); break; case 'r6set' : getjsondata(6, $("#ri6").val(), 1 ); break; case 'r7set' : getjsondata(7, $("#ri7").val(), 1 ); break; case 'r8set' : getjsondata(8, $("#ri8").val(), 1 ); break; //case 'r9set' : getjsondata(9, setonoff(this.value), 1 ); break; case 'set_button1' : getjsondata(9, setonoff(this.value), 1 ); break; case 'set_button2' : getjsondata(10, setonoff(this.value), 1 ); break; case 'set_button3' : getjsondata(11, setonoff(this.value), 1 ); break; case 'set_button4' : getjsondata(12, setonoff(this.value), 1 ); break; case 'set_button5' : getjsondata(13, setonoff(this.value), 1 ); break; case 'set_button6' : getjsondata(14, setonoff(this.value), 1 ); break; case 'set_button7' : getjsondata(15, setonoff(this.value), 1 ); break; case 'set_button8' : getjsondata(16, setonoff(this.value), 1 ); break; case 'set_button9' : getjsondata(17, setonoff(this.value), 1 ); break; case 'set_button10' : getjsondata(18, setonoff(this.value), 1 ); break; case 'set_button11' : getjsondata(19, setonoff(this.value), 1 ); break; case 'set_button12' : getjsondata(20, setonoff(this.value), 1 ); break; case 'set_button13' : getjsondata(21, setonoff(this.value), 1 ); break; case 'set_button14' : getjsondata(22, setonoff(this.value), 1 ); break; case 'set_button15' : getjsondata(23, setonoff(this.value), 1 ); break; case 'set_button16' : getjsondata(24, setonoff(this.value), 1 ); break; case 'btnr' : getjsondata(0, 0, 0); break; case 'reset' : $('.clear').val(''); break; // case 'test' : $("#auto").prop({"checked":true}); break; // case 'test' : $("#auto").attr("checked", false); break; // case 'test' : $("#auto").attr("checked", ! ($("#auto").prop("checked")) ); setauto( $("#auto") ); break; default: break } }); // $('*').change(function(){ switch (this.id) { case 'id' : getjsondata(0, 0, 0); break; case 'regs' : getjsondata(0, 0, 0); break; case 'auto' : setauto(this); break; default: break } }); function setauto(e) { if ( $(e).prop("checked") ) { // вкл. таймер ID_timer = setInterval(function() { getjsondata(0,0,0); }, 1000); $("#btnr").hide("slow"); $(".wait").show("slow"); } else { // отключить таймер clearInterval(ID_timer); $("#btnr").show("slow"); $(".wait").hide("slow"); } } }); //=========================================== // обмен с сервером //=========================================== function getjsondata(addreg, valreg, rw) { var fdata = { "id" : $("#id").val(), // ID slave "addr" : addreg, // нач. адрес табл. регистров "regs" : $("#regs").val(), // кол-во используемых регистров "rw" : rw, // 0 - read 1- write/read "r" : valreg // значение регистра для записи }; $.ajax({ url: 'dps.php', type: 'POST', timeout: 7000, // уст. таймаут 7 сек // async: false, cache: false, data: { param: JSON.stringify(fdata) }, success: function(data){ // Обратное преобразование gdata = JSON.parse(data); $("#id").val(gdata.id); $("#r0").val(gdata.r0); $("#r1").val(gdata.r1); $("#r2").val(gdata.r2); $("#r3").val(gdata.r3); $("#r4").val(gdata.r4); $("#r5").val(gdata.r5); $("#r6").val(gdata.r6); $("#r7").val(gdata.r7); $("#r8").val(gdata.r8); $("#r9").val(gdata.r9); /* $("#button1").val(gdata.button1); $("#button2").val(gdata.button2); $("#button3").val(gdata.button3); $("#button4").val(gdata.button4); $("#button5").val(gdata.button5); $("#button6").val(gdata.button6); $("#button7").val(gdata.button7); $("#button8").val(gdata.button8); $("#button9").val(gdata.button9); $("#button10").val(gdata.button10); $("#button11").val(gdata.button11); $("#button12").val(gdata.button12); $("#button13").val(gdata.button13); $("#button14").val(gdata.button14); $("#button15").val(gdata.button15); $("#button16").val(gdata.button16); */ if (gdata.lamp1 == 0 || gdata.lamp1 == null){ $('#img_lamp1').attr('src', "img/soloff.png"); } else { $('#img_lamp1').attr('src', "img/solon.png"); } if (gdata.lamp2 == 0 || gdata.lamp2 == null){ $('#img_lamp2').attr('src', "img/soloff.png"); } else { $('#img_lamp2').attr('src', "img/solon.png"); } if (gdata.lamp3 == 0 || gdata.lamp3 == null){ $('#img_lamp3').attr('src', "img/soloff.png"); } else { $('#img_lamp3').attr('src', "img/solon.png"); } if (gdata.lamp4 == 0 || gdata.lamp4 == null){ $('#img_lamp4').attr('src', "img/soloff.png"); } else { $('#img_lamp4').attr('src', "img/solon.png"); } if (gdata.lamp5 == 0 || gdata.lamp5 == null){ $('#img_lamp5').attr('src', "img/soloff.png"); } else { $('#img_lamp5').attr('src', "img/solon.png"); } if (gdata.lamp6 == 0 || gdata.lamp6 == null){ $('#img_lamp6').attr('src', "img/soloff.png"); } else { $('#img_lamp6').attr('src', "img/solon.png"); } if (gdata.lamp7 == 0 || gdata.lamp7 == null){ $('#img_lamp7').attr('src', "img/soloff.png"); } else { $('#img_lamp7').attr('src', "img/solon.png"); } if (gdata.lamp8 == 0 || gdata.lamp8 == null){ $('#img_lamp8').attr('src', "img/soloff.png"); } else { $('#img_lamp8').attr('src', "img/solon.png"); } if (gdata.lamp9 == 0 || gdata.lamp9 == null){ $('#img_lamp9').attr('src', "img/soloff.png"); } else { $('#img_lamp9').attr('src', "img/solon.png"); } if (gdata.lamp10 == 0 || gdata.lamp10 == null){ $('#img_lamp10').attr('src', "img/soloff.png"); } else { $('#img_lamp10').attr('src', "img/solon.png"); } if (gdata.lamp11 == 0 || gdata.lamp11 == null){ $('#img_lamp11').attr('src', "img/soloff.png"); } else { $('#img_lamp11').attr('src', "img/solon.png"); } if (gdata.lamp12 == 0 || gdata.lamp12 == null){ $('#img_lamp12').attr('src', "img/soloff.png"); } else { $('#img_lamp12').attr('src', "img/solon.png"); } if (gdata.lamp13 == 0 || gdata.lamp13 == null){ $('#img_lamp13').attr('src', "img/soloff.png"); } else { $('#img_lamp13').attr('src', "img/solon.png"); } if (gdata.lamp14 == 0 || gdata.lamp14 == null){ $('#img_lamp14').attr('src', "img/soloff.png"); } else { $('#img_lamp14').attr('src', "img/solon.png"); } if (gdata.lamp15 == 0 || gdata.lamp15 == null){ $('#img_lamp15').attr('src', "img/soloff.png"); } else { $('#img_lamp15').attr('src', "img/solon.png"); } if (gdata.lamp16 == 0 || gdata.lamp16 == null){ $('#img_lamp16').attr('src', "img/soloff.png"); } else { $('#img_lamp16').attr('src', "img/solon.png"); } if (gdata.button1 == 0 || gdata.button1 == null){ $('#set_button1').val("вкл"); } else { $('#set_button1').val("выкл"); } $("#out").text(gdata.text); // сообщ. об ошибке }, // data error: function(xhr) { $("#out").text("server: "+ xhr.statusText); } }); } /* exampe css if (bEnable) { $(‘#ctrl_id’).attr(‘disabled’, true); $(‘#ctrl_id’).css(‘background-color’, ‘#e0e0e0); } else { $(‘#ctrl_id’).removeAttr(‘disabled’); $(‘#ctrl_id’).css(‘background-color’, ‘#ffffff’); } */ //============ END SCRIPTS =============== </script> <!-- ========================================================= HTML CODE ========================================================= <div id="thumb"> </div><br> --> <div id="frm"> <a href="http://www.modbus.org"> <img class="logo" src="img/modbus.png" alt="Modbus"></a> <a href="http://www.arduino.ru"> <img class="logo" src="img/arduino.png" alt="Arduino"></a> <a href="http://www.cyber-place.ru"><img class="logo" src="img/cyber.png" alt="cyber-place"></a><br> <div id="hd" class="p16" >Smart Home Modbus RTU Project</div> <div class="p12">Сообщение от сервера: </div> <div id="out" class="p12"> Error </div><br> <!-- выбор id устройства --> ID Device : <select id="id"> <option>1</option> <option selected>2</option> <option>3</option> <option>4</option> <option>5</option> </select> регистров: <input type="text" id="regs" name="regs" value=10><br> регистр 0: <input type="text" id="r0" readonly> <input type="text" id="ri0" class="clear"> <input type="button" id="r0set" value="Установить"><br> регистр 1: <input type="text" id="r1" readonly> <input type="text" id="ri1" class="clear"> <input type="button" id="r1set" value="Установить"><br> регистр 2: <input type="text" id="r2" readonly> <input type="text" id="ri2" class="clear"> <input type="button" id="r2set" value="Установить"><br> регистр 3: <input type="text" id="r3" readonly> <input type="text" id="ri3" class="clear"> <input type="button" id="r3set" value="Установить"><br> регистр 4: <input type="text" id="r4" readonly> <input type="text" id="ri4" class="clear"> <input type="button" id="r4set" value="Установить"><br> регистр 5: <input type="text" id="r5" readonly> <input type="text" id="ri5" class="clear"> <input type="button" id="r5set" value="Установить"><br> регистр 6: <input type="text" id="r6" readonly> <input type="text" id="ri6" class="clear"> <input type="button" id="r6set" value="Установить"><br> регистр 7: <input type="text" id="r7" readonly> <input type="text" id="ri7" class="clear"> <input type="button" id="r7set" value="Установить"><br> регистр 8: <input type="text" id="r8" readonly><br> регистр 9: <input type="text" id="r9" readonly><br> <br> 1<img id="img_lamp1" src="img/soloff.png" alt="свет"> 2<img id="img_lamp2" src="img/soloff.png" alt="свет"> 3<img id="img_lamp3" src="img/soloff.png" alt="свет"> 4<img id="img_lamp4" src="img/soloff.png" alt="свет"> 5<img id="img_lamp5" src="img/soloff.png" alt="свет"> 6<img id="img_lamp6" src="img/soloff.png" alt="свет"> 7<img id="img_lamp7" src="img/soloff.png" alt="свет"> 8<img id="img_lamp8" src="img/soloff.png" alt="свет"> <br> 9<img id="img_lamp9" src="img/soloff.png" alt="свет"> 10<img id="img_lamp10" src="img/soloff.png" alt="свет"> 11<img id="img_lamp11" src="img/soloff.png" alt="свет"> 12<img id="img_lamp12" src="img/soloff.png" alt="свет"> 13<img id="img_lamp13" src="img/soloff.png" alt="свет"> 14<img id="img_lamp14" src="img/soloff.png" alt="свет"> 15<img id="img_lamp15" src="img/soloff.png" alt="свет"> 16<img id="img_lamp16" src="img/soloff.png" alt="свет"> <br> <input type="button" id="set_button1" value="вкл"> <input type="button" id="set_button2" value="вкл"> <input type="button" id="set_button3" value="вкл"> <input type="button" id="set_button4" value="вкл"> <input type="button" id="set_button5" value="вкл"> <br> <input type="button" id="set_button6" value="вкл"> <input type="button" id="set_button7" value="вкл"> <input type="button" id="set_button8" value="вкл"> <input type="button" id="set_button9" value="вкл"> <input type="button" id="set_button10" value="вкл"> <br> <input type="button" id="set_button11" value="вкл"> <input type="button" id="set_button12" value="вкл"> <input type="button" id="set_button13" value="вкл"> <input type="button" id="set_button14" value="вкл"> <input type="button" id="set_button15" value="вкл"> <br> <input type="button" id="set_button16" value="вкл"> <br> <input id="auto" type="checkbox" >авто</> <input type="button" id="btnr" value="Получить"> <input type="button" id="reset" value="Очистить"> <img class="wait" src="img/1421.png" alt="autoread.." > <!-- <input type="button" id="test" value="Auto"> --> </div> <!-- id frm --> </body> </html> <!-- --> PHP код:
PHP код:
Последний раз редактировалось alexval2007; 10.12.2013 в 18:46. Причина: обновление |
![]() |
![]() |
![]() |
#58 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Смешалось в кучу кони, люди..
|
![]() |
![]() |
![]() |
#59 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() PHP код:
PHP код:
и т.д. и т.п. в общем каша сплошная Последний раз редактировалось andr128; 09.12.2013 в 16:10. |
![]() |
![]() |
![]() |
#60 | |
Member
Регистрация: 05.11.2012
Сообщений: 63
Вес репутации: 0 ![]() |
![]()
цитирую сам себя делал то по аналогии спросить некого
Цитата:
$o[] значит это из шлюза то есть данные полученные из ардуино так? $a["r9"] это тогда из HTML ? Предполагалось что $button1 это кнопка из HTML php $a["button1"] = $write_bit_array[0]; хотя наверно надои на оборот $write_bit_array[0] = $a["button1"]; По HTML Код HTML:
//=============================== // обработка событий кнопок //=============================== $(function() { $('*').click(function(){ switch (this.id) { case 'r0set' : getjsondata(0, $("#ri0").val(), 1 ); break; ............................................................................ case 'r8set' : getjsondata(8, $("#ri8").val(), 1 ); break; case 'set_button1' : getjsondata(9, setonoff(this.value), 1 ); break;//Обработка нажатия кнопки button1 //=========================================== // обмен с сервером //=========================================== // Обратное преобразование gdata = JSON.parse(data); $("#r9").val(gdata.r9); $("#button1").val(gdata.button1);//незнаю нужно ли это что делает эта строка? //я так понимаю что преобразовует JSON в gdata а нужно ли это нам и для чего? <!-- ========================================================= HTML CODE ========================================================= <div id="thumb"> </div><br> --> <input type="button" id="set_button1" value="вкл">//кнопка в WEB Вкл/Выкл Последний раз редактировалось alexval2007; 09.12.2013 в 18:24. |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 5 (пользователей: 0 , гостей: 5) | |
|
|