Nguyên văn bởi aaahhhh
Xem bài viết
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
-
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ếtmua 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
-
đú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ẻNguyên văn bởi chikichita Xem bài viếtBoaoboarrd 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
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
-
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=StartNguyê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ứ 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
-
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.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?
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?
Có bác nào chửa được không?
Comment
-
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.Nguyên văn bởi ga_kon Xem bài viếtMong 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?
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
-
Cảm ơn bác! ^^Nguyên văn bởi yamailuk Xem bài viếtPhầ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
-
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
Bài viết mới nhất
Collapse
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
Hôm qua, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -

Comment