Išmanioji lempa "Pasaulinė temperatūra"


#1

Lempa matuoja oro temperatūrą, taip pat galima reguliuoti lempos mirksėjimą su potenciometru.

Jeigu žemiau 0 °C, lempa šviečia baltai;
jeigu 1°C-15°C - mėlyna;
jeigu 16°C-20°C - žydra;
jeigu 21°C-25°C - žalia;
jeigu 26°C-30°C - raudona;
jeigu daugiau negu 30°C - violetinė.

Lempai buvo naudojami 3 RGB LED, Arduino micro, potenciometras, DH11 temperatūros jutiklis, breadbordas, USB laidas, 3 rezistoriai po 150 ohm. Taip pat buvo išpjauta dėžutė ir stikliukas su pasaulio žemėlapio atvaizdu.

Korpusas paruoštas su InkScape programa
I%C5%A1manioji%20lempa

Arduino kodas

#include "dht.h"
#define dht_apin A0
 
dht DHT;

void setup() {
   pinMode(2, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(4, OUTPUT);
  Serial.begin(9600);
  delay(500);
  Serial.println("DHT11 Humidity & temperature Sensor\n\n");
  
  delay(1000);

}

void loop() {
  int sensorValue = analogRead(A3);
  Serial.print("SensorValue = ");
  Serial.println(sensorValue);
   
   DHT.read11(dht_apin);
    
    Serial.print("Current humidity = ");
    Serial.print(DHT.humidity);
    Serial.print("%  ");
   
    Serial.print("temperature = ");
    Serial.print(DHT.temperature); 
    Serial.println("C  ");

    delay(200);

/*   if (DHT.temperature <=0){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);}
    
     if (DHT.temperature <15){
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(2, HIGH);}

     if (DHT.temperature >=15 && DHT.temperature <20){
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(2, HIGH);}

     if (DHT.temperature >=20 && DHT.temperature <25){
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
    digitalWrite(2, HIGH);}

     if (DHT.temperature >=25 && DHT.temperature <30){
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(2, LOW); }
    
     if (DHT.temperature >=30){
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(2, LOW);}

    */
   
    if (sensorValue <256){
   project();}
    
    if (sensorValue >=256 && sensorValue <512){
   project();
   delay(10);
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, HIGH);
   delay(10);}

    if (sensorValue >=512 && sensorValue <768){
   project();
   delay(100);
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, HIGH);
   delay(100);}

    if (sensorValue >=768 && sensorValue <1024){
   project();
   delay(1000);
   digitalWrite(2, HIGH);
   digitalWrite(3, HIGH);
   digitalWrite(4, HIGH);
   delay(1000);}
         
    

}

void project() {
    
     if (DHT.temperature <=0){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);}
    
     if (DHT.temperature <15){
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(2, HIGH);}

     if (DHT.temperature >=15 && DHT.temperature <20){
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(2, HIGH);}

     if (DHT.temperature >=20 && DHT.temperature <25){
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
    digitalWrite(2, HIGH);}

     if (DHT.temperature >=25 && DHT.temperature <30){
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(2, LOW); }
    
     if (DHT.temperature >=30){
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(2, LOW);}
}

Darbo eiga

  1. Išsipjoviau ir suklijavau dėžutę
  2. Sulitavau ir surinkau elektroninę dalį
  3. Sudėjau lempą į dėžutę
  4. Patikrinau ar veikia

Konkursas #2019 - Mokyklos Maker Faire
Konkursas #2019 - Mokyklos Maker Faire