Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include <ESP8266WiFiMulti.h>
- #include <ESP8266HTTPClient.h>
- #include "DHTesp.h"
- ESP8266WiFiMulti wifiMulti;
- DHTesp dht;
- const int panjangArr = 12;
- float arrTemperature[panjangArr];
- float arrHumidity[panjangArr];
- float avgTemperature;
- float avgHumidity;
- float minTemperature;
- float minHumidity;
- float maxTemperature = 0.00;
- float maxHumidity = 0.00;
- int i = 0;
- void setup() {
- Serial.begin(115200);
- Serial.println();
- dht.setup(D5, DHTesp::DHT22);
- for(uint8_t t = 4; t > 0; t--){
- Serial.printf("[SETUP] WAIT %d...\n", t);
- Serial.flush();
- delay(1000);
- }
- wifiMulti.addAP("ASEDEKON", "camandnecuye");
- Serial.print("Network is Connected!\n");
- }
- void loop() {
- float temperature = dht.getTemperature();
- float humidity = dht.getHumidity();
- //insert data ke array
- if(i < panjangArr && String(temperature) != "nan" && String(humidity) != "nan"){
- arrTemperature[i] = temperature;
- arrHumidity[i] = humidity;
- i++;
- }
- //method is full akan dijalankan setiap 60s / array penuh
- if(isFull()){
- //print array
- for(int i = 0;i < panjangArr; i++){
- Serial.printf("Suhu Data Ke-%i : %.2f", (i + 1), arrTemperature[i]);
- Serial.print("\n");
- Serial.printf("Lembab Data Ke-%i : %.2f", (i + 1), arrHumidity[i]);
- Serial.print("\n");
- }
- countAvg(); //memanggil method avg
- countMin(); //memanggil method min
- countMax(); //memanggil method max
- if((wifiMulti.run() == WL_CONNECTED)){
- HTTPClient http;
- Serial.print("[HTTP] begin...\n");
- String urlsend = "http://192.168.43.33/uts/insertdata.php?avg _suhu=" + (String)avgTemperature + "&min_suhu="
- + (String)minTemperature + "&max_suhu=" + (String)maxTemperature + "&avg_lembab=" +
- (String)avgHumidity + "&min_lembab=" + (String)minHumidity + "&max_lembab=" + (String)maxHumidity;
- Serial.print("URL to send: " + urlsend);
- http.begin(urlsend);
- Serial.print("[HTTP] GET...\n");
- int httpCode = http.GET();
- if(httpCode > 0){
- Serial.printf("[HTTP] GET...code : %d\n", httpCode);
- if(httpCode == HTTP_CODE_OK){
- String payload = http.getString();
- Serial.print(payload);
- }
- }else{
- Serial.printf("[HTTP] GET... Failed, Error : %s\n", http.errorToString(httpCode).c_str());
- }
- http.end();
- }
- //clear array
- for(int i = 0; i < panjangArr; i++){
- arrHumidity[i] = 0.00;
- }
- //clear index perulangan untuk insert data
- i = 0;
- Serial.print("............................................");
- }
- //melakukan delay di setiap data selama 5 detik
- delay(5000);
- }
- //method isFull
- boolean isFull(){
- return arrHumidity[panjangArr-1] != 0.00 && arrTemperature[panjangArr-1] != 0.00;
- }
- //method countMax
- void countMax(){
- for(int i = 0; i < panjangArr; i++){
- if(arrHumidity[i] > maxHumidity){
- maxHumidity = arrHumidity[i];
- }
- if(arrTemperature[i] > maxTemperature){
- maxTemperature = arrTemperature[i];
- }
- }
- Serial.printf("Suhu Max : %.2f", maxTemperature);
- Serial.print("\n");
- Serial.printf("Lembab Max : %.2f", maxHumidity);
- Serial.print("\n");
- }
- //method countMin(){
- void countMin(){
- minTemperature = arrTemperature[0];
- minHumidity = arrHumidity[0];
- for(int i = 0; i < panjangArr; i++){
- if(arrTemperature[i] < minTemperature){
- minTemperature = arrTemperature[i];
- }
- if(arrHumidity[i] < minHumidity){
- minHumidity = arrHumidity[i];
- }
- }
- Serial.printf("Suhu Min : %.2f", minTemperature);
- Serial.print("\n");
- Serial.printf("Lembab Min : %.2f", minHumidity);
- Serial.print("\n");
- }
- //method countAvg
- void countAvg(){
- float sumTemperature;
- float sumHumidity;
- for(int i = 0; i < panjangArr; i++){
- sumTemperature += arrTemperature[i];
- sumHumidity += arrHumidity[i];
- }
- avgTemperature = sumTemperature / panjangArr;
- avgHumidity = sumHumidity / panjangArr;
- Serial.printf("Suhu rata-rata : %.2f", avgTemperature);
- Serial.print("\n");
- Serial.printf("Lembab rata-rata : %.2f", avgHumidity);
- Serial.print("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement