10 $ bärbara Arduino väderstation (AWS) (5 / 5 steg)
Steg 5: Dags för kod
Wait ....................
Hämta bibliotek
BMP180
https://github.com/Sparkfun/BMP180_Breakout_Arduin...
Dht22 bibliotek
https://github.com/adafruit/DHT-sensor-Library
Om du vill installera ett bibliotek i arduino kolla denna länk
https://www.Arduino.cc/en/guide/libraries
Jag har använt arduino 1.6.5 så att koden fungerar för den här versionen för säker, kan också vara för högre om helst det n't fungerar Använd 1.6.5 som basen version.
< p > #include < wire.h >< br > #include < lcd.h >
#include
< liquidcrystal_i2c.h >
#include "DHT.h"
#include < sfe_bmp180.h >< /sfe_bmp180.h >< /liquidcrystal_i2c.h >< /lcd.h >< /wire.h >< /p >< p > SFE_BMP180 trycket; < /p >< p > #define höjd 20.56
#define I2C_ADDR 0x27 / / <<-lägga till din adress här.
#define Rs_pin 0
#define Rw_pin 1
#define En_pin 2
#define BACKLIGHT_PIN 3
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7 < /p >< p > #define DHTPIN 2 / / vad digital pin vi är ansluten till < /p >< p > / / avkommentera oavsett vilken typ du använder!
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302), AM2321
DHT dht (DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
float t1, t2; < /p >< p >
void setup()
{
Serial.BEGIN(9600);
LCD.BEGIN (16,2); <<--våra LCD är en 20 x 4, förändring för din LCD-skärm om det behövs
LCD-bakgrundsbelysningen på
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
LCD.Home (); gå hem på LCD
LCD.Print ("väderstation");
Delay(5000);
DHT.BEGIN();
Pressure.BEGIN();
}
void loop()
{
char status;
T, P, p0, a;
status = pressure.startTemperature();
om (status! = 0)
{
Delay(status); < /p >< p > status = pressure.getTemperature(T);
om (status! = 0)
{
Serial.Print("1");
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("Baro temperatur:");
lcd.setCursor(0,1);
LCD.Print(T,2);
LCD.Print ("deg C");
T1 = T;
Delay(3000); < /p >< p > status = pressure.startPressure(3);
om (status! = 0)
{
Vänta för mätning att slutföra:
Delay(status); < /p >< p > status = pressure.getPressure(P,T);
om (status! = 0)
{lcd.clear();
lcd.setCursor(0,0);
LCD.Print ("abslt tryck:");
lcd.setCursor(0,1);
LCD.Print(P,2);
LCD.Print ("mb");
Delay(3000); < /p >< p > p0 = pressure.sealevel(P,ALTITUDE); Vi på 1655 meter (Boulder, CO) < /p >< p > en = pressure.altitude(P,p0);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("höjd:");
lcd.setCursor(0,1);
LCD.Print(a,0);
LCD.Print ("mäter");
Delay(3000);
}
}
}
}
flyta h = dht.readHumidity();
Läs temperatur som Celsius (standard)
flyta t = dht.readTemperature();
T2 = t;
LCD.Clear();
lcd.setCursor (0,0); gå till start av 2: a raden
LCD.Print ("luftfuktighet:");
lcd.setCursor(0,1);lcd.print(h);
LCD.Print ("%");
Delay(3000);
LCD.Clear();
lcd.setCursor (0,0); gå till start av 2: a raden
LCD.Print ("DHT Tempurature:");
lcd.setCursor(0,1);
LCD.Print(t);
LCD.Print ("deg C");
Delay(3000);
LCD.Clear();
lcd.setCursor (0,0); gå till start av 2: a raden
LCD.Print ("menar Tempurature:");
lcd.setCursor(0,1);
LCD.Print((T1+T2)/2);
LCD.Print ("deg C");
Delay(3000);
} < /p >