Küresel ısınma dünyamızın iklimini her geçen gün daha da kötü etkiliyor. Ülkeler küresel ısınmanın etkilerini azaltmak için birçok önlem almakta ve anlaşmalara imza atmaktadır. Yenilenebilir enerji kaynaklarının kullanımı ve enerjinin verimli kullanılması fabrikalardan odalarımıza kadar her yerde dikkat edilmesi gereken bir konudur. Şehirlerde yol ve park aydınlatmalarının insan hatası nedeniyle açık tutulması, yüksek enerji tüketen aydınlatma araçlarının kullanılması gibi birçok neden enerji verimliliğini düşürmektedir. Ortamın ışık, sıcaklık ve nem değerlerini ölçerek, yalnızca ihtiyaç duyulduğunda ve doğru miktarda kullanılmasını sağlamak amacıyla birçok elektronik ve dijital sistem mühendisler tarafından geliştirilip programlanmaktadır.
Bu projemizde Picobricks'teki ışık sensörünü kullanarak gün ışığına göre ayarlanan zamanlayıcı alarm oluşturacağız.
Ayrıntılar ve Algoritma
Bu projemizde basit bir alarm uygulaması yapacağız. Tasarlayacağımız alarm sistemi sabahları otomatik olarak ses verecek şekilde tasarlanmıştır. Bunun için kullanacağımız LDR Projedeki sensör.Geceleri, OLED ekran kullanıcıya bir iyi geceler mesajı görüntüleyecek, sabahları bir alarm çalacaktır. zil Ses duyulduğunda ekranda bir günaydın mesajı görüntülenecek ve RGB LED'i ışıklı bildirim için beyaz renkte yanacaktır. Kullanıcının tuşuna basması gerekecek düğme Alarmı durdurmak için Picobricks'e basın. Alarm durana kadar devam eden bu işlemlerden sonra butona basıldığında buzzer ve RGB LED kapanacak ve OLED ekranda iyi günler mesajı görüntülenecektir.
Bileşenler
1X PicoBrick
Bağlantı şeması
Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.
PicoBricks'in MicroBlock Kodları
Mikrobloklar Çalıştır sekmesine görseli sürükleyerek veya butonuna tıklayarak projenin Mikroblok kodlarına ulaşabilirsiniz.
PicoBricks'in MicroPython Kodları
Pico'daki donanıma erişmek için makine içe aktarma Pininden,I2C,ADC,PWM #
picobricks'ten importSSD1306_I2C #OLED Ekran Kitaplığı
kullanım süresini içe aktar
picobricks importWS2812 #ws8212 kütüphanesinden
#OLED Ekran Ayarları
GENİŞLİK=128YÜKSEK=64
sda=machine.Pin(4)
scl=machine.Pin(5)
#dijital pin 4 ve 5'iOLED İletişimi için ÇIKIŞ olarak başlat
i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
neo =WS2812(pin_num=6, num_leds=1, parlaklık=0,3)#dijital pin 6'yı NeoPixel için bir ÇIKIŞ olarak başlat
oled =SSD1306_I2C(128,64, i2c)
ldr =ADC(Pin(27))#dijital pin 6'yı NeoPixel için bir ÇIKIŞ olarak başlat
düğme =Pin(10,Pin.IN,Pin.PULL_DOWN)#dijital pin 10'u düğme için bir INPUT olarak başlat
sesli uyarı =PWM(Pin(20, Pin.OUT))#dijital pin 20'yi sesli uyarı için bir ÇIKIŞ olarak başlat
buzzer.freq(1000)SİYAH=(0,0,0)BEYAZ=(255,255,255)
#RGB siyah beyaz renk kodu
oled.fill(0)
oled.show()
neo.pixels_fill(SİYAH)
neo.pixels_show()if ldr.read_u16()<4000:
uyanma = Doğru
başka:
uyanma = Yanlış
while Doğru:while up==Yanlış:
oled.fill(0)
oled.show()
oled.text("İyi geceler",25,32)
oled.show()
#OLED'de göster ve "İyi geceler" yaz
utime.sleep(1)if ldr.read_u16()40000:
uyanma= Yanlış
utime.sleep(1)
#bir saniye bekle
PicoBricks'in Arduino C Kodları
#katmak
#ifdef __AVR__
#katmak
#endif
#PIN6'yı tanımla
#define NUMPIXELS1
Adafruit_NeoPixel pikselleri(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);
#katmak
#include "ACROBOTIC_SSD1306.h"
int butonu;voidsetup(){// bir kez çalıştırmak için kurulum kodunuzu buraya koyun:
Wire.begin();
oled.init();
oled.clearDisplay();
#iftanımlanmaktadır(__AVR_ATtiny85__)&&(F_CPU==16000000)clock_prescale_set(clock_div_1);
#endif
pinMode(10,INPUT);pinMode(27,INPUT);pinMode(20,OUTPUT);
piksel.begin();
piksel.setPixelColor(0, piksel.Color(0,0,0));
Pixels.show();}voidloop(){// tekrar tekrar çalışacak şekilde ana kodunuzu buraya koyun:
oled.setTextXY(4,3);
oled.putString("İyi geceler");if(analogRead(27)<200){while(!(button ==1)){
düğme=digitalRead(10);
oled.setTextXY(4,2);
oled.putString("Günaydın");
piksel.setPixelColor(0, piksel.Color(255,255,255));
piksel.show();tone(20,494);}
oled.clearDisplay();
oled.setTextXY(4,1);
oled.putString("İyi günler");noTone(20);
piksel.setPixelColor(0, piksel.Color(0,0,0));
piksel.show();delay(10000);}}
GitHub Sayfası