Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.14 KB | None | 0 0
  1. #include <MySQL_Connection.h>
  2. #include <MySQL_Cursor.h>
  3. #include <ESP8266WiFi.h>
  4. #include <WiFiClient.h>
  5. #include <DHT.h>
  6. #include <MQ135.h>
  7. #include <Adafruit_BMP085.h>
  8. #include <Wire.h>
  9.  
  10. #define DHTPIN6 D6     // Deklaracja pinu do którego podłączony jest czujnik DHT
  11. #define DHTPIN7 D7     // Deklaracja pinu do którego podłączony jest czujnik DHT
  12. #define DHTTYPE DHT11 //  Deklaracja typu czujnika DHT11/DHT22
  13.  
  14. DHT dht1(DHTPIN6, DHTTYPE);
  15. DHT dht2(DHTPIN7, DHTTYPE);
  16.  
  17. #define RLOAD 22.0    // Wartość rezystancji czujnika MQ-135
  18. #define RZERO 224.99  // Kalibracja rezystancji czujnika dla tlenku węgla
  19.   MQ135 gasSensor = MQ135(A0);   //Deklaracja pinu do którego został podpiety czujnik
  20.   int val;
  21.   int sensorPin = A0;
  22.   int sensorValue = 0;
  23.  
  24.   Adafruit_BMP085 bmp;
  25.  
  26.   char ssid[] = "XiaomiDom";                 // Nazwa Sieci
  27.   char pass[] = "********";                 // Hasło Sieci
  28.   byte mac[6];
  29.  
  30. WiFiServer server(80);             //Parametry statycznego IP przypisanego do układu
  31.   IPAddress ip(192, 168, 31, 120);
  32.   IPAddress gateway(192, 168, 31, 1);
  33.   IPAddress subnet(255, 255, 255, 0);
  34.  
  35. WiFiClient client;              // Połącznie z bazą danych
  36.   MySQL_Connection conn((Client *)&client);
  37.     char INSERT_SQL[] = "INSERT INTO arduino.czujniki(ID, DATA, TEMP_ZEW, WILG_ZEW, TEMP_WEW, WILG_WEW, CISNIENIE, WYSOKOSC, CO_PPM) VALUES (NULL, CURRENT_TIMESTAMP, %f, %f, %f, %f, %f, %f, %f)";
  38.     char query[255];
  39.  
  40. IPAddress server_addr(192,168,31,128);          // MySQL server IP
  41.   char user[] = "esp";           // MySQL user
  42.   char password[] = "esp";       // MySQL password
  43.  
  44. void setup() {
  45.  
  46.   dht1.begin();           //Inicjowanie pierwszego czujnika DHT
  47.   dht2.begin();           //Inicjowanie drugiego czujnika DHT
  48.   Serial.begin(9600);     //Rozpoczęcie komunikacji szeregowej
  49.   void begin();           //ustawienie portów SCL i SDK komunikcaji I2C
  50.  
  51.   if (!bmp.begin())
  52.       {
  53.         Serial.println("Nie odnaleziono czujnika BMP085 / BMP180");
  54.         while (1) {}
  55.       }
  56.  
  57.   Serial.println("Inicjowanie połączenia");
  58.   Serial.print(F("Ustawienie statycznego IP : "));
  59.   Serial.println(ip);
  60.   Serial.println("-----------------------------------------------");
  61.   Serial.print("Łączenie do : ");
  62.   Serial.println(ssid);
  63.   WiFi.config(ip, gateway, subnet);
  64.   WiFi.begin(ssid, pass);
  65.  
  66.   while (WiFi.status() != WL_CONNECTED) {
  67.     delay(200);
  68.     Serial.print(".");
  69.   }
  70.  
  71.   Serial.println("WiFi Connected");
  72.  
  73.   WiFi.macAddress(mac);
  74.   Serial.print("MAC: ");
  75.   Serial.print(mac[5],HEX);
  76.   Serial.print(":");
  77.   Serial.print(mac[4],HEX);
  78.   Serial.print(":");
  79.   Serial.print(mac[3],HEX);
  80.   Serial.print(":");
  81.   Serial.print(mac[2],HEX);
  82.   Serial.print(":");
  83.   Serial.print(mac[1],HEX);
  84.   Serial.print(":");
  85.   Serial.println(mac[0],HEX);
  86.   //Serial.println("");
  87.   Serial.print("Przypisano adres IP: ");
  88.   Serial.println(WiFi.localIP());
  89.   Serial.println("-----------------------------------------------");
  90.  
  91.   Serial.println("Trwa łączenie do bazy danych : ");
  92.  
  93.   while (conn.connect(server_addr, 3303, user, password) != true) {
  94.     delay(200);
  95.     Serial.print ( "." );
  96.   }
  97.  
  98.   //Serial.println("");
  99.   Serial.println("Połączono z SQL Server!");
  100.   Serial.println("-----------------------------------------------");
  101.   Serial.println("Połączono Moduł NodeMCU ESP8266 do WiFi i Bazy Danych WampServer");
  102.   Serial.println("-----------------------------------------------");
  103.  
  104. }
  105.  
  106. void loop() {
  107.  
  108.   delay(2000);
  109.   float temp1 = dht1.readTemperature();
  110.   float temp2 = dht2.readTemperature();
  111.   float humi1 = dht1.readHumidity();
  112.   float humi2 = dht2.readHumidity();
  113.  
  114.   float tempBMP = bmp.readTemperature();
  115.   float cisBMP = bmp.readPressure() * 0.01 ;
  116.   float wysBMP = bmp.readAltitude();
  117.   float realwysBMP = bmp.readAltitude(102520);
  118.  
  119.   val = analogRead(A0);
  120.   float ppm = gasSensor.getPPM();
  121.   float zero = gasSensor.getRZero();
  122.  
  123.   if (isnan(temp1) || isnan(humi1)) {
  124.     Serial.println("Błąd odczytu z czujnika DHT nr 1!");
  125.     return;
  126.   }
  127.   else
  128.   {
  129.     Serial.print("temperatura wewnątrz: ");
  130.     Serial.print(temp1);
  131.     Serial.print(" *C     |  ");
  132.     Serial.print("Wilgotność wewnątrz:  ");
  133.     Serial.print(humi1);
  134.     Serial.print(" %        ");
  135.     Serial.println(" ");
  136.   }
  137.  
  138.   if (isnan(temp2) || isnan(humi2)) {
  139.     Serial.println("Błąd odczytu z czujnika DHT nr 2!");
  140.     return;
  141.   }
  142.   else
  143.   {
  144.     Serial.print("temperatura na zwenątrz: ");
  145.     Serial.print(temp2);
  146.     Serial.print(" *C  |  ");
  147.     Serial.print("Wilgotność na zwenątrz:  ");
  148.     Serial.print(humi2);
  149.     Serial.print(" %      ");
  150.     Serial.println(" ");
  151.   }
  152.  
  153.   Serial.print ("Stężenie tlenku węgla (CO): ");
  154.   Serial.print (ppm);
  155.   Serial.println(" PPM");
  156.   Serial.println("Pozostałe parametry czujnika MQ-135: ");
  157.   Serial.print ("RAW = ");
  158.   Serial.print (val);
  159.   Serial.print("  |  ");
  160.   Serial.print ("RZERO: ");
  161.   Serial.println (zero);
  162.  
  163.   Serial.print("Temperatura BMP180 = ");
  164.   Serial.print(tempBMP);
  165.   Serial.println(" *C");
  166.        
  167.   // Odczytujemy cisnienie
  168.   Serial.print("Cisnienie BMP180 = ");
  169.   Serial.print(cisBMP);
  170.   Serial.println(" HPa");
  171.              
  172.   // Obliczamy wysokosc dla domyslnego cisnienia przy pozimie morza
  173.   // p0 = 1013.25 millibar = 101325 Pascal
  174.   Serial.print("Wysokosc BMP180 = ");
  175.   Serial.print(wysBMP);
  176.   Serial.println(" metrow");
  177.        
  178.   // Jesli znamy aktualne cisnienie przy poziomie morza,
  179.   // mozemy dokladniej wyliczyc wysokosc, padajac je jako parametr
  180.   Serial.print("Rzeczywista wysokosc BMP180 = ");
  181.   Serial.print(realwysBMP);
  182.   Serial.println(" metrow");
  183.   Serial.println("-----------------------------------------------");
  184.   sprintf(query, INSERT_SQL, temp1, humi1, temp2, humi2, cisBMP, wysBMP, ppm);
  185.   //sprintf(query, INSERT_SQL, ppm,wysBMP);
  186.   Serial.println("Zapisywanie danych . . .");
  187.   Serial.println(query);
  188.  
  189.   MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
  190.  
  191.   cur_mem->execute(query);
  192.  
  193.   delete cur_mem;
  194.  
  195.   Serial.println("Zapisywanie zakończone powodzeniem ! ! !");
  196.   Serial.println("-----------------------------------------------");
  197.  
  198.   delay(20000);
  199.  
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement