Thông báo

Collapse
No announcement yet.

Giao thức TCP/IP và Web server với AVR

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nguyên văn bởi dorothy Xem bài viết
    sau 1 ngày test thử tình hình là vẫn còn hiện tượng bị treo tcp có lần không bị treo thì phải submit 2 đến 3 lần nó mới nhận. Hịc. Bạn [MENTION=294379]hoangtek[/MENTION] còn fix code chỗ nào không chỉ mình với. Cái lỗi treo này mãi không xử lý triệt để dc
    Bạn sửa lại 2 dòng này:
    if(tcpOver++==5){TCPInit();httpInit();ethInit();i= 0;}
    else return;
    i=0 chứ không phải tcpOver=0 vì khi reset lại thì phải mở một cổng để chờ kết nối.
    Nhớ thêm dòng if(tcpOver)TCPCreateSession(80,httpDataIn); vào vòng lặp chính.
    Mình sửa nhiều trong chưong trình rồi nên không biết còn thiếu chỗ nào không, bạn cứ thử rồi cho mình biết để kiểm tra lại.

    Comment


    • Nguyên văn bởi hoangtek Xem bài viết
      Bạn sửa lại 2 dòng này:
      if(tcpOver++==5){TCPInit();httpInit();ethInit();i= 0;}
      else return;
      i=0 chứ không phải tcpOver=0 vì khi reset lại thì phải mở một cổng để chờ kết nối.
      Nhớ thêm dòng if(tcpOver)TCPCreateSession(80,httpDataIn); vào vòng lặp chính.
      Mình sửa nhiều trong chưong trình rồi nên không biết còn thiếu chỗ nào không, bạn cứ thử rồi cho mình biết để kiểm tra lại.
      Không được bạn ak. Lần này còn bị đứng nhanh hơn Có lẽ do phần code của mình đã bỏ đi phần nhận gói tin = ngắt ngoài. Mình cũng không dùng DHCP. có lẽ giờ phải quay lại cách khi nào cần vào web thì dùng truyền udp reset chip rồi vào bằng web vậy. Hịc

      Comment


      • Các a cho e hỏi làm thế nào để lưu được trạng thái bật tắt của role trong trang wed của thầy Tâm?

        Comment


        • Click image for larger version

