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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Arduino調度器計時,怎么改成秒?

[復制鏈接]
跳轉到指定樓層
樓主
ID:357573 發表于 2021-5-26 14:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
調度器用毫秒,計時超過60000毫秒就不正常,怎么改成秒!
  1. #include <Wire.h>
  2. #include <DS1302.h>
  3. #include "TaskScheduler.h"  //包含此頭文件,才能使用調度器
  4. #include <SoftwareSerial.h>
  5. #include <OneWire.h>
  6. #include <DallasTemperature.h>
  7. #define ONE_WIRE_BUS A0 //數據總線
  8. OneWire oneWire(ONE_WIRE_BUS); //聲明
  9. DallasTemperature sensors(&oneWire); //聲明溫度變量
  10. SoftwareSerial esp8266(5, 6);  //rx,tx
  11. DS1302 rtc(9, 8, 7); // RST, DAT, CLK
  12. #include <Wire.h>
  13. #include <SPI.h>
  14. #include <Adafruit_Sensor.h>  
  15. #include <Adafruit_BMP280.h>

  16. #define BMP_SCK 13  
  17. #define BMP_MISO 12
  18. #define BMP_MOSI 11
  19. #define BMP_CS 10

  20. Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);  

  21. int x5 = A5;
  22. boolean g_led1State=0;   //多少任務變量(水泵)
  23. //boolean g_led2State=0;   //多少任務變量
  24. String  outa="";  //讀取溫度值存入變量
  25. String  outb="";  //讀取日期值存入變量
  26. String  outc="";  //讀取時間值存入變量
  27. String  outd="";  //讀取氣壓值存入變量
  28. String  oute="";  //讀取海拔值存入變量
  29. //String  outf="";  //讀取溫度值存入變量

  30. String AP = "padavan-2x";   
  31. String PASS = "12345678";
  32. String Data;
  33. int countTrueCommand;
  34. int countTimeCommand;
  35. boolean found = false;





  36. //*******************************
  37. void setup() {

  38.   pinMode(x5, OUTPUT);









  39. sensors.begin(); //初始化總線
  40. sensors.setWaitForConversion(false); //設置為非阻塞模式

  41. Sch.init(); //初始化調度器
  42. Sch.addTask(led1Update,0, 20000,1);  //從第 0 毫秒開始閃爍 LED,每隔 1s,  狀態改變一次,溫度
  43. Sch.addTask(led2Update,20,3600000,1);  //從第 20 毫秒開始閃爍 LED,每隔 1s,狀態改變一次,水泵
  44. Sch.addTask(led3Update,30,20000,1);  //從第 20 毫秒開始閃爍 LED,每隔 1s,狀態改變一次,時間
  45. Sch.addTask(led4Update,40,20000,1);  //從第 20 毫秒開始閃爍 LED,每隔 1s,狀態改變一次,氣壓
  46. Sch.addTask(led100Update,100,60000,1);  //從第 20 毫秒開始閃爍 LED,每隔 1s,狀態改變一次,上傳
  47. Sch.start();//啟動調度器
  48. }
  49. void loop() {





  50. Sch.dispatchTasks();  // 執行被調度的任務.



  51. }

  52. //溫度代碼
  53. void led1Update()
  54. {
  55. float tempC = sensors.getTempCByIndex(0); //獲取索引號0的傳感器攝氏溫度數據
  56.     if (tempC != DEVICE_DISCONNECTED_C)       //如果獲取到的溫度正常
  57.     {
  58.       Serial.print("\n當前溫度是: ");
  59.       Serial.print(tempC);
  60.       Serial.println(" ℃");
  61.     }

  62.     //Serial.println("發起溫度轉換");
  63.     sensors.requestTemperatures(); //發起新的溫度轉換
  64.     //Serial.print(tempC);  //打印當前溫度值
  65.     outa=String(tempC)+"℃";
  66.     //delay(1000);

  67. //溫度代碼結束  
  68. }





  69. void led2Update()
  70. {
  71. if(g_led1State==0)
  72. {
  73. g_led1State=1;
  74. digitalWrite(x5, HIGH);   // 打開水泵
  75. //delay(1000);           // 等待1秒鐘
  76. }
  77. else
  78. {
  79. g_led1State=0;
  80. digitalWrite(x5, LOW);    // 關閉水泵
  81. //delay(1000);              // 等待1秒鐘
  82. }
  83. }

  84. void led100Update()
  85. {
  86.   Serial.begin(9600);
  87.   esp8266.begin(115200);
  88.   sendCommand("AT", 5, "OK");
  89.   sendCommand("AT+CWMODE=1", 5, "OK");
  90.   sendCommand("AT+CWJAP=\"" + AP + "\",\"" + PASS + "\"", 20, "OK");
  91.   Data = "GET /crzz.php?aa=1&ab="+outd+"&ac="+outc+"&ad="+outb+"&ae="+outa;
  92.   sendCommand("AT+CIPMUX=1",5,"OK");
  93.   sendCommand("AT+CIPSTART=0,\"TCP\",\"192.168.10.204\",80",4,"OK");
  94.   sendCommand("AT+CIPSEND=0," +String(Data.length()+4),2,">");
  95.   esp8266.println(Data);delay(100);countTrueCommand++;
  96.   sendCommand("AT+CIPCLOSE=0",2,"OK");
  97. }
  98. //時間函數
  99. void led3Update()
  100. {
  101.   Serial.begin(9600);
  102. //Serial.println(rtc.getDateStr(FORMAT_LONG, FORMAT_LITTLEENDIAN, '-'));
  103. //Serial.print(rtc.getDOWStr());
  104. //Serial.print("    ");
  105. //Serial.println(rtc.getTimeStr());
  106.   outb=String(rtc.getDateStr(FORMAT_LONG, FORMAT_LITTLEENDIAN, '-'))+"-"+String(rtc.getTimeStr());
  107. }


  108. void led4Update()
  109. {
  110. Serial.begin(9600);
  111.   //Serial.println(F("BMP280 測試"));

  112.   if (!bmp.begin()) {  
  113.   //  Serial.println(F("找不到對應的傳感器"));
  114.     while (1);
  115.   }
  116.     //Serial.print(F("溫度 = "));
  117.     //Serial.print(bmp.readTemperature());
  118.     //Serial.println(" *C");

  119.     //Serial.print(F("氣壓 = "));
  120.     //Serial.print(bmp.readPressure());
  121.     //Serial.println(" Pa");

  122.     //Serial.print(F("海拔 = "));
  123.     //Serial.print(bmp.readAltitude(1013.25));
  124.     //Serial.println(" m");
  125.     outc=String(Serial.print(F("")))+String(bmp.readPressure())+"Pa";
  126.     outd=String(bmp.readAltitude(1013.25))+"m";

  127.     //delay(2000);

  128. }


  129. void sendCommand(String command, int maxTime, char readReplay[]) {
  130.   Serial.print(countTrueCommand);
  131.   Serial.print(". at command => ");
  132.   Serial.print(command);
  133.   Serial.print(" ");
  134.   while (countTimeCommand < (maxTime * 1))
  135.   {
  136.     esp8266.println(command);//at+cipsend
  137.     if (esp8266.find(readReplay)) //ok
  138.     {
  139.       found = true;
  140.       break;
  141.     }

  142.     countTimeCommand++;
  143.   }

  144.   if (found == true)
  145.   {
  146.     Serial.println("Yes");
  147.     countTrueCommand++;
  148.     countTimeCommand = 0;
  149.   }

  150.   if (found == false)
  151.   {
  152.     Serial.println("Fail");
  153.     countTrueCommand = 0;
  154.     countTimeCommand = 0;
  155.   }

  156.   found = false;
  157. }
復制代碼


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人三区四区 | 免费视频一区 | 99精品欧美一区二区三区 | 日韩免费网站 | 成年人在线电影 | 九九热在线精品视频 | 国产福利在线看 | 欧美一级在线观看 | 成人久久久 | 精品久久久久一区 | 99国产精品久久久 | 91精品国产乱码久久久久久久 | 久久精品国产精品青草 | a欧美 | 国产午夜精品视频 | 九九九视频精品 | 在线看亚洲 | 欧美久久久久久 | 精品国产久 | 香蕉一区 | 国产精品久久网 | 欧美影院| 国产a区 | av在线免费网站 | 精品国产一区二区三区久久狼黑人 | 欧美4p| 国产精品久久久久久久久久久免费看 | 在线视频亚洲 | 免费国产一区二区 | 国产在线对白 | 国产精品99999999 | 综合二区| 国产综合av | 亚洲精品aⅴ | 日本三级全黄三级三级三级口周 | 欧美日韩在线成人 | 久久久久久久久综合 | 欧美一级视频免费看 | 91在线视频播放 | 欧美一区二区在线 | 久久人人国产 |