Väderstationen Arduino / termostat (5 / 6 steg)
Steg 5: Aktuell kod med ledningar instruktioner
Följande är koden som den finns idag. Jag lägger till en andra SHT21 för inomhus/utomhus mäter (betyder hacking en andra I2C kanal, som den SHT21 alla har samma adress och inte kan existera på en kanal), och jag väntar fortfarande för min realtid klocka chip och barometertrycket sensor du kommer från Sparkfun.com (de kom igår, och jag kommer att arbeta med detta på helgen - 9-29-10). Jag migrerade projektet över till min nya Arduino Mega 2560 (58 I/O linjer), och installerat den nya 0021 IDE. Jag kommer att redigera detta instructable som projektet utvecklas.
Anslutningar:
LCD stift 1 till Arduino GND
LCD stift 2 till Arduino 5v
LCD stift 3 (kontrast) till GND
rs (LCD stift 4) till Arduino stift 12
RW (LCD pin 5) till Arduino stift 11
Aktivera (LCD stift 6) till Arduino stift 10
LCD stift 15 till Arduino stift 13
LCD stift 16 till Arduino GND
LCD stift d4, d5, d6 och d7 till Arduino stift 5, 4, 3, 2
Testade med SHT21 Breakout från Misenso
SHT21 stift SDA till Arduino Analog stift 4
SHT21 stift SCL till Arduino Analog stift 5
SHT21 pin GND till Arduino GND
SHT21 pin VCC till Arduino 3v (inte 5v)
RGB LED
Röd katod till Arduino pin 9
Blå katoden till Arduino stift 8
Grön katod till Arduino stift 7
Anod till 270 ohms motstånd till 5V
#include #include
#include
LibHumidity fuktighet = LibHumidity(0);
LiquidCrystal lcd (12, 11, 10, 5, 4, 3, 2);
int bakgrundsbelysning = 13. stift 13 kommer att kontrollera bakgrundsbelysningen
int RedLEDPin = 9; LED är ansluten till digital pin 9
int BlueLEDPin = 8; LED är ansluten till digital stift 8
int GreenLEDPin = 7. LED är ansluten till digital stift 7
void setup()
{
pinMode (bakgrundsbelysning, OUTPUT);
digitalWrite (bakgrundsbelysning, hög); aktivera bakgrundsbelysningen. Ersätt "Hög" med "Låg" att stänga av.
I2C
pinMode (16, OUTPUT);
digitalWrite (16, låg). GND pin
pinMode (17, OUTPUT);
digitalWrite (17, hög), VCC pin
Panna / AC indikator
pinMode (RedLEDPin, OUTPUT); Anger den digitala pin som utdata
pinMode (BlueLEDPin, OUTPUT); Anger den digitala pin som utdata
pinMode (GreenLEDPin, OUTPUT); Anger den digitala pin som utdata
}
void loop()
{
LCD.BEGIN(20,4); kolumner, rader. använda 16,2 för en 16 x 2 LCD, etc.
LCD.Clear(); börja med en tom skärm
lcd.setCursor(0,0); ställa markören till kolumn 0, raden 0 (första raden)
LCD.Print ("luftfuktighet:"); ändra texten till vad du vill. hålla den ren.
LCD.Print (luftfuktighet. GetHumidity());
lcd.setCursor(0,1); ställa markören till kolumn 0, rad 1
LCD.Print ("Temp i C:");
LCD.Print (luftfuktighet. GetTemperatureC());
lcd.setCursor(0,2); ställa markören till kolumn 0, rad 2
LCD.Print ("Temp i F:");
LCD.Print (luftfuktighet. GetTemperatureF());
{
om (luftfuktighet. GetTemperatureF() < 60)
{
digitalWrite (RedLEDPin, låg); Anger den röda lysdioden på
digitalWrite (BlueLEDPin, hög); framhäver den blå lampan
digitalWrite (GreenLEDPin, låg); framhäver den grön LED
}
annars om (luftfuktighet. GetTemperatureF() > = 75)
{
digitalWrite (BlueLEDPin, låg); Anger den blå lysdioden på
digitalWrite (RedLEDPin, hög); framhäver den röda lysdioden
digitalWrite (GreenLEDPin, hög); framhäver den grön LED
}
annat
{
digitalWrite (GreenLEDPin, låg); Anger den gröna lysdioden på
digitalWrite (BlueLEDPin, hög); framhäver den blå lampan
digitalWrite (RedLEDPin, hög); framhäver den röda lysdioden
}
}
fördröjning (20000);
}
Se http://arduinotronics.blogspot.com/2010/09/our-temperature-humidity-monitor-is.html för faktiska koden som instructables bryter vår include-deklarationer.