久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2393|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

關(guān)于利用GSM模塊上傳三路溫濕度數(shù)據(jù)到onenet 沒任何反應(yīng),僅僅可以發(fā)短信

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:279295 發(fā)表于 2020-4-29 21:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
利用GSM模塊上傳數(shù)據(jù)到onenet,沒任何反應(yīng),僅僅可以發(fā)短信。

程序:
  1. #include "reg52.h"
  2. #include "type.h"
  3. #include <string.h>
  4. #include <stdio.h>

  5. bit flag;
  6. uchar model=0;  //模式

  7. uchar temp1H=35; //上限值
  8. uchar temp2H=35; //上限值
  9. uchar temp3H=35; //上限值
  10. uchar hum1H=50; //上限值
  11. uchar hum2H=50; //上限值
  12. uchar hum3H=50; //上限值
  13. uchar temp_L=10;
  14. uchar  date[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  15. unsigned char temp1=0,temp2=0,temp3=0,hum1=0,hum2=0,hum3=0;
  16. #define SEND_MESSA_TO_YOUR "at+cmgs=\"185*****436\"\r\n"    //填入你手上的手機(jī)號(hào)碼 不是板子的

  17. #include "LCD1602.H"
  18. sbit set=P1^6;
  19. sbit add=P3^5;
  20. sbit min=P3^4;
  21. sbit beep=P3^6;
  22. sbit led1=P1^2;
  23. sbit led2=P1^1;

  24. /***********模擬開關(guān)*********************/
  25. sbit CS_4052=P1^0;
  26. sbit B_4052=P1^1;
  27. sbit A_4052=P1^2;
  28. uchar fen=0; //定時(shí)發(fā)送短信計(jì)時(shí)
  29. bit sendFlag=0; //發(fā)送短信標(biāo)志
  30. void delay1ms(unsigned int ms)//延時(shí)1毫秒(不夠精確的)
  31. {unsigned int i,j;
  32.    for(i=0;i<ms;i++)
  33.     for(j=0;j<100;j++);
  34. }
  35. void Uart_Send(uchar dat)     //發(fā)送一字節(jié)   
  36. {
  37.   SBUF=dat;
  38.   while(!TI);
  39.   TI=0;
  40. }
  41. //發(fā)送一串字符到串口
  42. void Uart_Sends(char* data_at)  
  43. {
  44.     unsigned char cnt=0;
  45.     while(*(data_at+cnt))    //判斷一串?dāng)?shù)據(jù)是否結(jié)束
  46.     {
  47.         Uart_Send(*(data_at+cnt));
  48.         cnt++;
  49.     }
  50.         
  51. }
  52. void select(uchar num)        
  53. {
  54.   if(num==1)     //上位機(jī)串口使能
  55.     {
  56.      CS_4052=0;
  57.      B_4052=0;
  58.      A_4052=0;
  59.     }
  60. else  if(num==2)     //CC2530串口使能
  61.     {
  62.      CS_4052=0;
  63.      B_4052=0;
  64.      A_4052=1;
  65.     }
  66. else  if(num==3)     //wifi串口使能
  67.     {
  68.      CS_4052=0;
  69.      B_4052=1;
  70.      A_4052=0;
  71.     }
  72. }
  73. //發(fā)送短信函數(shù)
  74. void Send_SMS(void)
  75. {
  76.     uchar yy=1;
  77.    
  78.   select(1);    //GSM模塊串口使能
  79.     delay1ms(100);
  80.     Uart_Sends("AT+CMGF=1\r");//設(shè)置中文方式發(fā)送
  81.     delay1ms(800);
  82.     delay1ms(1000);
  83.     Uart_Sends(SEND_MESSA_TO_YOUR);                                                                                             
  84.     delay1ms(1000);   
  85. switch (yy)                                             
  86. {                                                
  87.    
  88.   case 1 : Uart_Sends("wendu1=\r\n");                                   
  89.            Uart_Send(temp1/10+0x30);
  90.            Uart_Send(temp1%10+0x30);
  91.            Uart_Sends(",wendu2=");
  92.            Uart_Send(temp2/10+0x30);
  93.            Uart_Send(temp2%10+0x30);
  94.            Uart_Sends(",wendu3=");
  95.            Uart_Send(temp3/10+0x30);
  96.            Uart_Send(temp3%10+0x30);
  97.            Uart_Sends("\r\nshidu1=\r\n");     
  98.            Uart_Send(hum1/10+0x30);
  99.            Uart_Send(hum1%10+0x30);
  100.        Uart_Sends(",shidu2=");
  101.            Uart_Send(hum2/10+0x30);
  102.            Uart_Send(hum2%10+0x30);
  103.        Uart_Sends(",shidu3=");
  104.            Uart_Send(hum3/10+0x30);
  105.            Uart_Send(hum3%10+0x30);
  106.            Uart_Sends("\r\n");
  107.              if(temp1>temp1H)
  108.              {
  109.               Uart_Sends("wendu1 Warning!!!\r\n");
  110.              }
  111.              if(temp2>temp2H)
  112.              {
  113.               Uart_Sends("wendu2 Warning!!!\r\n");
  114.              }
  115.              if(temp3>temp3H)
  116.              {
  117.               Uart_Sends("wendu3 Warning!!!\r\n");
  118.              }
  119.              if(hum1>hum1H)
  120.              {
  121.               Uart_Sends("hum1 Warning!!!\r\n");
  122.              }
  123.              if(hum2>hum2H)
  124.              {
  125.               Uart_Sends("hum2 Warning!!!\r\n");
  126.              }
  127.              if(hum3>hum3H)
  128.              {
  129.               Uart_Sends("hum3 Warning!!!\r\n");
  130.              }            
  131.             
  132.          
  133.             break;    //煙霧報(bào)警
  134.   
  135. }                                       
  136.                              
  137.    Uart_Send(0x1a);//以0x1a來結(jié)束,表示內(nèi)容結(jié)束,發(fā)送短信            
  138.                                                                   
  139. }
  140. void key()
  141.   {
  142.         uchar i=0;
  143.         
  144.    if(!set) //檢測設(shè)置按鍵
  145.      {
  146.       while(!set);
  147.       model++;
  148.      if(model==7)
  149.       {
  150.          model=0;   
  151.       }
  152.      if(model==1)//設(shè)置模式顯示
  153.      {
  154.           WRITE_LCD1602_COM(0x80);
  155.         for(i=0;i<16;i++)
  156.             WRITE_LCD1602_DAT(DIS_TAB3[i]);
  157.             WRITE_LCD1602_COM(0x80+0x40);
  158.             for(i=0;i<16;i++)
  159.             WRITE_LCD1602_DAT(DIS_TAB4[i]);
  160.             WRITE_LCD1602_COM(0x80+0x40+9);
  161.      }
  162. else if(model==0)//正常模式顯示
  163.   {   
  164.           WRITE_LCD1602_COM(0x80);
  165.       for(i=0;i<16;i++)
  166.             WRITE_LCD1602_DAT(DIS_TAB1[i]);
  167.             WRITE_LCD1602_COM(0x80+0x40);
  168.             for(i=0;i<16;i++)
  169.             WRITE_LCD1602_DAT(DIS_TAB2[i]);
  170.             WRITE_LCD1602_COM(0x80+0x40+9);   
  171.     }
  172.      
  173.    
  174.       
  175.      }
  176. else  if(!add)
  177.     {
  178.      while(!add);
  179.      switch(model)
  180.        {
  181.      case 1: if(temp1H<90) temp1H++;        break;
  182.        case 2: if(temp2H<90) temp2H++;        break;
  183.        case 3: if(temp3H<90) temp3H++;       break;
  184.          case 4: if(hum1H<90)  hum1H++;        break;
  185.          case 5: if(hum2H<90)  hum2H++;        break;
  186.          case 6: if(hum3H<90)  hum3H++;        break;
  187.          default:break;
  188.        }

  189.    
  190.     }
  191. else   if(!min)
  192.     {
  193.      while(!min);
  194.      switch(model)
  195.        {
  196.        case 1: if(temp1H>0) temp1H--;        break;
  197.        case 2: if(temp2H>0) temp2H--;        break;
  198.        case 3: if(temp3H>0) temp3H--;        break;
  199.          case 4: if(hum1H>0)  hum1H--;        break;
  200.          case 5: if(hum2H>0)  hum2H--;        break;
  201.          case 6: if(hum3H>0)  hum3H--;        break;
  202.          default:break;
  203.        }

  204.    
  205.     }
  206.   
  207.   }
  208.      void beeps()
  209.       {
  210.       static uchar count;
  211.       count++;
  212.       if(count<20)
  213.       beep=0;
  214. else if(count<40)      
  215.       beep=1;
  216.       else
  217.       count=0;
  218.       
  219.       }

  220.      void control()//報(bào)警檢測控制
  221.       {
  222.      static uchar flagsend=0;
  223.             
  224.           if((temp1>temp1H)||(temp2>temp2H)||(temp3>temp3H)||
  225.                 (hum1>hum1H)||(hum2>hum2H)||(hum3>hum3H))     //溫度控制
  226.            {
  227.              beeps();      // 蜂鳴器報(bào)警
  228.               if(flagsend==0)   
  229.                 {   
  230.                flagsend=1;            
  231.                   Send_SMS();
  232.                 }
  233.            }
  234.         else  
  235.            {
  236.                 flagsend=0;     
  237.             beep=1;// 關(guān)閉蜂鳴器報(bào)警
  238.            }

  239.       }


  240.    void rec_cc2530data()
  241.    {
  242.         select(2);      //選通 cc2530 串口
  243.      ES=1; //串口接收中斷
  244.     if(date[0]==0x55)
  245.     {   
  246.          date[0]=0;
  247.          if((date[1]==1)&&(date[2]+date[3]==date[4]))      //第一路    數(shù)據(jù)
  248.          {
  249.           date[1]=0;
  250.           temp1=date[2];
  251.           hum1=date[3];
  252.          }
  253.           if((date[1]==2)&&(date[2]+date[3]==date[4]))  //第二路
  254.          {
  255.          date[1]=0;
  256.           temp2=date[2];
  257.           hum2=date[3];
  258.          }
  259.           if((date[1]==3)&&(date[2]+date[3]==date[4]))   //第三路
  260.          {
  261.           date[1]=0;
  262.           temp3=date[2];
  263.           hum3=date[3];
  264.          }
  265.      
  266.     }
  267.    
  268.    }
  269.      

  270.      
  271.        void GsmInit()
  272.    {
  273.        select(1); //打開上位機(jī)串口
  274.           Uart_Sends("AT+CIPCLOSE\r\n");
  275.        delay1ms(1000);
  276.        Uart_Sends("AT+CIPSHUT\r\n");
  277.        delay1ms(1000);
  278.        Uart_Sends("AT+CREG?\x00D\x00A");
  279.        delay1ms(1000);
  280.     Uart_Sends("AT+CGATT=1\r\n");
  281.     delay1ms(1000);
  282.          Uart_Sends("AT+CIPRXGET=0\r\n");
  283.       delay1ms(1000);
  284.           Uart_Sends("AT+CSTT=CMIOT\r\n");
  285.          Uart_Sends("AT+CIICR\r\n");
  286.       delay1ms(1000);
  287.          Uart_Sends("AT+CIPRXGET=0\r\n");
  288.     delay1ms(1000);
  289.     Uart_Sends("AT+CIPQRCLOSE=1\r\n");
  290.     delay1ms(1000);
  291.     Uart_Sends("AT+CIPMODE=0\r\n");
  292.          delay1ms(1000);
  293.          Uart_Sends("AT+CIPSTART=\"TCP\",\"183.230.40.33\",\"80\"\r\n");//此處修改你建立服務(wù)器的IP,服務(wù)器端口號(hào)8080
  294.          delay1ms(1000);
  295. //         Uart_Sends("AT+CIPSEND\r\n");
  296. //         delay1ms(1000);
  297.          //SendString("POST /devices/1100286/datapoints?type=3 HTTP/1.1\r\n");
  298.     Uart_Sends("POST /devices/594614665/datapoints?type=3 HTTP/1.1\r\n");    //將數(shù)字修改為自己的設(shè)備id)
  299.     delay1ms(1000);            
  300.    
  301.     Uart_Sends("Host:api.heclouds點(diǎn)com\r\n");
  302.     delay1ms(1000);                    
  303.    
  304.     //SendString("api-key:DcQ2NF=70s3j3=mlsFXfPod1kaY=\r\n");
  305.     Uart_Sends("api-key:  RJPjiEVRqddktp2OP5mbn=qiWWI=\r\n");     //這里填寫自己的API-key
  306.     delay1ms(1000);        
  307.    }
  308. void SendGprsData(uchar *sendbuf)   //ADD
  309. {
  310.         unsigned char lenbuf[4];
  311.         select(1);
  312.         delay1ms(1000);   
  313.         Uart_Sends("AT+CIPSEND=");
  314.         sprintf(lenbuf,"%d",strlen(sendbuf));
  315.         Uart_Sends(lenbuf);
  316.         Uart_Sends("\r\n");
  317.         delay1ms(1000);
  318.         Uart_Sends(sendbuf);
  319.       Uart_Sends(0x1a);//ADD
  320.       delay1ms(1000);
  321. }

  322.      void Timer0Init(void)        //50毫秒@11.0592MHz
  323. {
  324.      
  325.     TMOD &= 0xF0;        //設(shè)置定時(shí)器模式
  326.     TMOD |= 0x01;        //設(shè)置定時(shí)器模式
  327.     TL0 = 0x00;        //設(shè)置定時(shí)初值
  328.     TH0 = 0x4C;        //設(shè)置定時(shí)初值
  329.     TF0 = 0;        //清除TF0標(biāo)志
  330.     TR0 = 1;        //定時(shí)器0開始計(jì)時(shí)
  331.     ET0=1;
  332. }
  333. bit SendGprsFlag=0,GsmInitFlag=0;
  334. idata unsigned char SendBuf[26];
  335. void main()
  336. {
  337.    
  338.     init_1602();
  339.     TMOD=0x20;     // T1定時(shí)方式2
  340.     SCON=0x40;//串行工作 方式1
  341.     PCON=0x00; //不加倍
  342.     TH1=TL1=0xfd; //定時(shí)器1賦初值  保證波特率9600
  343.     TR1=1;          //開定時(shí)器1
  344.     REN=1;          //允許串口接收
  345.     ES=1;          //打開串口中斷
  346.     EA=1;          //開總中?

  347.     Timer0Init();
  348.     GsmInit();    //sim800初始化 ******ADD
  349.     while(1)
  350.     {
  351.          
  352.          control(); //控制
  353.          key();   //按鍵功能
  354.        if(SendGprsFlag==1)     //1一分鐘向GPRS發(fā)送一次數(shù)據(jù)
  355.            {
  356.                  SendGprsFlag=0;    //ADD
  357.               if(GsmInitFlag==0)
  358.               {
  359.                  GsmInitFlag=1;
  360.                   GsmInit();         //H1:50%,
  361.               }                     //T1:23C,
  362.               sprintf(SendBuf,"T1:%2dC,T2:%2dC,T2:%2dC\r\n",(unsigned int)temp1,(unsigned int)temp2,(unsigned int)temp3);
  363.               SendGprsData(SendBuf);
  364.               delay1ms(1000);
  365.               sprintf(SendBuf,"H1:%2%%,H2:%2%%,H3:%2%%\r\n",(unsigned int)hum1,(unsigned int)hum2,(unsigned int)hum3);
  366.               SendGprsData(SendBuf);
  367.            }

  368.           if(sendFlag==0)
  369.             {
  370.             sendFlag=1; //代表已經(jīng)發(fā)過一次,不在發(fā)了
  371.             Send_SMS(); //發(fā)送短信
  372.             }
  373.          
  374.               rec_cc2530data();
  375.               delay1ms(50);
  376.             display();
  377.     }

  378. }

  379.    void serial()interrupt 4        //串口中斷服務(wù)函數(shù)
  380.   {
  381.    static uchar j;
  382.    
  383.    if(!RI);
  384.    RI=0;            //清楚接收完畢標(biāo)志
  385.    date[j]=SBUF;
  386.    if(date[0]==0x55)  //判斷接收到的第一位為傳感器所發(fā)數(shù)據(jù)
  387.       j++;
  388.   else
  389.       j=0;


  390.    if(j==5)           //接收傳感器所發(fā)數(shù)據(jù)字節(jié)
  391.      j=0;
  392.   
  393.    
  394.   }
  395. void timer0() interrupt  1 //50ms
  396. {
  397. static uchar count=0,miao=0;
  398.    
  399.   TL0 = 0x00;        //設(shè)置定時(shí)初值
  400.     TH0 = 0x4C;        //設(shè)置定時(shí)初值
  401.   count++;
  402.     if(count>20)
  403.     {
  404.         count=0;
  405.        miao++;
  406.         if(miao>60)
  407.         {
  408.             
  409.             miao=0;
  410.           fen++;
  411.             if(fen>=1)
  412.             {
  413.               fen=0;
  414.                 sendFlag=0;
  415.             }
  416.         }
  417.         
  418.     }

  419. }
復(fù)制代碼

接收機(jī)-程序.zip

102.51 KB, 下載次數(shù): 9

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄色片在线免费看 | 欧美天堂在线观看 | 亚洲一区二区视频在线观看 | 欧美日韩国产一区二区三区 | 成人在线观看免费 | 二区三区在线观看 | 午夜精品影院 | 中文天堂在线观看 | 日韩欧美在线视频 | 欧美成人猛片aaaaaaa | 亚洲中午字幕 | 一区二区在线观看免费视频 | 国产成人免费视频网站高清观看视频 | 国产激情精品 | 青青草av | 国产日韩精品久久 | 日本午夜精品 | 日韩视频在线观看一区二区 | 欧美一区二区三区四区视频 | 69亚洲精品 | 国产不卡在线观看 | 成年男女免费视频网站 | 国产精品性做久久久久久 | 中文字幕一区二区三区精彩视频 | 欧美一区2区三区4区公司二百 | 国产伦一区二区三区视频 | 免费精品| 精品一区二区在线观看 | 69性欧美高清影院 | 不卡av电影在线播放 | 91精品国产综合久久久久 | 综合久久综合久久 | 欧美影院 | 国产亚洲网站 | 精品一区二区三区四区 | 岛国毛片 | 中文字幕日韩一区 | 最新日韩在线视频 | 亚洲欧美日韩精品久久亚洲区 | 一区二区三区精品在线视频 | 一区二区三区视频 |