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 aaahhhh Xem bài viết
    M32E (ATMEGA32 - Ethernet board) - www.tme.vn - Linh kien dien tu, Kit Phat trien, Mach nap, GSM, GPS, GPRS, RF,
    mua board này rồi mua thêm mạch nạp avr nữa àh bạn, sao không thấy nó có LCD nhỉ

    Comment


    • http://sinhvien947.no-ip.org/ct/dien...-internet.html
      Nguyên văn bởi tueminh204 Xem bài viết
      Đề tài quá hay. Có bạn nào bán kit này không nhì? mình muốn mua một bộ về vọc. Rất vui làm quen với anh chị trong diễn đàn. học hỏi và giao lưu

      Điện tử viễn thông - Hutech

      Comment


      • Boaoboarrd này dùng làm demo nên chưa có tích hợp gì vào đấy hết, mình mua về tự bỏ gia vi vô xào nấu thôi, trên mạch các chân vi điều khiển được đặt riêng theo từng PORT rồi nên dùng ok, mà khuyên mọi ng nên tự làm mạch thì hay hơn. hihi
        Nguyên văn bởi tueminh204 Xem bài viết
        mua board này rồi mua thêm mạch nạp avr nữa àh bạn, sao không thấy nó có LCD nhỉ

        Điện tử viễn thông - Hutech

        Comment


        • Nguyên văn bởi chikichita Xem bài viết
          Boaoboarrd này dùng làm demo nên chưa có tích hợp gì vào đấy hết, mình mua về tự bỏ gia vi vô xào nấu thôi, trên mạch các chân vi điều khiển được đặt riêng theo từng PORT rồi nên dùng ok, mà khuyên mọi ng nên tự làm mạch thì hay hơn. hihi
          đúng rồi, tự làm, muốn thêm mắm muối tùy ý, không thiếu ko dư, ngon - bổ - rẻ

          Comment


          • Có bạn nào có Soure của DS1307 và DS18B20 của đề tài này không? Cho mình xin với! Cảm ơn các bạn rất nhiều!

            Comment


            • ===== Day la code cua phan webpage.h ======
              "<form method=\"POST\" action=\"\">"
              "<p align=\"left\"><input type=\"checkbox\" name=\"Led1\" value=\"ON\"%RL1>LED 1</p>"
              "<p align=\"left\"><input type=\"checkbox\" name=\"Led2\" value=\"ON\"%RL2>LED 2</p>"
              "<p align=\"left\"><input type=\"checkbox\" name=\"Led3\" value=\"ON\"%RL3>LED 3</p>"
              "<p align=\"left\"><input type=\"checkbox\" name=\"Led4\" value=\"ON\"%RL4>LED 4</p>"
              "<p align=\"left\"><input type=\"checkbox\" name=\"Led5\" value=\"ON\"%RL4>LED 5</p>"
              "<p align=\"center\"><input type=\"submit\" value=\"Start\" name=\"btnSubmit\" />"

              ===== Day la ham trong http.c ======
              //Ham xu ly mot goi thuoc giao thuc HTP nhan duoc
              void httpDataIn(unsigned char *buffer,unsigned int bufferLen,struct tcpSession *pSession)
              {
              // Bo qua cac phan tren . . .
              .
              .
              .
              //If POST method
              }else if(httpSessionTable[i].rqst.method == HTTP_REQUEST_POST){
              //Update POS data
              if(findstr(PSTR("SUB=Submit"),buffer,bufferLen) != -1){
              tmpRelaySts = 0x00;
              if((findstr(PSTR("LED1=ON"),buffer,bufferLen)) != -1){
              LED1=1;
              }else{
              LED1=0;
              }
              if((findstr(PSTR("LED2=ON"),buffer,bufferLen)) != -1){
              LED2=1;
              }else{
              LED2=0;
              }
              if((findstr(PSTR("LED3=ON"),buffer,bufferLen)) != -1){
              LED3=1;
              }else{
              LED3=0;
              }
              if((findstr(PSTR("LED4=ON"),buffer,bufferLen)) != -1){
              LED4=1;
              }else{
              LED4=0;
              }
              if((findstr(PSTR("LED5=ON"),buffer,bufferLen)) != -1){
              LED5=1;
              }else{
              LED5=0;
              }
              //UpdateCtrlSts(tmpRelaySts); ---> Voi LED chung ta co can ham nay khong?
              //Send HTTP data
              HTTPSend(http_header1,sizeof(http_header1)-1,pSession,0);
              HTTPSend(Page1,sizeof(Page1)-1,pSession,1);
              httpSessionTable[i].status = HTTP_STATUS_IDLE;
              return;
              }else if(findstr(PSTR("APPLY=Apply"),buffer,bufferLen) != -1){
              HTTPSend(http_header1,sizeof(http_header1)-1,pSession,0);
              HTTPSend(Page1,sizeof(Page1)-1,pSession,1);
              httpSessionTable[i].status = HTTP_STATUS_IDLE;
              }else{
              HTTPSend("",0,pSession,0);
              }
              }
              }
              }
              //--------------------------------------------------------------------------------------

              Mấy bác cho em hỏi - ý tưởng trên Led đơn vậy được không? Và có phải cần viết macro để Set và Clear để đặt trạng thái cho LED không? Mong các bác giúp đỡ, vẫn chưa điều khiển LED được ! Cả một chặn đường gian nan . . .! T~T . . .

              Comment


              • Nguyên văn bởi ga_kon Xem bài viết
                ===== Day la code cua phan webpage.h ======
                "<form method=\"POST\" action=\"\">"
                "<p align=\"left\"><input type=\"checkbox\" name=\"Led1\" value=\"ON\"%RL1>LED 1</p>"
                "<p align=\"left\"><input type=\"checkbox\" name=\"Led2\" value=\"ON\"%RL2>LED 2</p>"
                "<p align=\"left\"><input type=\"checkbox\" name=\"Led3\" value=\"ON\"%RL3>LED 3</p>"
                "<p align=\"left\"><input type=\"checkbox\" name=\"Led4\" value=\"ON\"%RL4>LED 4</p>"
                "<p align=\"left\"><input type=\"checkbox\" name=\"Led5\" value=\"ON\"%RL4>LED 5</p>"
                "<p align=\"center\"><input type=\"submit\" value=\"Start\" name=\"btnSubmit\" />"

                ===== Day la ham trong http.c ======
                //Ham xu ly mot goi thuoc giao thuc HTP nhan duoc
                void httpDataIn(unsigned char *buffer,unsigned int bufferLen,struct tcpSession *pSession)
                {
                // Bo qua cac phan tren . . .
                .
                .
                .
                //If POST method
                }else if(httpSessionTable[i].rqst.method == HTTP_REQUEST_POST){
                //Update POS data
                if(findstr(PSTR("SUB=Submit"),buffer,bufferLen) != -1){
                tmpRelaySts = 0x00;
                if((findstr(PSTR("LED1=ON"),buffer,bufferLen)) != -1){
                LED1=1;
                }else{
                LED1=0;
                }
                if((findstr(PSTR("LED2=ON"),buffer,bufferLen)) != -1){
                LED2=1;
                }else{
                LED2=0;
                }
                if((findstr(PSTR("LED3=ON"),buffer,bufferLen)) != -1){
                LED3=1;
                }else{
                LED3=0;
                }
                if((findstr(PSTR("LED4=ON"),buffer,bufferLen)) != -1){
                LED4=1;
                }else{
                LED4=0;
                }
                if((findstr(PSTR("LED5=ON"),buffer,bufferLen)) != -1){
                LED5=1;
                }else{
                LED5=0;
                }
                //UpdateCtrlSts(tmpRelaySts); ---> Voi LED chung ta co can ham nay khong?
                //Send HTTP data
                HTTPSend(http_header1,sizeof(http_header1)-1,pSession,0);
                HTTPSend(Page1,sizeof(Page1)-1,pSession,1);
                httpSessionTable[i].status = HTTP_STATUS_IDLE;
                return;
                }else if(findstr(PSTR("APPLY=Apply"),buffer,bufferLen) != -1){
                HTTPSend(http_header1,sizeof(http_header1)-1,pSession,0);
                HTTPSend(Page1,sizeof(Page1)-1,pSession,1);
                httpSessionTable[i].status = HTTP_STATUS_IDLE;
                }else{
                HTTPSend("",0,pSession,0);
                }
                }
                }
                }
                //--------------------------------------------------------------------------------------

                Mấy bác cho em hỏi - ý tưởng trên Led đơn vậy được không? Và có phải cần viết macro để Set và Clear để đặt trạng thái cho LED không? Mong các bác giúp đỡ, vẫn chưa điều khiển LED được ! Cả một chặn đường gian nan . . .! T~T . . .
                Thứ 1: các hàm findstr của bạn sẽ không bao giờ trả giá trị -1 vì chuỗi đó không có, theo code webpage thì là Led1=ON vv, SUB=Submit phải sửa theo web thành btnSubmit=Start
                Thứ 2: có thể viết hàm hoặc define trong file chính (dùng các hàm chuẩn sbi và cbi)
                Last edited by yamailuk; 26-02-2013, 21:38.

                Comment


                • LED1, LED2.. ở đây bạn đặt là có ý định gì, ở đây mình thấy bạn đặt Biến mà quên set bit PORT vậy thì làm sao mà led nó tắt mở
                  Nếu dùng LED1 làm biến dùng để checked lên wed thì phía dưới bạn phải thêm dòng lệnh
                  if((findstr(PSTR("LED5=ON"),buffer,bufferLen)) != -1)
                  {
                  LED5=1;
                  sbi(PORTB,2);
                  }else{
                  LED5=0;
                  cbi(PORT,2);
                  }
                  if(findstr(PSTR("SUB=Submit"),buffer,bufferLen) != -1) // wedpage thi đặt là btnSubmit = Start mà kiểm tra là SUB=Submit thì sao kiểm
                  tmpRelaySts = 0x00; //có phải bạn đặt cho 1 PORT nào đó,

                  Nguyên văn bởi ga_kon Xem bài viết
                  ===== Day la code cua phan webpage.h ======
                  "<form method=\"POST\" action=\"\">"
                  "<p align=\"left\"><input type=\"checkbox\" name=\"Led1\" value=\"ON\"%RL1>LED 1</p>"
                  "<p align=\"left\"><input type=\"checkbox\" name=\"Led2\" value=\"ON\"%RL2>LED 2</p>"
                  "<p align=\"left\"><input type=\"checkbox\" name=\"Led3\" value=\"ON\"%RL3>LED 3</p>"
                  "<p align=\"left\"><input type=\"checkbox\" name=\"Led4\" value=\"ON\"%RL4>LED 4</p>"
                  "<p align=\"left\"><input type=\"checkbox\" name=\"Led5\" value=\"ON\"%RL4>LED 5</p>"
                  "<p align=\"center\"><input type=\"submit\" value=\"Start\" name=\"btnSubmit\" />"

                  ===== Day la ham trong http.c ======
                  //Ham xu ly mot goi thuoc giao thuc HTP nhan duoc
                  void httpDataIn(unsigned char *buffer,unsigned int bufferLen,struct tcpSession *pSession)
                  {
                  // Bo qua cac phan tren . . .
                  .
                  .
                  .
                  //If POST method
                  }else if(httpSessionTable[i].rqst.method == HTTP_REQUEST_POST){
                  //Update POS data
                  if(findstr(PSTR("SUB=Submit"),buffer,bufferLen) != -1){
                  tmpRelaySts = 0x00;
                  if((findstr(PSTR("LED1=ON"),buffer,bufferLen)) != -1){
                  LED1=1;
                  }else{
                  LED1=0;
                  }
                  if((findstr(PSTR("LED2=ON"),buffer,bufferLen)) != -1){
                  LED2=1;
                  }else{
                  LED2=0;
                  }
                  if((findstr(PSTR("LED3=ON"),buffer,bufferLen)) != -1){
                  LED3=1;
                  }else{
                  LED3=0;
                  }
                  if((findstr(PSTR("LED4=ON"),buffer,bufferLen)) != -1){
                  LED4=1;
                  }else{
                  LED4=0;
                  }
                  if((findstr(PSTR("LED5=ON"),buffer,bufferLen)) != -1){
                  LED5=1;
                  }else{
                  LED5=0;
                  }
                  //UpdateCtrlSts(tmpRelaySts); ---> Voi LED chung ta co can ham nay khong?
                  //Send HTTP data
                  HTTPSend(http_header1,sizeof(http_header1)-1,pSession,0);
                  HTTPSend(Page1,sizeof(Page1)-1,pSession,1);
                  httpSessionTable[i].status = HTTP_STATUS_IDLE;
                  return;
                  }else if(findstr(PSTR("APPLY=Apply"),buffer,bufferLen) != -1){
                  HTTPSend(http_header1,sizeof(http_header1)-1,pSession,0);
                  HTTPSend(Page1,sizeof(Page1)-1,pSession,1);
                  httpSessionTable[i].status = HTTP_STATUS_IDLE;
                  }else{
                  HTTPSend("",0,pSession,0);
                  }
                  }
                  }
                  }
                  //--------------------------------------------------------------------------------------

                  Mấy bác cho em hỏi - ý tưởng trên Led đơn vậy được không? Và có phải cần viết macro để Set và Clear để đặt trạng thái cho LED không? Mong các bác giúp đỡ, vẫn chưa điều khiển LED được ! Cả một chặn đường gian nan . . .! T~T . . .

                  Điện tử viễn thông - Hutech

                  Comment


                  • ^^,mình chỉ nêu ý tưởg thôi, chứ cũng chưa chính xác code,sr các bác nghe!^^. . .giờ mình hiểu rồi! Thanks các bác!
                    À, nếu trên mạch có thêm DS1307 và trên webpage mình muốn thêm 1 cái ô để hẹn giờ bật/tắt led thì làm thế nào các pác?
                    Các pác nêu ý tưởng là được rồi?

                    Comment


                    • Nguyên văn bởi ga_kon Xem bài viết
                      ^^,mình chỉ nêu ý tưởg thôi, chứ cũng chưa chính xác code,sr các bác nghe!^^. . .giờ mình hiểu rồi! Thanks các bác!
                      À, nếu trên mạch có thêm DS1307 và trên webpage mình muốn thêm 1 cái ô để hẹn giờ bật/tắt led thì làm thế nào các pác?
                      Các pác nêu ý tưởng là được rồi?
                      Bạn phải đọc và xử lý được chuỗi nhận về, bạn xem lại project này thầy tâm có viết khá chi tiết.
                      Tạo textbox, đọc dữ liệu từ textbox được thì bạn làm gì với nó cũng được hết.

                      Comment


                      • Mong các pác giúp đỡ!
                        Ở trang 43 : http://www.dientuvietnam.net/forums/...2/index43.html
                        Có hướng dẫn sửa hai hàm HTTPSend() và HTTPDataIn() để điều khiển thiết bị, nhưng sao mình chép vào thì báo lỗi tùm lum thế này?
                        Click image for larger version

