Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <MySQL_Connection.h>
- #include <MySQL_Cursor.h>
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <DHT.h>
- #include <MQ135.h>
- #include <Adafruit_BMP085.h>
- #include <Wire.h>
- #define DHTPIN6 D6 // Deklaracja pinu do którego podłączony jest czujnik DHT
- #define DHTPIN7 D7 // Deklaracja pinu do którego podłączony jest czujnik DHT
- #define DHTTYPE DHT11 // Deklaracja typu czujnika DHT11/DHT22
- DHT dht1(DHTPIN6, DHTTYPE);
- DHT dht2(DHTPIN7, DHTTYPE);
- #define RLOAD 22.0 // Wartość rezystancji czujnika MQ-135
- #define RZERO 224.99 // Kalibracja rezystancji czujnika dla tlenku węgla
- MQ135 gasSensor = MQ135(A0); //Deklaracja pinu do którego został podpiety czujnik
- int val;
- int sensorPin = A0;
- int sensorValue = 0;
- Adafruit_BMP085 bmp;
- char ssid[] = "XiaomiDom"; // Nazwa Sieci
- char pass[] = "********"; // Hasło Sieci
- byte mac[6];
- WiFiServer server(80); //Parametry statycznego IP przypisanego do układu
- IPAddress ip(192, 168, 31, 120);
- IPAddress gateway(192, 168, 31, 1);
- IPAddress subnet(255, 255, 255, 0);
- WiFiClient client; // Połącznie z bazą danych
- MySQL_Connection conn((Client *)&client);
- 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)";
- char query[255];
- IPAddress server_addr(192,168,31,128); // MySQL server IP
- char user[] = "esp"; // MySQL user
- char password[] = "esp"; // MySQL password
- void setup() {
- dht1.begin(); //Inicjowanie pierwszego czujnika DHT
- dht2.begin(); //Inicjowanie drugiego czujnika DHT
- Serial.begin(9600); //Rozpoczęcie komunikacji szeregowej
- void begin(); //ustawienie portów SCL i SDK komunikcaji I2C
- if (!bmp.begin())
- {
- Serial.println("Nie odnaleziono czujnika BMP085 / BMP180");
- while (1) {}
- }
- Serial.println("Inicjowanie połączenia");
- Serial.print(F("Ustawienie statycznego IP : "));
- Serial.println(ip);
- Serial.println("-----------------------------------------------");
- Serial.print("Łączenie do : ");
- Serial.println(ssid);
- WiFi.config(ip, gateway, subnet);
- WiFi.begin(ssid, pass);
- while (WiFi.status() != WL_CONNECTED) {
- delay(200);
- Serial.print(".");
- }
- Serial.println("WiFi Connected");
- WiFi.macAddress(mac);
- Serial.print("MAC: ");
- Serial.print(mac[5],HEX);
- Serial.print(":");
- Serial.print(mac[4],HEX);
- Serial.print(":");
- Serial.print(mac[3],HEX);
- Serial.print(":");
- Serial.print(mac[2],HEX);
- Serial.print(":");
- Serial.print(mac[1],HEX);
- Serial.print(":");
- Serial.println(mac[0],HEX);
- //Serial.println("");
- Serial.print("Przypisano adres IP: ");
- Serial.println(WiFi.localIP());
- Serial.println("-----------------------------------------------");
- Serial.println("Trwa łączenie do bazy danych : ");
- while (conn.connect(server_addr, 3303, user, password) != true) {
- delay(200);
- Serial.print ( "." );
- }
- //Serial.println("");
- Serial.println("Połączono z SQL Server!");
- Serial.println("-----------------------------------------------");
- Serial.println("Połączono Moduł NodeMCU ESP8266 do WiFi i Bazy Danych WampServer");
- Serial.println("-----------------------------------------------");
- }
- void loop() {
- delay(2000);
- float temp1 = dht1.readTemperature();
- float temp2 = dht2.readTemperature();
- float humi1 = dht1.readHumidity();
- float humi2 = dht2.readHumidity();
- float tempBMP = bmp.readTemperature();
- float cisBMP = bmp.readPressure() * 0.01 ;
- float wysBMP = bmp.readAltitude();
- float realwysBMP = bmp.readAltitude(102520);
- val = analogRead(A0);
- float ppm = gasSensor.getPPM();
- float zero = gasSensor.getRZero();
- if (isnan(temp1) || isnan(humi1)) {
- Serial.println("Błąd odczytu z czujnika DHT nr 1!");
- return;
- }
- else
- {
- Serial.print("temperatura wewnątrz: ");
- Serial.print(temp1);
- Serial.print(" *C | ");
- Serial.print("Wilgotność wewnątrz: ");
- Serial.print(humi1);
- Serial.print(" % ");
- Serial.println(" ");
- }
- if (isnan(temp2) || isnan(humi2)) {
- Serial.println("Błąd odczytu z czujnika DHT nr 2!");
- return;
- }
- else
- {
- Serial.print("temperatura na zwenątrz: ");
- Serial.print(temp2);
- Serial.print(" *C | ");
- Serial.print("Wilgotność na zwenątrz: ");
- Serial.print(humi2);
- Serial.print(" % ");
- Serial.println(" ");
- }
- Serial.print ("Stężenie tlenku węgla (CO): ");
- Serial.print (ppm);
- Serial.println(" PPM");
- Serial.println("Pozostałe parametry czujnika MQ-135: ");
- Serial.print ("RAW = ");
- Serial.print (val);
- Serial.print(" | ");
- Serial.print ("RZERO: ");
- Serial.println (zero);
- Serial.print("Temperatura BMP180 = ");
- Serial.print(tempBMP);
- Serial.println(" *C");
- // Odczytujemy cisnienie
- Serial.print("Cisnienie BMP180 = ");
- Serial.print(cisBMP);
- Serial.println(" HPa");
- // Obliczamy wysokosc dla domyslnego cisnienia przy pozimie morza
- // p0 = 1013.25 millibar = 101325 Pascal
- Serial.print("Wysokosc BMP180 = ");
- Serial.print(wysBMP);
- Serial.println(" metrow");
- // Jesli znamy aktualne cisnienie przy poziomie morza,
- // mozemy dokladniej wyliczyc wysokosc, padajac je jako parametr
- Serial.print("Rzeczywista wysokosc BMP180 = ");
- Serial.print(realwysBMP);
- Serial.println(" metrow");
- Serial.println("-----------------------------------------------");
- sprintf(query, INSERT_SQL, temp1, humi1, temp2, humi2, cisBMP, wysBMP, ppm);
- //sprintf(query, INSERT_SQL, ppm,wysBMP);
- Serial.println("Zapisywanie danych . . .");
- Serial.println(query);
- MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
- cur_mem->execute(query);
- delete cur_mem;
- Serial.println("Zapisywanie zakończone powodzeniem ! ! !");
- Serial.println("-----------------------------------------------");
- delay(20000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement