solar_charger/soler_chager.ino

135 lines
2.5 KiB
Arduino
Raw Normal View History

2022-12-29 02:57:16 +00:00
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
2022-12-29 03:25:00 +00:00
#include <DHT.h>
2022-12-29 02:57:16 +00:00
#define DHT11_PIN 7
#define photos A0
#define LED 3
#define button 2
#define buzzer 6
2022-12-29 03:25:00 +00:00
DHT dht(DHT11_PIN, DHT11);
2022-12-29 02:57:16 +00:00
volatile int buttonState;
volatile int lightValue = 0;
2022-12-29 02:57:16 +00:00
int count;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
Serial.begin(9600);
Serial.print("setting up!\n");
pinMode(LED, OUTPUT); //initialize digital pin LED as an output.
pinMode(button, INPUT);
pinMode(buzzer, OUTPUT);
Serial.print("init lcd\n");
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.printstr("Hello, World!");
lcd.setCursor(0,1);
lcd.printstr("hello, Roald!");
2022-12-29 03:25:00 +00:00
dht.begin(20);
2022-12-29 03:25:00 +00:00
2022-12-29 02:57:16 +00:00
Serial.print("done setting up!\n");
}
void loop()// the loop function runs over and over again forever
{
//Serial.print("[");
//Serial.print(count);
//Serial.print("] hey\n");
lightValue = analogRead(photos);
if (lightValue > 300){
digitalWrite(LED, HIGH);
}
else{
digitalWrite(LED, LOW);
}
2022-12-29 02:57:16 +00:00
2022-12-29 03:25:00 +00:00
float hum;
float temp;
temp = dht.readTemperature();
hum = dht.readHumidity();
2022-12-29 02:57:16 +00:00
{
Serial.print("humidity: ");
2022-12-29 03:25:00 +00:00
Serial.print(hum);
Serial.print(" temperature: ");
Serial.print(dht.convertCtoF(temp));
Serial.print(" light: ");
Serial.println(lightValue);
delay(50);
2022-12-29 02:57:16 +00:00
}
2022-12-29 03:25:00 +00:00
//delay(100);
2022-12-29 02:57:16 +00:00
//blink();
buttonState = digitalRead(button);
if(buttonState == 0) {
digitalWrite(LED, HIGH);
birthdaySong();
} else {
digitalWrite(LED, LOW);
}
//delay(100);
2022-12-29 02:57:16 +00:00
//count++;
2022-12-29 03:25:00 +00:00
}
2022-12-29 02:57:16 +00:00
void birthdaySong() {
tone(buzzer, 294);
delay(250);
tone(buzzer, 440);
delay(250);
tone(buzzer, 392);
delay(250);
tone(buzzer, 532);
delay(250);
tone(buzzer, 494);
delay(500);
tone(buzzer, 392);
delay(250);
tone(buzzer, 440);
delay(250);
tone(buzzer, 392);
delay(250);
noTone(buzzer);
tone(buzzer, 587);
delay(250);
tone(buzzer, 532);
delay(500);
tone(buzzer, 392);
delay(250);
tone(buzzer, 784);
delay(250);
tone(buzzer, 659);
delay(250);
tone(buzzer, 532);
delay(250);
tone(buzzer, 494);
delay(250);
tone(buzzer, 440);
delay(250);
tone(buzzer, 698);
delay(375);
tone(buzzer, 659);
delay(250);
tone(buzzer, 532);
delay(250);
tone(buzzer, 587);
delay(250);
tone(buzzer, 532);
delay(500);
noTone(buzzer);
}
void blink()
{
digitalWrite(LED,HIGH); //turn the LED on (HIGH is the voltage level
delay(1000); //wait for a second
digitalWrite(LED,LOW); //turn the LED off by making the voltage LOW
delay(1000); //wait for a second
}