Name:	Loi.jpg
Views:	1
Size:	113.9 KB
ID:	1374974
                        Có bác nào chửa được không?

                        Comment


                        • Nguyên văn bởi ga_kon Xem bài viết
                          Mong các pác giúp đỡ!
                          Ở trang 43 : http://www.dientuvietnam.net/forums/...2/index43.html
                          Có hướng dẫn sửa hai hàm HTTPSend() và HTTPDataIn() để điều khiển thiết bị, nhưng sao mình chép vào thì báo lỗi tùm lum thế này?
                          [ATTACH=CONFIG]61338[/ATTACH]
                          Có bác nào chửa được không?
                          Thì các hàm GetRelayState, uInt2Strlen, LM35_TYP_DECODE,GetADC chưa dc viết, và các biến chưa được khai báo.
                          Bạn đọc kỹ lại hướng dẫn của thầy trước khi copy nhé

                          Comment


                          • Phần phụ lục: Hướng dẫn sửa lỗi đăng nhập
                            Trong file http.c, hàm httpDataIn có khai báo chuỗi prog_char Auth_str[]="Authorization";
                            Bạn chuyển chuỗi này ra đầu hàm dưới các #include
                            Theo giải thích của thầy thì lỗi này do trình dịch của AVR Studio

                            Comment


                            • Nguyên văn bởi yamailuk Xem bài viết
                              Phần phụ lục: Hướng dẫn sửa lỗi đăng nhập
                              Trong file http.c, hàm httpDataIn có khai báo chuỗi prog_char Auth_str[]="Authorization";
                              Bạn chuyển chuỗi này ra đầu hàm dưới các #include
                              Theo giải thích của thầy thì lỗi này do trình dịch của AVR Studio
                              Cảm ơn bác! ^^

                              Comment


                              • Trong hàm HTTPSend() có đoạn:

                                i = 0;
                                while(i<MAX_SEGMENT_SIZE)
                                {
                                tmpChr = pgm_read_byte(progdata + srcDataIdx++);
                                if(tmpChr == '%')
                                {
                                if( (i + 9) > MAX_SEGMENT_SIZE) //Neu khong con du cho trong tren buffer
                                {
                                srcDataIdx--;
                                break;
                                }
                                tmpVar = pgm_read_byte(progdata + srcDataIdx + 3) - 0x30; //Tiep tuc neu du cho trong tren buffer
                                if((pgm_read_byte(progdata + srcDataIdx) == 'R') && (pgm_read_byte(progdata + srcDataIdx + 1) == 'L'))
                                {
                                if(GetRelayState(tmpVar))
                                {//checked
                                dataBuffer[i++] = ' ';dataBuffer[i++] = 'c';dataBuffer[i++] = 'h';dataBuffer[i++] = 'e';
                                dataBuffer[i++] = 'c';dataBuffer[i++] = 'k';dataBuffer[i++] = 'e';dataBuffer[i++] = 'd';
                                }
                                srcDataIdx += 4;
                                }
                                else
                                {// Neu truong hop khac:
                                dataBuffer[i++] = tmpChr;
                                }
                                }
                                else
                                {
                                dataBuffer[i++] = tmpChr; //Copy data to tcp data buffer
                                }
                                if(srcDataIdx==dataLen)
                                {
                                break;
                                }
                                }

                                Mấy anh cho em hỏi cái này nhe:
                                1/ Biến srcDataIdx dùng để làm gì?
                                2/ if( (i + 9) > MAX_SEGMENT_SIZE) ... Tại sao chổ này phải là (i+9) ?
                                3/ tmpVar = pgm_read_byte(progdata + srcDataIdx + 3) - 0x30; ... Cái dòng này thì em mù tịt luôn??? Hai cái số +3 và 0x30 là sao vậy mấy anh?
                                4/ if((pgm_read_byte(progdata + srcDataIdx) == 'R') && (pgm_read_byte(progdata + srcDataIdx + 1) == 'L')) ...Nếu chổ này dùng cho Relay1 thì phải như vậy không mấy anh: if((pgm_read_byte(progdata + srcDataIdx) == 'R') && (pgm_read_byte(progdata + srcDataIdx + 1) == 'L') && (pgm_read_byte(progdata + srcDataIdx + 2) == '1')) ???
                                5/ srcDataIdx += 4; ... còn cái này là gì vậy nhỉ?
                                Do em mới học năm nhất, thấy cái này hay hay định làm đồ án mà sao khó hiểu quá? mong mấy anh giúp em! Cảm ơn trước nhe!

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • bqviet
                                  Trả lời cho Đấu tắt điện cho máy tính bảng
                                  bởi bqviet
                                  Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                                  06-12-2025, 17:17
                                • nguyendinhvan
                                  Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                                  bởi nguyendinhvan
                                  Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                                  05-12-2025, 19:59
                                • afrendly
                                  Trả lời cho Đấu tắt điện cho máy tính bảng
                                  bởi afrendly
                                  Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                                  04-12-2025, 01:27
                                • nick22
                                  Trả lời cho Máy điện châm ?
                                  bởi nick22
                                  Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                                  01-12-2025, 13:23
                                Đang tải...
                                X