Name:	1.png
Views:	1
Size:	108.5 KB
ID:	1395414
          Có nhiều bạn hỏi mình cái giao diện như attach file.

          Đây là mã của nó, nap code rồi lấy lại file html nhé. Mình đang test trên atmega128 nên lười chạy lại module atmega132.

          HTML Code:
          PROGMEM char Page1[] = {"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
          "<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><title>AVR web server</title><style type=\"text/css\">"
          ".on { border:1; width: 20px; height: 20px; background: blue; text-align: center; padding: 0px; color: #fff; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px;}.button{width: 100%;}"
          ".off { border:1; width: 20px; height: 20px; background: white; text-align: center; padding: 0px; color: #fff; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px;} .button2{width: 80px;}"
          "</style></head><body bgcolor=\"#d0d0d0\" align=\"center\" style=\"padding: 75px 0px 0px 0px;\"><table bgcolor=\"#2F4F4F\" id=\"root\" border=\"1\" align=\"center\" width=\"868px\"><tbody>"
          "<tr><td colspan=\"4\" height=\"100\"><b><div align=\"center\" style=\"font-size:25pt; color:#FFFFFF\">REMOTE CONTROL AVR WEBSERVER</div></b></td></tr>"
          "<tr align=\"left\"><td height=\"25\" valign=\"top\" width=\"75%\"><b><div style=\"color:#FFFFFF\">&nbsp;Devices</div></b></td><td height=\"25\" valign=\"top\" width=\"auto\"><b><div style=\"color:#FFFFFF\">&nbsp;Sensors (<sup>o</sup>C)</div></b></td></tr>"
          "<tr><td height=\"auto\" valign=\"top\" width=\"200\"><p></p><div><form method=\"POST\" action=\"\"><font color=\"#FFFFFF\"><table width=\"95%\" border=\"1\" align=\"center\" id=\"table_device\">"
          "<tr align=\"center\"><td width=\"15%\">Names</td><td width=\"9%\">Now States</td><td width=\"11%\">Control Panel</td><td>Command</td><td width=\"15%\">Countdown (Minutes)</td><td width=\"11%\">Timer Status</td><td width=\"15%\">Auto ON (<sup>o</sup>C)</td></tr>"
          "<tr align=\"center\"><td>Device 1</td><td><div class=\"%CL1\"></div></td><td><input class=\"button\" type=\"submit\" value=\"%RS1\" name=\"RL1\"></td><td><input type=\"text\" name=\"Auto1\"/></td><td>%CD1</td><td>%TS1</td><td>%TA1</td></tr>"
          "<tr align=\"center\"><td>Device 2</td><td><div class=\"%CL2\"></div></td><td><input class=\"button\" type=\"submit\" value=\"%RS2\" name=\"RL2\"></td><td><input type=\"text\" name=\"Auto2\"/></td><td>%CD2</td><td>%TS2</td><td>%TA2</td></tr>"
          "<tr align=\"center\"><td>Device 3</td><td><div class=\"%CL3\"></div></td><td><input class=\"button\" type=\"submit\" value=\"%RS3\" name=\"RL3\"></td><td><input type=\"text\" name=\"Auto3\"/></td><td>%CD3</td><td>%TS3</td><td>%TA3</td></tr>"
          "<tr align=\"center\"><td>Device 4</td><td><div class=\"%CL4\"></div></td><td><input class=\"button\" type=\"submit\" value=\"%RS4\" name=\"RL4\"></td><td><input type=\"text\" name=\"Auto4\"/></td><td>%CD4</td><td>%TS4</td><td>%TA4</td></tr>"
          "</table></font><p align=\"center\"><input class=\"button2\" type=\"submit\" value=\"Submit\" name=\"SUB\"></p></form></div></td><td height=\"auto\" align=\"center\" width=\"auto\"><div style=\"font-size:50pt; color:#FFFFFF\">%AD</div>"
          "</td></tr><tr><td colspan=\"4\" height=\"25\" width=\"auto\"><div align=\"center\" style=\"color:#FFFFFF\">Timezone: GMT+7. Current time <span>%TI</span></div></td></tr></tbody></table></body></html>"};
          #endif //WEBPAGE_H

          Comment


          • Share thêm 1 giao diện cho mọi người lựa chọn ^^!
            HTML Code:
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>AVR web server</title>
            </head>
            <link href="https://googledrive.com/host/0B72N5RrTAnASQVhUTWFXRzRGbGs" rel="stylesheet" type="text/css" />
            <div class="demo"><p>
             <form method="POST" action="">
            <table  border="0" width="975" cellpadding="0" cellspacing="0" align="center">
             <tbody>
              <tr>
               <td height="31" align="center">
                <div style="font-size:30pt; color:#F4FC8F"><strong>REMOTE  CONTROL AVR WEBSERVER</strong></div>
               </td>
              </tr>
             </tbody>
            </table>
            <table width="100%" cellpadding="0" cellspacing="0">
             <tbody>
              <tr>
               <td>
                <br>
                <div align="center">
                 <div width:975px; text-align:left">
                  <div style="padding:0px 15px 0px 15px" align="left">
                   <br>
                    <table   border: 1px solid #6581c1" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
                     <tbody>
                      <tr style="color: #9FF; border-left: 1px solid #FFFFFF; border-top: 1px solid #FFFFFF">
                       <td width="100%">
                        <div style="font-size:10pt"><strong>DESIGNER: Angels And Demons</strong></div>
                       </td>
                       <td nowrap="nowrap" style="padding:0px">
                         
                       </td>
                       </tr>
                      <tr style="color: #9FF; border-left: 1px solid #FFFFFF; border-top: 1px solid #FFFFFF">
                        <td><table border="1" width="28%" id="table1">
                          <tr>
                            <td width="143">Environment Sensors</td>
                            <td width="56">Value</td>
                            <td width="46">Unit</td>
                            </tr>
                          <tr>
                            <td>Ngoai Troi</td>
                            <td width="56">%AD0</td>
                            <td width="46"><sup>o</sup>C</td>
                            </tr>
                          <tr>
                            <td>Trong Nha - Tang 1</td>
                            <td width="56">%AD1</td>
                            <td width="46"><sup>o</sup>C</td>
                            </tr>
                          <tr>
                            <td>Trong Nha - Tang 2</td>
                            <td>%AD2</td>
                            <td><sup>o</sup>C</td>
                          </tr>
                          <tr>
                            <td>Toc Do Gio</td>
                            <td>%AD3</td>
                            <td>Km/h</td>
                          </tr>
                          <tr>
                            <td>Do Am Moi Truong</td>
                            <td>%AD4</td>
                            <td>%RH</td>
                          </tr>
                          <tr>
                            <td>Nhiet Do = SHT10</td>
                            <td>%AD5</td>
                            <td><sup>o</sup>C</td>
                          </tr>
                        </table></td>
                        <td nowrap="nowrap" style="padding:0px"></td>
                      </tr>
                     </tbody>
                    </table>
                    <br>
                    <table style="color: #000000; border: 1px solid #6581c1" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
                     <thead>
                      <tr valign="top">
                       <td style="color: #048C04" colspan="3"><strong><marquee>Remote control webserver with ATmega32</marquee></a></strong></td>
                      </tr>
                     </thead>
                     <tbody id="collapseobj_vietvbb_stats" style="">
                            <tr>
                       <td style="color: #0F6; border-left: 1px solid #FFFFFF; border-top: 1px solid #FFFFFF">
                        <table border="1" cellpadding="0" cellspacing="0" width="100%">
                         <tbody>
                          <tr style="font-size:12pt">      
                           <td style="padding: 5px 5px 5px 5px;" width="39%">
                            <div>
                             <strong>My Family</strong>
                            </div>
                           </td>
                           <td style="padding: 5px 5px 5px 5px;" width="15%">
                            <div>
                             <strong><center>Devices control</center></strong>
                            </div>
                           </td>
                           <td style="padding: 5px 5px 5px 5px;" width="15%">
                            <div>
                             <strong><center>
                             On/Off
                             </center></strong>
                            </div>
                           </td>
                           <td style="padding: 5px 5px 5px 5px;" width="16%"><strong><center>On/Off</center></strong></td>
                           <td style="padding: 5px 5px 5px 5px;" width="15%"><strong><center>On/Off</center></strong></td>
                          </tr>
                          <tr style="font:bold 12pt">      
                           <td style="padding: 5px 5px 5px 5px;" width="39%">
                           
                            <div id="vietvbb_topstats_s_content" style="display: block;">
                             <img style="border-style: dashed; border-width: 3px; border-color: #E3AAED" src="http://www.wallsave.com/wallpapers/570x760/demons/60665/demons-angels-and-free-images-fun-60665.jpg" width="347" height="314" />
                            </div>
                           </td>
                           
                           <td style="padding: 5px 5px 5px 5px;" width="15%">
                          
                            <div>
                            <p align="left">Den Cong</font><div class="onoffswitch"><input type="checkbox" name="RELAY1" value="ON" class="onoffswitch-checkbox" id="myonoffswitch"%RL1><label class="onoffswitch-label" for="myonoffswitch"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch2"%RL2><label class="onoffswitch-label" for="myonoffswitch2"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch3"%RL3><label class="onoffswitch-label" for="myonoffswitch3"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch4"%RL4><label class="onoffswitch-label" for="myonoffswitch4"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                         </div>
                           </td>
                           
                           <td style="padding: 5px 5px 5px 5px;" width="15%">
                           <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch5"%RL5><label class="onoffswitch-label" for="myonoffswitch5"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                           <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch6"6><label class="onoffswitch-label" for="myonoffswitch6"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                           <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch7"7><label class="onoffswitch-label" for="myonoffswitch7"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                           
                            <p align="center"><input type="submit" value="Submit" name="Start"></p>
                            
                            </td>
                           <td style="padding: 5px 5px 5px 5px;" width="16%">
                           <p align="left">Den Cong</font><div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch8"%RL8><label class="onoffswitch-label" for="myonoffswitch8"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch9"%RL9><label class="onoffswitch-label" for="myonoffswitch9"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch10"%RLA><label class="onoffswitch-label" for="myonoffswitch10"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch11"%RL1B><label class="onoffswitch-label" for="myonoffswitch11"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                           </td>
                           <td style="padding: 5px 5px 5px 5px;" width="15%">
                           <p align="left">Den Cong</font><div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch12"%RLC><label class="onoffswitch-label" for="myonoffswitch12"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch13"%RL1D><label class="onoffswitch-label" for="myonoffswitch13"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch14"%RLE><label class="onoffswitch-label" for="myonoffswitch14"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            <p align="left">Den cong<div class="onoffswitch"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch15"%RLF><label class="onoffswitch-label" for="myonoffswitch15"><div class="onoffswitch-inner"></div><div class="onoffswitch-switch"></div></label></div></p>
                            </td>
                          </tr>             
                         </tbody>
                        </table>            
                       </td>
                      </tr>         
                     </tbody>
                    </table>         
                    <br><br><br>
                 
                    <br><br><br>
                  
                    <p align="left">
                    <label name="Select"><font color="red">Select :</font></label>
                   <select name="Select" class="Select" id="Select" title="Select">
                     <option value="0" selected="selected">None</option>
                     <option value="1">Change pass</option>
                     <option value="2">Rename TB1</option>
                     <option value="3">Rename TB2</option>
                     <option value="4">Rename TB3</option>
                     <option value="5">Rename TB4</option>
                     <option value="6">Rename TB5</option>
                     <option value="7">Rename TB6</option>
                     <option value="8">Rename TB7</option>
                     <option value="9">Rename TB8</option>
                     <option value="10">Rename TB9</option>
                     <option value="11">Rename TB10</option>
                     <option value="12">Rename TB11</option>
                     <option value="13">Rename TB12</option>
                   </select>
                   <input name="pass" type="text" id="Passstr" value="" size="20" maxlength="15" />
            <input type="submit" value="Update" name="Change"></p>
            
               
                    <br><br><br>
                   
                    <br><br><br>
                    <div align="center"><font color="blue">Timezone: GMT+7. Current time <span>%TI</span>.</font></div>
                     <div align="center"><iframe src="http://free.timeanddate.com/clock/i3wl8o21/n1946/fn2/fs20/tcf90/pc9f0/ftbi/th2" frameborder="0" width="171" height="27"></iframe></div>
            
                     <br>
                    </div>
                   </div>
                  </div>
                   <br>
                   <div align="center">
                    <div align="center"><font color="#9FF">Angels And Demons</font></div>
                   </div>
                   
                 </td>
                </tr>
              </tbody>
            </table>
            </strong>
             </form>
             </div>
            </body>
            </html>
            Attached Files

            Comment


            • Mình làm trên Atmega32 chạy bình thường nhưng chuyển lên Atmega128 , thay đổi một số config cho phù thì ko chạy được, có bạn nào làm được rồi chỉ giúp mình với

              Comment


              • Nguyên văn bởi 123lazyboy Xem bài viết
                Mình làm trên Atmega32 chạy bình thường nhưng chuyển lên Atmega128 , thay đổi một số config cho phù thì ko chạy được, có bạn nào làm được rồi chỉ giúp mình với
                mình làm chạy bt mà? thay đổi phần uart0 thôi. chạy được luôn

                Comment


                • Hix, mình tắt luôn cả uart, chỉ đổi phần vector ngắt với config lại chân thôi mà ko chạy được, bạn share code cho mình với được ko

                  Comment


                  • Mình đã đọc hết luồng rùi, mà chưa thấy đề cập đến vấn đề board avr làm client, thầy Tâm cũng như các bạn có thể giải thích rõ đc ko? Ý mình là định dùng avr kết nối vào cổng rj45 của modem để đọc một số trạng thái của modem, ko bít có được ko? Trên máy tính có lệnh telnet vào modem vậy avr có thể làm thay việc này đc ko? Xin thầy và các bạn cho ý kiến. Thanks
                    hãy cố gắng dù vướn phải thất bại!!!!!!!!

                    Comment


                    • Mình cũng đọc hết luồng này, tuy nhiên mình muốn hỏi như sau:
                      Nhiều board AVR làm Slave và 1 board AVR tương tự làm Master thu thập số liệu của các Board AVR slave và Board Master này có chứa giao diện Web Sever hiển thị các trạng thái của các board slave kia.
                      Thầy và các bạn có thể trả lời giúp mình (Chân thành cảm ơn ah).
                      Không biết ký thế nào?

                      Comment


                      • Hello, đã có ai làm giao tiếp thêm với mmc hok thế? Cho mình hỏi chút được không?

                        Comment


                        • Có phần nào hướng dẫn cụ thể hơn việc cấu hình modem router ADSL để có thể kết nối đến MCUweb từ WAN không mọi người ơi......

                          Comment


                          • Ôi cực kỳ đơn giản mình đã làm được rồi. Sau khi các bạn build thành công MCUweb. Để kiểm tra ra WAN bằng cách như sau:

                            1/ Cấu hình NAT cho modem của các bạn. Modem nhà minh là TP-link thì theo hướng dẫn của link này Làm thế nào để mở ports trên TP-LINK ADSL Modem Router(Trendchip Solution) - Chào mừng đến với TP-LINK
                            + Để biết virtual cỉcuit các bạn xem ở thẻ status sẽ thấy PVC đang ở mấy và địa chỉ IP của router
                            + Ô đầu tiên Application các bạn đánh tên để phân biệt (đánh j cũng được). ô tiếp theo bỏ trống
                            + Startport = Endport (tùy vào các bạn chọn) thường là 80
                            + Local Ip: đánh địa chỉ IP mạch của các bạn vào
                            + save lại
                            2/ Nhờ bạn của các bạn đang chat trên fb hoặc yahoo kiểm tra thử bằng cách đánh địa chỉ ip của router : số port (vd: địa chỉ Ip router nhà mình là 123.20.4.72:80)
                            3/ Cảm nhận cùng bạn của các bạn nhé...^^

                            Chúc các bạn thành công!

                            Comment


                            • sao thấy TÂM không viết ra thành cuốn sách nhi được cuốn này thì rất hay

                              Comment


                              • thay cac ban chua co code va san pham hoan chinh toi up len cho moi nguoi dung luon chay rat on dinh netavr khanh-cuong

                                Comment

                                Về tác giả

                                Collapse

                                nttam79 Tìm hiểu thêm về nttam79

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X