Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #define DHTPIN 10 // what digital pin we're connected to
- #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
- #include <Wire.h>
- #include <BH1750.h>
- #include <OneWire.h>
- BH1750 lightMeter;
- int sensor = A0; //Sensor pin
- OneWire ds(2); // on pin 10 (a 4.7K resistor is necessary)
- const int analogInPin = A2;
- const int analogOutPin = 9;
- int sensorValue = 0;
- int outputValue = 0;
- DHT dht(DHTPIN, DHTTYPE);
- void setup() {
- Serial.begin(9600);
- dht.begin();
- lightMeter.begin();
- pinMode(sensor,INPUT);
- }
- void loop() {
- float h = dht.readHumidity();
- float k = dht.readTemperature();
- uint16_t lux = lightMeter.readLightLevel();
- int x = analogRead(sensor);
- sensorValue = analogRead(analogInPin);
- outputValue = map(sensorValue, 0, 1023, 0, 14);
- analogWrite(analogOutPin, outputValue);
- if (isnan(h) || isnan(k)) {
- return; }
- byte i;
- byte present = 0;
- byte type_s;
- byte data[12];
- byte addr[8];
- float celsius, fahrenheit;
- if ( !ds.search(addr)) {
- ds.reset_search();
- delay(250);
- return;}
- if (OneWire::crc8(addr, 7) != addr[7]) {
- return;}
- ds.reset();
- ds.select(addr);
- ds.write(0x44, 1); // start conversion, with parasite power on at the end
- delay(1000); // maybe 750ms is enough, maybe not
- // we might do a ds.depower() here, but the reset will take care of it.
- present = ds.reset();
- ds.select(addr);
- ds.write(0xBE); // Read Scratchpad
- for ( i = 0; i < 9; i++) { // we need 9 bytes
- data[i] = ds.read(); }
- int16_t raw = (data[1] << 8) | data[0];
- if (type_s) {
- raw = raw << 3; // 9 bit resolution default
- if (data[7] == 0x10) {
- // "count remain" gives full 12 bit resolution
- raw = (raw & 0xFFF0) + 12 - data[6];
- }
- } else {
- byte cfg = (data[4] & 0x60);
- // at lower res, the low bits are undefined, so let's zero them
- if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
- else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
- else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
- //// default is 12 bit resolution, 750 ms conversion time
- }
- celsius = (float)raw / 16.0;
- fahrenheit = celsius * 1.8 + 32.0;
- Serial.print(h);//vlaznost zraka
- Serial.print(" ");
- Serial.print(k);//temperatura zraka C
- Serial.print(" ");
- Serial.print(lux);//svjetlost
- Serial.print(" ");
- Serial.print(x);//vlaznost zemljista %
- Serial.print(" ");
- Serial.print(celsius);// temperatura zemljista
- Serial.print(" ");
- Serial.println(analogRead(2)*14.0/1024, 1);//PH vrijednost
- }
- // Humidity zrak , Temperature(C) zrak, svjetlost
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement