Advertisement
Guest User

Arduino

a guest
Mar 30th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2. #include <ESP8266WiFiMulti.h>
  3. #include <ESP8266HTTPClient.h>
  4. #include "DHTesp.h"
  5.  
  6. ESP8266WiFiMulti wifiMulti;
  7. DHTesp dht;
  8.  
  9. const int panjangArr = 12;
  10. float arrTemperature[panjangArr];
  11. float arrHumidity[panjangArr];
  12.  
  13. float avgTemperature;
  14. float avgHumidity;
  15. float minTemperature;
  16. float minHumidity;
  17. float maxTemperature = 0.00;
  18. float maxHumidity = 0.00;
  19.  
  20. int i = 0;
  21.  
  22. void setup() {
  23. Serial.begin(115200);
  24. Serial.println();
  25. dht.setup(D5, DHTesp::DHT22);
  26. for(uint8_t t = 4; t > 0; t--){
  27. Serial.printf("[SETUP] WAIT %d...\n", t);
  28. Serial.flush();
  29. delay(1000);
  30. }
  31. wifiMulti.addAP("ASEDEKON", "camandnecuye");
  32. Serial.print("Network is Connected!\n");
  33. }
  34.  
  35. void loop() {
  36. float temperature = dht.getTemperature();
  37. float humidity = dht.getHumidity();
  38.  
  39. //insert data ke array
  40. if(i < panjangArr && String(temperature) != "nan" && String(humidity) != "nan"){
  41. arrTemperature[i] = temperature;
  42. arrHumidity[i] = humidity;
  43. i++;
  44. }
  45.  
  46. //method is full akan dijalankan setiap 60s / array penuh
  47. if(isFull()){
  48. //print array
  49. for(int i = 0;i < panjangArr; i++){
  50. Serial.printf("Suhu Data Ke-%i : %.2f", (i + 1), arrTemperature[i]);
  51. Serial.print("\n");
  52. Serial.printf("Lembab Data Ke-%i : %.2f", (i + 1), arrHumidity[i]);
  53. Serial.print("\n");
  54. }
  55.  
  56. countAvg(); //memanggil method avg
  57. countMin(); //memanggil method min
  58. countMax(); //memanggil method max
  59.  
  60. if((wifiMulti.run() == WL_CONNECTED)){
  61. HTTPClient http;
  62. Serial.print("[HTTP] begin...\n");
  63.  
  64. String urlsend = "http://192.168.43.33/uts/insertdata.php?avg _suhu=" + (String)avgTemperature + "&min_suhu="
  65. + (String)minTemperature + "&max_suhu=" + (String)maxTemperature + "&avg_lembab=" +
  66. (String)avgHumidity + "&min_lembab=" + (String)minHumidity + "&max_lembab=" + (String)maxHumidity;
  67.  
  68.  
  69. Serial.print("URL to send: " + urlsend);
  70. http.begin(urlsend);
  71.  
  72. Serial.print("[HTTP] GET...\n");
  73.  
  74. int httpCode = http.GET();
  75.  
  76. if(httpCode > 0){
  77. Serial.printf("[HTTP] GET...code : %d\n", httpCode);
  78. if(httpCode == HTTP_CODE_OK){
  79. String payload = http.getString();
  80. Serial.print(payload);
  81. }
  82. }else{
  83. Serial.printf("[HTTP] GET... Failed, Error : %s\n", http.errorToString(httpCode).c_str());
  84. }
  85. http.end();
  86. }
  87.  
  88. //clear array
  89. for(int i = 0; i < panjangArr; i++){
  90. arrHumidity[i] = 0.00;
  91. }
  92. //clear index perulangan untuk insert data
  93. i = 0;
  94. Serial.print("............................................");
  95. }
  96.  
  97. //melakukan delay di setiap data selama 5 detik
  98. delay(5000);
  99. }
  100.  
  101. //method isFull
  102. boolean isFull(){
  103. return arrHumidity[panjangArr-1] != 0.00 && arrTemperature[panjangArr-1] != 0.00;
  104. }
  105.  
  106.  
  107. //method countMax
  108. void countMax(){
  109. for(int i = 0; i < panjangArr; i++){
  110. if(arrHumidity[i] > maxHumidity){
  111. maxHumidity = arrHumidity[i];
  112. }
  113. if(arrTemperature[i] > maxTemperature){
  114. maxTemperature = arrTemperature[i];
  115. }
  116. }
  117.  
  118. Serial.printf("Suhu Max : %.2f", maxTemperature);
  119. Serial.print("\n");
  120. Serial.printf("Lembab Max : %.2f", maxHumidity);
  121. Serial.print("\n");
  122. }
  123.  
  124. //method countMin(){
  125. void countMin(){
  126. minTemperature = arrTemperature[0];
  127. minHumidity = arrHumidity[0];
  128.  
  129. for(int i = 0; i < panjangArr; i++){
  130. if(arrTemperature[i] < minTemperature){
  131. minTemperature = arrTemperature[i];
  132. }
  133. if(arrHumidity[i] < minHumidity){
  134. minHumidity = arrHumidity[i];
  135. }
  136. }
  137.  
  138. Serial.printf("Suhu Min : %.2f", minTemperature);
  139. Serial.print("\n");
  140. Serial.printf("Lembab Min : %.2f", minHumidity);
  141. Serial.print("\n");
  142. }
  143.  
  144. //method countAvg
  145. void countAvg(){
  146. float sumTemperature;
  147. float sumHumidity;
  148.  
  149. for(int i = 0; i < panjangArr; i++){
  150. sumTemperature += arrTemperature[i];
  151. sumHumidity += arrHumidity[i];
  152. }
  153.  
  154. avgTemperature = sumTemperature / panjangArr;
  155. avgHumidity = sumHumidity / panjangArr;
  156.  
  157. Serial.printf("Suhu rata-rata : %.2f", avgTemperature);
  158. Serial.print("\n");
  159. Serial.printf("Lembab rata-rata : %.2f", avgHumidity);
  160. Serial.print("\n");
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement