Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #include <system.h>
- #include <math.h> // math support
- #include "U8glib.h" //for LCD display
- #include "DHT.h" // for temp/humidity sensor
- #include <Wire.h>
- #include <Adafruit_BMP085.h> //for BMP085 pressure sensor
- #include <Ethernet.h> //for Network card
- #define DHTPIN 9 // К какому пину подключен датчик DHT
- //#define DHT2PIN 52 // К какому пину подключен 2-й DHT
- #define DHTTYPE DHT22 // Тип термометра-психрометра, DHT 22 (AM2302), AM2321
- #define ONE_WIRE_BUS 8 // К какому пину подключен датчик DS18B20
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- //Подключение ЖК-дисплея
- // 1 (GND) --> GND
- // 2 (Vcc) --> +5V
- // 4 (RS) --> 12
- // 5 (R/W) --> 11
- // 6 (E)--> 10
- // 15 (PSB) --> GND
- // 19 (BLA) --> +5 (Подсветка дисплея)
- // 20 (BLK) --> GND
- U8GLIB_ST7920_128X64 u8g(10, 11, 12, U8G_PIN_NONE); // Настройка пинов LCD
- DHT dht(DHTPIN, DHTTYPE); // DHT22 pins
- //DHT dht2(53, DHTTYPE); // DHT22 pins
- Adafruit_BMP085 bmp; // Барометр BMP085
- // Network card //
- byte mac[] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};
- byte ip[] = {192, 168, 1, 10}; // <- change to match your network
- EthernetClient client;
- char server[] = "narodmon.ru";
- void setup()
- {
- sensors.begin(); // Активация DS18B20
- Serial.begin(115200); // COM-port
- Ethernet.begin(mac, ip); // Активация сетевой карты
- u8g.setFont(u8g_font_6x10); // Выбор шрифта
- if (!bmp.begin())
- {
- Serial.println("Could not find a valid BMP085 sensor, check wiring!");
- while (1) {}
- }
- }
- void loop()
- {
- sensors.requestTemperatures();
- float z = 0.0;
- int p = 0;
- z = (bmp.readPressure()); // Считываем давление в паскалях с BMP085
- p = z/133.322; // Паскали в мм.рт.ст
- // Reading temperature or humidity takes about 250 milliseconds!
- // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
- int h = dht.readHumidity(); //Считываем влажность
- // int g = dht2.readHumidity();
- // Read temperature as Celsius (the default)
- int t = bmp.readTemperature(); //Считываем температуру в градусах Цельсия
- int t2 = (sensors.getTempCByIndex(0));
- t2 = t2 - 5; // corr...
- // Read temperature as Fahrenheit (isFahrenheit = true)
- float f = dht.readTemperature(true);
- // Compute heat index in Fahrenheit (the default)
- float hif = dht.computeHeatIndex(f, h);
- // Compute heat index in Celsius (isFahreheit = false)
- float hic = dht.computeHeatIndex(t, h, false);
- sendData(t, h, p, t2);
- //Вывод на экран
- u8g.firstPage();
- do
- {
- u8g.drawStr(0, 10, "Hum");
- u8g.setPrintPos(26, 10);
- u8g.print(h);
- u8g.drawStr(40, 10, "%");
- // u8g.setPrintPos(65, 10);
- // u8g.print(g);
- // u8g.drawStr(80, 10, "%");
- u8g.drawStr(0, 20, "Temp");
- u8g.setPrintPos(26, 20);
- u8g.print(t);
- u8g.drawStr(40, 20, "\260C");
- u8g.setPrintPos(63, 20);
- u8g.print(t2);
- u8g.drawStr(82, 20, "\260C");
- u8g.drawStr(0, 30, "Press");
- u8g.setPrintPos(34, 30);
- u8g.print(p);
- u8g.drawStr(55, 30, "mm.Hg");
- //u8g.drawStr(0, 40, "Dew pt");
- }
- while(u8g.nextPage());
- }
- void sendData(int t, int h, int p, int t2)
- {
- client.connect(server, 80);
- client.print("GET /get?ID=MYMACADDRESS");
- client.print("&");
- client.print("t0=");
- client.print(t);
- client.print("&");
- client.print("h0=");
- client.print(h);
- client.print("&");
- client.print("p0=");
- client.print(p);
- client.print("&");
- client.print("t1=");
- client.print(t2);
- client.print("&");
- client.print("name=xxxxxxxxx");
- client.println(" HTTP/1.1");
- client.print( "Host: " );
- client.println(server);
- client.println( "Connection: close" );
- client.println();
- client.println();
- client.stop();
- client.flush();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement