Thông báo

Collapse
No announcement yet.

Sim900 điều khiển thiết bị, cần mọi người giúp đỡ...........

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Sim900 điều khiển thiết bị, cần mọi người giúp đỡ...........

    Chào các bạn, như tiêu đề, mình bị một vấn đề như thế này: Mình đã điều khiển gửi dữ liệu từ máy xuống pic hiển thị lcd (ok), điều khiển pic gửi lệnh qua Sim900 để gửi tin nhắn về điện thoại mình (ok). Nhưng đưa 2 code vào với nhau, mình test trên terminal , LCD thì hiển thị ok, nhưng pic gửi lên terminal toàn text lỗi... Có bạn đã mách rằng bị lỗi boud , khung truyền... nhưng nếu bị vậy thì không đúng, mình test riêng cho nó nhắn tin được rồi mà, nhưng đưa gộp với lcd, 2 thằng này lại không chịu....Bác nào đi qua đi lại, quăng cho em ít lời vàng ngọc nhé.. thank nhiều nhiều

  • #2
    bạn up cái code lên để mọi người xem!
    hãy làm theo cách của bạn!

    Comment


    • #3
      Vấn đề trên mình đã xử lý được rồi, trên terminal hiện rõ ràng, nhưng mình lại bị tiếp một vấn đề như thế này....sim chỉ gửi lại mình một tin nhắn, còn sau không được nữa, mặc dù trên terminal hiển thị lệnh gửi từ pic lên sim rất rõ ràng, và giống lệnh gửi tin nhắn đầu tiên...Click image for larger version

Name:	ffff.jpg
Views:	1
Size:	57.7 KB
ID:	1390457
      void gsm_config()
      {
      printf("ATE1"); //echo on
      putc(13);//enter CR
      delay_ms(1000);//
      printf("AT");
      putc(13);//enter CR
      delay_ms(1000);
      delay_ms(4000);
      printf("AT\n\r");+
      delay_ms(1000);
      printf("AT\n\r");
      delay_ms(1000);
      printf("AT\n\r");
      delay_ms(1000);
      printf("AT\n\r");
      delay_ms(1000);
      printf("AT+CMGF=1\n\r");
      delay_ms(500);
      printf("AT+CMGF=1\n\r");// che do van ban,=0(che do PUD)
      delay_ms(1000);
      printf("AT&W\n\r");// lenh luu cau hinh cho modul sim
      delay_ms(1500);
      printf("AT+CMGS=\"0984546273\"\r");
      delay_ms(2000);
      printf("CAU HINH XONG !");
      putc(13);
      putc(0x1A);
      delay_ms(1000);
      //===========
      lcd_gotoxy(1,1);
      lcd_putc("DA GUI TIN NHAN !!!");
      }
      void gui_thong_bao(unsigned char thong_bao)
      {
      putchar(13);
      printf("AT+CMGS=\"0984546273\"\r");
      delay_ms(2000);
      if (thong_bao==1) {printf("KHOI DONG ");}
      else if(thong_bao==2) {printf("OK ");}
      else if(thong_bao==3) {printf("LOI");}
      putc(13);
      putc(0x1A);
      // putc(26);
      delay_ms(500);
      lcd_gotoxy(1,1);
      lcd_putc("OK! ");
      //lcd_gotoxy(1,2);
      // lcd_putc(" ");
      }

      Comment


      • #4
        Nguyên văn bởi alohaspk Xem bài viết
        Vấn đề trên mình đã xử lý được rồi, trên terminal hiện rõ ràng, nhưng mình lại bị tiếp một vấn đề như thế này....sim chỉ gửi lại mình một tin nhắn, còn sau không được nữa, mặc dù trên terminal hiển thị lệnh gửi từ pic lên sim rất rõ ràng, và giống lệnh gửi tin nhắn đầu tiên...
        Có vẻ giữa hai lần nhắn tin bạn để thời gian trễ hơi nhỏ...
        Hình như sau khi gửi 1 tin nhắn thành công SIM900 sẽ báo lại cho MCU biết: ..REG.. gì gì đó..
        Nên chờ có phản hồi này rồi hãy gửi tin tiếp theo.
        Hôm nay trời nắng chang chang.
        Mèo con đi học chẳng mang thứ gì.
        Chỉ mang một cái bút chì.
        Và mang một mẩu bánh mì con con.

        Comment


        • #5
          Thank bác, vấn đề thứ 2 em đã giải quyết được, vấn đề tiếp theo là ngắt uart, em có tham khảo một code của một bác trên diễn đàn mình, nhưng sim gửi cho pic, ở đây em dùng sim 900A. Em test trên terminal khi nhắn tin tới modul sim thì nó trả về chuỗi bắt đầu bằng: (+CMT ... . em đã sửa code gốc đôi chút. Nhưng vẫn không có tín hiệu hồi đáp từ pic gửi lên lcd(báo có tin nhắn). em up code lại. Bác nào đi qua giúp em, chân thành cảm ơn....
          #include <18f4550.h>
          #device icd=true
          #DEVICE ADC=10
          #fuses HS,NOWDT,NOPROTECT,NOLVP,CPUDIV1
          #use delay(clock=20000000)
          #include <stdio.h>
          #include <string.h>
          #include <stdlib.h>
          #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,stream=SENSOR)
          unsigned char sms[150];
          char c=0x00,c1=0x00,c2=0x00,c3=0x00,c4=0x00,c5=0x00;
          //c5=0x00;
          int8 new_sms=0,i=0,j=0,vi_tri,dk;
          #DEFINE START PIN_A5
          #DEFINE RS PIN_E2
          #DEFINE RW PIN_E1
          #DEFINE E PIN_E0
          #DEFINE OUTPUT_LCD OUTPUT_D
          #include "lcd.c"
          #int_RDA
          void RDA_isr(void)
          {
          c=getc();
          if(c=='+') c1=c;
          if(c=='C') c2=c;
          if(c=='M') c3=c;
          if(c=='T') c4=c;
          if(c==':') c5=c;
          if(c1=='+' && c2=='C' && c3=='M' && c4=='T' && c5==':') new_sms=1;//&& c5=='I'
          if((c!=13)&&(c!=10)){sms[i]=c; i++;}
          }
          void Cho_SIM900(void)
          {
          //lcd_init();

          lcd_putc("\fDE TAI MON HOC\n");
          lcd_putc("DIEU KHIEN THIET BI - SMS");
          delay_ms(2000);
          lcd_putc("\nGSM initializing");
          delay_ms(2000);
          lcd_putc("\nPlease wait.......");
          delay_ms(2000);
          lcd_putc("\n..to init SIM900A");
          delay_ms(2000);
          lcd_putc("\nPlease wait.......");
          delay_ms(2000);
          lcd_putc("\n..to init SIM900A");
          delay_ms(2000);
          lcd_putc("\nPlease wait.......");
          delay_ms(2000);
          lcd_putc("\n..to init SIM900A");

          }
          void gsm_config()
          {
          printf("ATE1"); //echo on
          putc(13);//enter CR
          delay_ms(1000);//
          printf("AT");
          delay_ms(1000);//
          printf("AT+IPR=9600\n\r");
          putc(13);//enter CR
          delay_ms(1000);
          delay_ms(4000);
          printf("AT\n\r");+
          delay_ms(1000);
          printf("AT\n\r");
          delay_ms(1000);
          printf("AT\n\r");
          delay_ms(1000);
          printf("AT\n\r");
          delay_ms(1000);
          printf("AT+CMGF=1\n\r");
          delay_ms(500);
          printf("AT+CMGF=1\n\r");// che do van ban,=0(che do PUD)
          delay_ms(1000);
          printf("AT&W\n\r");// lenh luu cau hinh cho modul sim
          delay_ms(1000);
          printf("AT+CNMI=1\n\r");// thong bao co tin nhan den

          /* delay_ms(1500);
          printf("AT+CMGS=\"0984546273\"\r");
          delay_ms(2000);
          printf("CAU HINH XONG !");
          putc(13);
          putc(0x1A);
          delay_ms(1000);*/
          //===========
          lcd_gotoxy(1,1);
          lcd_putc("CAU HINH XONG !!!");
          }
          void gui_thong_bao(unsigned char thong_bao)
          {
          putchar(13);
          putchar(13);
          delay_ms(2000);
          printf("AT+CMGS=\"0984546273\"\r");
          delay_ms(2000);
          if (thong_bao==1) {printf("KHOI DONG ");}
          else if(thong_bao==2) {printf("OK ");}
          else if(thong_bao==3) {printf("LOI");}
          putc(13);
          putc(0x1A);
          // putc(26);
          delay_ms(500);
          lcd_gotoxy(1,1);
          lcd_putc("OK! ");
          //lcd_gotoxy(1,2);
          // lcd_putc(" ");
          }
          void reset()
          {
          i=0;
          new_sms=0;
          c=0x00,c1=0x00,c2=0x00,c3=0x00,c4=0x00,c5=0x00;
          for(j=0;j<90;j++) //Xoa sms[]
          {sms[j]=0;}
          }
          void delete_sms()
          {
          putchar(13);
          printf("AT+CMGD=1,4\r\n");//delete all message
          delay_ms(500);
          }
          void dieu_khien(unsigned char thiet_bi)
          {
          if(
          ( sms[vi_tri+0]==thiet_bi)&&
          ((sms[vi_tri+1]=='O')||(sms[vi_tri+1]=='o'))&&
          ((sms[vi_tri+2]=='N')||(sms[vi_tri+2]=='n')))
          {
          if(thiet_bi=='1') output_high(PIN_B4);
          }
          if(
          ( sms[vi_tri+0]==thiet_bi)&&
          ((sms[vi_tri+1]=='O')||(sms[vi_tri+1]=='o'))&&
          ((sms[vi_tri+2]=='F')||(sms[vi_tri+2]=='f')))
          {
          if(thiet_bi=='1') output_low(PIN_B4);
          }
          }
          void main()
          {

          lcd_init();
          delay_ms(200);
          enable_interrupts(int_rda);
          enable_interrupts(global);
          SET_TRIS_B(0B00000011);
          OUTPUT_B(0X00);
          output_low(PIN_B4);
          delay_ms(100);
          Cho_SIM900();
          gsm_config();
          gui_thong_bao(1);
          reset();
          delete_sms();
          reset();
          lcd_putc("\fDO AN TOT NGHIEP\n");
          delay_ms(500);
          lcd_putc("\nDOI LENH DIEU KHIEN");
          while(true)
          {
          delay_ms(5000);
          if(new_sms==1)
          {
          reset();
          lcd_gotoxy(1,1);
          lcd_putc("TIN NHAN MOI !!!");
          printf("AT+CMGR=1\r\n");
          delay_ms(2000);
          // lenh dieu khien nam trong khoang sms[75]~sms[90]
          for(i=75;i<90;i++)
          {
          // tach lenh
          if(
          ((sms[i]=='1')||(sms[i]=='2')||(sms[i]=='3')||(sms[i]=='4'))&&
          ((sms[i+1]=='O')||(sms[i+1]=='o'))&&
          ((sms[i+2]=='N')||(sms[i+2]=='n')||(sms[i+2]=='F')||(sms[i+2]=='f')))
          {
          lcd_gotoxy(1,2);
          lcd_putc(sms[i+0]);
          lcd_putc('-');
          lcd_putc(sms[i+1]);
          lcd_putc(sms[i+2]);
          vi_tri=i;
          dk=sms[i+0];
          dieu_khien(dk);
          delete_sms();
          gui_thong_bao(2);
          break;
          }
          }
          if(i==90)
          {
          lcd_gotoxy(1,2);
          lcd_putc("lenh DK loi ");
          delete_sms();
          delay_ms(1000);
          gui_thong_bao(3);
          }
          reset();
          new_sms=0;
          }
          }
          }


          /*
          puts(34); // Gui len may tinh chuoi ky tu
          putchar(34);
          //putchar(13); // Ki tu xuong dong trong bang ma ASCII
          sprintf(str,"deptraiquaxa");
          puts(str); // Gui len may tinh chuoi ky tu
          */

          Comment


          • #6
            Nguyên văn bởi alohaspk Xem bài viết
            Thank bác, vấn đề thứ 2 em đã giải quyết được, vấn đề tiếp theo là ngắt uart, em có tham khảo một code của một bác trên diễn đàn mình, nhưng sim gửi cho pic, ở đây em dùng sim 900A. Em test trên terminal khi nhắn tin tới modul sim thì nó trả về chuỗi bắt đầu bằng: (+CMT ... . em đã sửa code gốc đôi chút. Nhưng vẫn không có tín hiệu hồi đáp từ pic gửi lên lcd(báo có tin nhắn). em up code lại. Bác nào đi qua giúp em, chân thành cảm ơn....
            Tại sao C5=';' , là 'I' chứ???
            Thuật toán không hay lắm.

            Nên phân biệt hai chế độ:
            1- Chế độ chờ lệnh từ GSM: Ở chế độ này mọi chuỗi ký tự (có ý nghĩa) từ GSM->PIC đều bắt đầu từ '+' và kết thúc bởi #13, hoặc #10 cũng được (<CR><LF>).
            2- Chế độ đọc nội dung tin nhắn, nội dung tin nhắn là ngẫu nhiên không có Form quy định cụ thể (chẳng hạn gặp tin nhắn rác). Nhưng ta luôn biết chắc toàn bộ nội dung tin nhắn sẽ được GSM truyền ra sau lệnh "AT+CMGR=.." trong vòng 1 - 2 giây gì đó.

            Code dưới là thuật toán của chế độ 1, bạn tự thêm vào chế độ 2 nhé (dựa vào new_sms=1 ý...)
            Code:
            unsigned char GSM_BTnhan[100];//Nhan toi da 100 ky tu.
            unsigned char GSM_index=0;
            void RDA_isr(void){// GSM 
            	unsigned char KT_GSM;
            	unsigned int i;
            	KT_GSM=getc();
            	if(KT_GSM==13){
            		if(strncmp(GSM_BTnhan,"+CMTI",5)==0){//Co tin nhan den
            			new_sms=1;//Bao có tin nhan đen	
            			//Xoa Ban tin nhan:
            			for(i=0;i<GSM_index;i++)GSM_BTnhan[i]=0;
            			GSM_index=0;
            		}				
            	}
            	else{
            		GSM_BTnhan[GSM_index]=KT_GSM;
            		if(GSM_BTnhan[0]=='+')GSM_index++;// Chi khi nao nhan duoc ky tu '+', moi bat dau nhan cac ky tu tiep theo vao GSM_BTnhan
            		if(GSM_index>=100)GSM_index=0;//De phong truong hop tran Ban tin nhan
            		
            	}
            }
            Chú ý: Sau khi xử lý xong lệnh từ tin nhắn, nếu không có nhu cầu lưu nội dung tin nhắn thì nên xoá tin nhắn đó đi, để tin nhắn mới đến luôn nằm ở ngăn số 1... cho dễ xử lý lệnh AT+CMGR=i, i là ngăn chứa tin nhắn mới.... và tránh cho SIM bị đầy tin nhắn.
            Last edited by Acxen_lupine; 18-12-2013, 12:59.
            Hôm nay trời nắng chang chang.
            Mèo con đi học chẳng mang thứ gì.
            Chỉ mang một cái bút chì.
            Và mang một mẩu bánh mì con con.

            Comment


            • #7
              Bác giải thích dùm em chỗ này tí nhé... em cũng thắc mắc hôm qua giờ. đó là đọc trên AT-commant thì nó cũng ghi là +CMTI:, nhưng khi em test trên terminal nó bắt đầu chuỗi sim trả về là +CMT: như thế này này...Click image for larger version

Name:	gsm.jpg
Views:	1
Size:	16.5 KB
ID:	1390528

              Comment


              • #8
                Nguyên văn bởi alohaspk Xem bài viết
                Bác giải thích dùm em chỗ này tí nhé... em cũng thắc mắc hôm qua giờ. đó là đọc trên AT-commant thì nó cũng ghi là +CMTI:, nhưng khi em test trên terminal nó bắt đầu chuỗi sim trả về là +CMT: như thế này này...[ATTACH=CONFIG]80222[/ATTACH]
                Nếu thế bạn nên cắt bớt điều kiện so sánh đi chẳng hạn chỉ so sánh 3 ký tự đầu tiên thôi, hoặc trong thuật toán mình đã gửi thay lại đoạn này:
                if(strncmp(GSM_BTnhan,"+CM",3)==0){//Co tin nhan den

                Mình mới làm với SIM900D, SIM548 và vài MODERM khác... chưa làm với SIM900A, nhưng chắc chúng nó cũng giống nhau. Có một điều không hiểu: Sao chưa thấy bạn gửi lệnh đọc tin (AT+CMGR=..) mà đã thấy có nội dung tin nhắn chui ra nhỉ???
                Hôm nay trời nắng chang chang.
                Mèo con đi học chẳng mang thứ gì.
                Chỉ mang một cái bút chì.
                Và mang một mẩu bánh mì con con.

                Comment


                • #9
                  vâng, thank bác, lệnh AT+CMGR= ở trong while(true) trong main á bác.... Ở đoạn này nè
                  while(true)
                  {
                  delay_ms(5000);
                  if(new_sms==1)
                  {
                  reset();
                  lcd_gotoxy(1,1);
                  lcd_putc("TIN NHAN MOI !!!");
                  printf("AT+CMGR=1\r\n");
                  delay_ms(2000);

                  Comment


                  • #10
                    Code:
                    #define       buffer_size    160
                    unsigned char GSM_BTnhan[buffer_size];//Nhan toi da 100 ky tu.
                    unsigned char GSM_index=0x00;
                    unsigned char KT_GSM;
                    char kt[] = "+CMT";
                    char *ptr;
                    //*++*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+**+*+**
                    #include "lcd.c"
                    #int_RDA
                    void RDA_isr(void){// GSM 
                    unsigned int   i;
                       KT_GSM=getc();
                       if(KT_GSM==13)
                       {     
                             if (GSM_index >= buffer_size)  
                                {GSM_index=0;}
                             else{ GMS_BTnhan[GSM_index++]=KT_GSM;}//luu ky ty tin nhan
                             
                             ptr=strstr(GMS_BTnhan,kt);//tim ky tu chuoi kt trong GMS_BTnhan
                             if(strncmp(GSM_BTnhan,kt,4)==0)
                             {//Co tin nhan den
                             new_sms=1;//Bao có tin nhan den   
                             //Xoa Ban tin nhan:
                             for(i=0;i<GSM_index;i++)GSM_BTnhan[i]=0;
                             GSM_index=0;
                             }            
                       }
                       else{
                          GSM_BTnhan[GSM_index]=KT_GSM;
                          if(GSM_BTnhan[0]=='+')GSM_index++;// Chi khi nao nhan duoc ky tu '+', moi bat dau nhan cac ky tu tiep theo vao GSM_BTnhan
                          if(GSM_index>=100)GSM_index=0;//De phong truong hop tran Ban tin nhan
                          
                       }
                    }
                    Em sửa lại như thế này được không bác, vì phía trên sau khi nó nhận về, không có chỗ nào lưu vào... em tạo buffer lưu vào , rùi sau đó tìm , sau đó nữa mới so sánh chuỗi... bác thấy hợp lý không...

                    Comment


                    • #11
                      Nguyên văn bởi alohaspk Xem bài viết
                      Code:
                      void RDA_isr(void){// GSM 
                      unsigned int   i;
                         KT_GSM=getc();
                         if(KT_GSM==13)
                         {     
                               if (GSM_index >= buffer_size)  
                                  {GSM_index=0;}
                               else{ GMS_BTnhan[GSM_index++]=KT_GSM;}//luu ky ty tin nhan
                               
                               ptr=strstr(GMS_BTnhan,kt);//tim ky tu chuoi kt trong GMS_BTnhan
                               if(strncmp(GSM_BTnhan,kt,4)==0)
                               {//Co tin nhan den
                               new_sms=1;//Bao có tin nhan den   
                               //Xoa Ban tin nhan:
                               for(i=0;i<GSM_index;i++)GSM_BTnhan[i]=0;
                               GSM_index=0;
                               }            
                         }
                         else{
                            GSM_BTnhan[GSM_index]=KT_GSM;
                            if(GSM_BTnhan[0]=='+')GSM_index++;// Chi khi nao nhan duoc ky tu '+', moi bat dau nhan cac ky tu tiep theo vao GSM_BTnhan
                            if(GSM_index>=100)GSM_index=0;//De phong truong hop tran Ban tin nhan
                            
                         }
                      }
                      Cái đoạn màu đỏ đặt đó không ổn
                      Hôm nay trời nắng chang chang.
                      Mèo con đi học chẳng mang thứ gì.
                      Chỉ mang một cái bút chì.
                      Và mang một mẩu bánh mì con con.

                      Comment


                      • #12
                        Vẫn không được bác ơi, em thử cả ngày nay , bế tắc quá.......

                        Comment


                        • #13
                          Nguyên văn bởi alohaspk Xem bài viết
                          Vẫn không được bác ơi, em thử cả ngày nay , bế tắc quá.......
                          Vấn đề của bạn là gì? Đã nhận được báo hiệu có tin nhắn mới chưa???
                          Hàm ngắt UART đã hoạt động tốt chưa? Muốn thử, cứ nhận được bất kỳ ký tự nào cũng báo lên LCD là OK.
                          Sau đó kiểm tra về byte phải là ký tự gì đó mới báo lên LCD--ok.
                          Việc này để đỡ tốn tiền tin nhắn bạn có thể dùng PC để TEST.

                          Sau khi đường truyền và những hàm cơ bản đã có cái khung tốt, bạn mới xây dựng thuật toán cho nó.

                          Mình đã làm: Nhận tin nhắn, Kiểm tra số điện thoại nhắn đến xem có trong danh sách thuê bao cho phép không? thực hiện lệnh SMS(bao nhiêu lệnh cũng được), Phản hồi lại cho thuê bao kết quả thực hiện lệnh SMS...

                          Mình thấy chương trình của bạn có nhiều điểm không hay... Ở dạng tạm chấp nhận được thôi. Túm lại cứ làm chắc từng bước, từng bước... sẽ ra vấn đề. Đừng vội xây dựng thuật toán cả chương trình!
                          Hôm nay trời nắng chang chang.
                          Mèo con đi học chẳng mang thứ gì.
                          Chỉ mang một cái bút chì.
                          Và mang một mẩu bánh mì con con.

                          Comment


                          • #14
                            mình cũng đang làm sim908c với PIC18F26K22 , đèn status , RI sáng , netlight chớp tắt rồi nhưng mà mình gữi lệnh AT từ PIC qua sim vẫn không được , bằng chứng là mình gọi vào sim vẫn không được , đang bế tắc lắm rồi, bác nào rỗi add yh giúp mình với kuteboy_idiotboy@yahoo.com :9

                            Comment


                            • #15
                              bạn kiểm tra lại chân kích nguồn đi, nguồn sim có đúng chưa... thường thì chỉ cần chân kích nguồn thì sim đã hoạt động, mình gọi là đổ chuông rồi...

                              Comment

                              Về tác giả

                              Collapse

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

                              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