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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4396|回復: 2
打印 上一主題 下一主題
收起左側

基于stc8a8k單片機的智能農業系統代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:512761 發表于 2020-1-22 13:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
設計用Stc8板子將溫濕度、光照強度等數據通過wifi模塊上傳到云平臺,代碼在下,可以使用。拋磚引玉,希望大佬多多上傳作品互幫互助

單片機源程序如下:
  1. #include        "stc8.h"
  2. #include         "stdio.h"
  3. #include        "config.h"
  4. #include        "delay.h"
  5. #include    "uart.h"
  6. #include    "display.h"
  7. #include    "ADC.h"
  8. #include    "DHT11.h"
  9. #include <string.h>


  10. #define uchar unsigned char
  11. #define uint unsigned int
  12. #define  ulint unsigned long int
  13. extern uchar xdata Rec_Buf[Buf_Max];

  14. /**********************
  15. 引腳別名定義
  16. ***********************/               
  17. sbit RST = P3^6;     //ESP8266復位引腳用IO口

  18. void esp8266();
  19. void Timer0Init(void);
  20. ulint HTTP_PostPkt(char *pkt,uchar *dsid, uchar *val);

  21. uint len=0;
  22. float val_test;
  23. uchar val_ok[5];
  24. char HTTP_Buf[400]="";
  25. uchar g_SEND[400] = " ";

  26. bit flag=0;
  27. uint num=0;

  28. uint ii=0;


  29. //uchar ATCWJAP[]="AT+CWJAP=\"OPPO A59m\",\"12345678\"\r\n";

  30. uchar ATCWJAP[]="AT+CWJAP=\"Netcore\",\"12345678\"\r\n";
  31. uchar ATRST[]="AT+RST\r\n";
  32. uchar ATCIPMUX[]="AT+CIPMUX=0\r\n";
  33. uchar ATCIPMODE[]="AT+CIPMODE=1\r\n";
  34. //uchar ATCIPSTART[]="AT+CIPSTART=\"TCP\",\"192.168.43.126\",5000\r\n";
  35. uchar ATCIPSTART[]="AT+CIPSTART=\"TCP\",\"ip\",80\r\n";
  36. uchar ATCIPSEND[]="AT+CIPSEND\r\n";
  37. uchar ATEXITCIPMODE[]="+++";
  38. uchar POST1[]="POST /devices/579828346/datapoints?type=3 HTTP/1.1\r\n";
  39. uchar POST2[]="api-key:8YGhUHuHNQODlsbk7YrimCE2Qow=\r\n";
  40. uchar POST3[]="Host:api.heclouds.com\r\n";
  41. uchar POST5[]="\r\n";
  42. uchar POST40[]="Content-Length:11\r\n";
  43. uchar POST60[]="{\"temp\":11}";
  44. uchar POST41[]="Content-Length:10\r\n";
  45. uchar POST61[]="{\"wet\":20}";
  46. uchar POST42[]="Content-Length:14\r\n";        
  47. uchar POST62[]="{\"light\":3333}";               
  48. uchar AT[]="AT\r\n";
  49. uchar ATCWMODE[]="AT+CWMODE=1\r\n";
  50. uchar numlist[]={
  51.                                 0x30,
  52.                                 0x31,
  53.                                 0x32,
  54.                                 0x33,
  55.                                 0x34,
  56.                                 0x35,
  57.                                 0x36,
  58.                                 0x37,
  59.                                 0x38,
  60.                                 0x39
  61. };

  62. uchar temp1[3];
  63. uchar humidity1[3];
  64. uchar photo1[4];
  65. uchar tempphoto1;
  66. uchar mnum,count,mark;


  67. sbit SDA = P7^6;  /* 數據線 */
  68. sbit SCL = P7^7;  /* 時鐘線 */


  69. void tm0()interrupt 1{
  70.         
  71.         ET0=0;
  72.         TH0 = 0xb7;
  73.         TL0 = 0xfe;
  74.         TF0 = 0;

  75.         count ++;
  76.         
  77.         if(count == 50){
  78.            mnum ++;
  79.            
  80.            count = 0;
  81.            //P6 = ~P6;
  82.             
  83.         }
  84.         
  85.         if(mnum==10){

  86.           mark=1;
  87.                
  88.         
  89.                 mnum=0;        
  90.         }
  91.         
  92.    ET0=1;
  93. }


  94. void espdelay(uint z){           //ms延時
  95.         uint x,y;
  96.         for(x = z; x > 0; x--)
  97.                 for(y = 829; y > 0 ; y--);
  98. }

  99. void uart3init(){
  100.         S3CON = 0x50;
  101.         T3H = 0xff;
  102.         T3L = 0xfe;
  103.         T4T3M = 0x08;

  104. }


  105. void uart3send1byte(uchar dat){
  106.         S3BUF = dat;
  107.         while(!(S3CON&0x02));
  108.         S3CON = S3CON | 0xfd;
  109.         espdelay(2);
  110. }

  111. void sendstr(uchar *p){

  112.         while(1)
  113.         {
  114.                 uart3send1byte(*p++);
  115.                 if(*p=='\0') break;
  116.                
  117.         }

  118. }



  119. void send2(unsigned char string){
  120.         
  121.         SBUF = string;
  122.         while(!(SCON&0x02));
  123.         SCON &= ~0x02;
  124.         
  125. }

  126. void sendstr1(uchar *p)
  127. {
  128.         while(1)
  129.         {
  130.                 send2(*p++);
  131.                 if(*p=='\0') break;
  132.         }
  133.         
  134. }

  135. void timer0_init(){
  136.         TMOD = 0x01;
  137.         TH0 = 0xb7;
  138.         TL0 = 0xfe;                 //20ms
  139.         TR0=1;
  140.         ET0 = 1;
  141.         EA = 1;
  142. }

  143.          
  144. int  main(void)

  145. {        P0M1 = 0;
  146.         P0M0 = 0;

  147.         P1M1 = 0;
  148.         P1M0 = 0;

  149.         P2M1 = 0;
  150.         P2M0 = 0;

  151.         P3M1 = 0;
  152.         P3M0 = 0;

  153.         P4M1 = 0;
  154.         P4M0 = 0;
  155.         
  156.         P5M1 = 0;
  157.         P5M0 = 0;

  158.         P6M1 = 0;
  159.         P6M0 = 0;

  160.         P7M1 = 0;
  161.         P7M0 = 0;

  162.         P_SW2=0x02;
  163.           ADC_config();                                 //ADC初始化  
  164.         uart3init();                                  //串口1初始化
  165.         init_1602();                                                                  //1602初始化
  166.         EA = 1;  
  167.         timer0_init();
  168.         Uart_Init();                                  //總中斷打開
  169.         delay_ms(10);                                 //初始化后延時
  170. //        WiFi模塊初次設置使用
  171.         sendstr(ATRST);
  172.         sendstr(ATCWJAP);
  173.         sendstr(ATCWMODE);
  174.         sendstr(ATCIPMUX);         

  175.         while (1)
  176.         {         
  177.                 displaynumber();
  178.                 DHT11();
  179.                 tempphoto1 = Get_ADC12bitResult();
  180.                 espdelay(5);
  181.                 //將溫濕度值轉換為字符串
  182.                 temp1[0] =DHT11Value.tempH;
  183.                 temp1[1] =DHT11Value.tempL;
  184.                
  185.                 humidity1[0] = DHT11Value.humyH;
  186.                 humidity1[1] = DHT11Value.humyL;
  187.                 //將光照強度值轉換為字符串
  188.                 photo1[0] = tempphoto1/1000;
  189.                 photo1[1] =  (tempphoto1%1000)/100;
  190.                 photo1[2] =  ((tempphoto1%1000)%100)/10;
  191.                 photo1[3] =   ((tempphoto1%1000)%100)%10;

  192.                
  193.                 POST60[8]= numlist[temp1[0]];
  194.                 POST60[9]= numlist[temp1[1]];

  195.                 POST61[7]=numlist[humidity1[0]];
  196.                 POST61[8]=numlist[humidity1[1]];

  197.                 POST62[9]=numlist[photo1[0]];
  198.                 POST62[10]=numlist[photo1[1]];
  199.                 POST62[11]=numlist[photo1[2]];
  200.                 POST62[12]=numlist[photo1[3]];




  201.                 sendstr(ATCIPSTART);

  202.         sendstr1("已連接到服務器\r\n");

  203.         sendstr(ATCIPMODE);

  204.         sendstr1("開啟透傳\r\n");

  205.         sendstr(ATCIPSEND);

  206.         sendstr1("開始發送數據\r\n");
  207.                         
  208.                
  209.                 sendstr(POST1);
  210.                
  211.                 sendstr(POST2);
  212.                
  213.                 sendstr(POST3);
  214.                
  215.                 sendstr(POST40);
  216.                
  217.                 sendstr(POST5);
  218.                
  219.                 sendstr(POST60);

  220.                
  221.                 sendstr(POST1);
  222.                
  223.                 sendstr(POST2);
  224.                
  225.                 sendstr(POST3);
  226.                
  227.                 sendstr(POST41);
  228.                
  229.                 sendstr(POST5);
  230.                
  231.                 sendstr(POST61);        
  232.                         


  233.                 sendstr(POST1);
  234.                
  235.                 sendstr(POST2);
  236.                
  237.                 sendstr(POST3);
  238.                
  239.                 sendstr(POST42);
  240.                
  241.                 sendstr(POST5);
  242.                
  243.                 sendstr(POST62);
  244.                
  245.         
  246.         
  247.                 espdelay(500);
  248.                
  249.                 sendstr(ATEXITCIPMODE);         
  250.                
  251.                 sendstr1("退出數據發送\r\n");

  252.         }
  253. }
復制代碼

所有資料51hei提供下載:
代碼.zip (287.79 KB, 下載次數: 43)


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

使用道具 舉報

沙發
ID:299519 發表于 2020-2-21 10:42 | 只看該作者
機智云?
回復

使用道具 舉報

板凳
ID:99525 發表于 2022-5-20 18:20 | 只看該作者
是誰家的云?免費使用嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品性做久久久久久 | 国产精品久久久久久吹潮 | 亚洲一区中文字幕 | 亚洲免费观看视频网站 | 午夜精品导航 | 国产成人精品午夜 | 国产成人精品一区二区 | 亚洲精品乱码久久久久久9色 | 国产视频久久 | 中文字幕视频在线观看 | 成人精品免费 | 久久国| 成人av网站在线观看 | 国产精品一区二区在线 | 狠狠久 | 久久久久亚洲精品 | 欧美视频三区 | 久久精品青青大伊人av | 精品伊人| av男人的天堂在线 | 久久国产精99精产国高潮 | 亚洲国产欧美一区二区三区久久 | 韩国欧洲一级毛片 | 成人精品一区二区 | av免费看片 | 一级大黄 | 亚洲一区综合 | 看片网站在线 | 日韩免费一区 | 国产内谢| 亚洲视频免费在线看 | 538在线精品| 免费看91| 欧美精品一区三区 | 久久精品网 | 91麻豆精品国产91久久久更新资源速度超快 | 国产一区2区 | 午夜久久久| 成人毛片网 | 国产精品欧美一区二区三区 | 99国内精品久久久久久久 |