Advertisement
Guest User

Moisture sensor with 4 sensor

a guest
Jan 15th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.35 KB | None | 0 0
  1. #include <AntoIO.h>
  2. #include <Adafruit_ADS1015.h>
  3. #include <Wire.h>
  4. #define MAX_ADC 27000
  5. #define MIN_ADC 11300
  6.  
  7.  
  8. Adafruit_ADS1115 ads(0x48);
  9.  
  10.  
  11. //ส่วนของ การเชื่อมต่อ Node MCU กับ Anto.io//
  12. const char *ssid ="Redmi";
  13. const char *pass ="monster12348";
  14. const char *user ="nutrajangtcr";
  15. const char *token ="ouXRHnELxPUOTGtx1VF6xUu5Nl9S4zRcTBby08Yj";
  16. const char *thing = "Moisture";
  17. int sln[4] = {D4, D5, D6, D7}; // กำนหนด ขา output โซลินอย
  18. String Antosend;
  19. String KraTang[4]={"KraTang1", "KraTang2", "KraTang3", "KraTang4"};   //กำหนด CH กระถาง //
  20.  
  21. char buf[5];
  22. AntoIO anto(user, token, thing);
  23. //***********************************************//
  24.  
  25.  
  26.  
  27. void setup()
  28. {
  29.  // เริ่มเชื่อมต่อ wifi //
  30.   Serial.begin(115200);
  31.   delay(10);
  32.   Serial.print("");
  33.   Serial.print("");
  34.   Serial.print("Anto Library version: ");
  35.   Serial.println(anto.getVersion());
  36.   Serial.print("/nTrying to connect");
  37.   Serial.print(ssid);
  38.   Serial.println("...");
  39.   anto.begin(ssid,pass, messageReceived);
  40.   Serial.println("\nConnected Anto done");
  41.   anto.sub("KraTang1");    //กำหนด channel ของกระถางแต่ละกระถาง//
  42.   anto.sub("KraTang2");
  43.   anto.sub("KraTang3");
  44.   anto.sub("KraTang4");
  45.   Wire.begin(D1, D2);
  46.   ads.begin();
  47.   pinMode(sln[0], OUTPUT);
  48.   pinMode(sln[1], OUTPUT);
  49.   pinMode(sln[2], OUTPUT);
  50.   pinMode(sln[3], OUTPUT);
  51. }
  52.  
  53. int16_t take_ADC(int16_t *adc, byte length )
  54. {
  55.   for (byte x = 0; x <= length; ++x)
  56.   {
  57.     adc[x] = ads.readADC_SingleEnded(x);
  58.   }
  59. }
  60. int16_t take_value(int16_t *arr, byte length)
  61. {
  62.   // int16_t per[4],  ,take[x]
  63.   //  byte per_len = sizeof(per) / sizeof(int16_t);
  64.   int16_t value[4];
  65.   take_ADC(arr, length);
  66.   for (byte x = 0; x < length; ++x)
  67.   {
  68.     value[x] = arr[x];
  69.     arr[x] = map(arr[x],MIN_ADC,MAX_ADC, 100, 0);
  70.  
  71.   }
  72.   Serial.println("----------------------------------");
  73.  
  74. }
  75. void messageReceived(String thing, String channel, String payload) {
  76.  
  77.   Serial.print("Recieved: ");
  78.   Serial.print(thing);
  79.   Serial.print("/");
  80.   Serial.print(channel);
  81.   Serial.print("-> ");
  82.   Serial.println(payload);
  83.  
  84.  }
  85. void loop()
  86. {
  87.   anto.mqtt.loop();
  88.   char state;
  89.   int16_t per[4];
  90.   byte per_len = sizeof(per) / sizeof(int16_t);
  91.   take_value(per, per_len);                      Serial.println("ค่าของ per[x] จาก void loop ");
  92.     for (int x = 0 ; x < 4; x++)
  93.     {
  94.       if (per[x] <=16)
  95.       {
  96.         state='A';    // status A =  Solinoid LOW
  97.       }
  98.       else if (per[x] <= 60 && per[x] > 16)
  99.       {
  100.        
  101.       state='B';  //  status B = Solinoid HIGH
  102.       }
  103.       else
  104.       {
  105.       state='C'; // status C = SOlinoid LOW
  106.       }
  107.      
  108.       switch(state){
  109.         case 'A': Serial.print("Sensor ");
  110.         Serial.print(x + 1); Serial.print("=");
  111.         Serial.print(per[x]); Serial.print("%  Status : "); Serial.print("ไม่ได้จุ่มดิน");
  112.         Serial.print("  ขา Digital D"); Serial.print(sln[x]);Serial.print("LOW");Serial.println("LOW");
  113.         digitalWrite(sln[x], LOW);break;
  114.        
  115.         case 'B': Serial.print("Sensor ");
  116.         Serial.print(x + 1); Serial.print("=");
  117.         Serial.print(per[x]); Serial.print("%  Status : ");Serial.print("จุ่มดินแล้ว");
  118.         Serial.print("  ขา Digital D"); Serial.print(sln[x]); Serial.println("HIGH");
  119.         digitalWrite(sln[x], HIGH); break;
  120.  
  121.         case 'C' : Serial.print("Sensor ");
  122.         Serial.print(x + 1); Serial.print("=");
  123.         Serial.print(per[x]); Serial.print("%  Status : ");Serial.print("จุ่มน้ำแล้ว");
  124.         Serial.print("  ขา Digital D"); Serial.print(sln[x]); Serial.println("LOW");
  125.         digitalWrite(sln[x], LOW); break;
  126.  
  127.         default : Serial.print("Can't to read ADC"); break;
  128.        
  129.       }
  130.   /*   if(per[x]>=0){
  131.       Antosend = String(per[x]);
  132.       Antosend.toCharArray(buf,Antosend.length());
  133.       anto.pub(KraTang[x],(const char*)buf);
  134.      }*/    //ส่งค่า ความชื้นใส่ channel ของ KraTang ของ anto//
  135.        
  136.     }
  137.     delay(1000);
  138.  
  139.  
  140.     /* for(byte x=0;x<per_len;++x)
  141.       {
  142.        Serial.println(per[x]);
  143.       }
  144.       Serial.println("--------------");*/
  145.      
  146.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement