Die globale Erwärmung beeinflusst das Klima unserer Welt von Tag zu Tag schlimmer. Länder treffen zahlreiche Vorkehrungen und unterzeichnen Vereinbarungen, um die Auswirkungen der globalen Erwärmung zu verringern. Die Nutzung erneuerbarer Energiequellen und die effiziente Nutzung von Energie ist ein Thema, das überall Aufmerksamkeit erfordert, von der Fabrik bis zu unseren Räumen. Viele Gründe, wie z. B. das Einschalten der Straßen- und Parkbeleuchtung in Städten aufgrund menschlicher Fehler und der Einsatz energieintensiver Beleuchtungsgeräte, verringern die Energieeffizienz. Viele elektronische und digitale Systeme werden von Ingenieuren entwickelt und programmiert, um die Licht-, Temperatur- und Feuchtigkeitswerte der Umgebung zu messen und sicherzustellen, dass sie nur bei Bedarf und in der richtigen Menge verwendet werden.
In diesem Projekt erstellen wir einen Timer-Alarm, der sich mithilfe des Lichtsensors in Picobricks an das Tageslicht anpasst.
Details und Algorithmus
In diesem Projekt werden wir eine einfache Alarmanwendung erstellen. Das von uns entworfene Alarmsystem ist so konzipiert, dass es morgens automatisch ertönt. Dafür verwenden wir LDR Sensor im Projekt..Nachts, die OLED-Bildschirm zeigt dem Benutzer eine Gute-Nacht-Nachricht an, am Morgen ertönt ein Alarm mit einem Summer ertönt, eine Guten-Morgen-Nachricht wird auf dem Bildschirm angezeigt und die RGB-LED leuchtet zur Lichtbenachrichtigung weiß auf. Der Benutzer muss die Taste drücken Taste von Picobricks, um den Alarm zu stoppen. Nach diesen Vorgängen, die so lange andauern, bis der Alarm gestoppt wird, erlöschen beim Drücken der Taste der Summer und die RGB-LED und auf dem OLED-Bildschirm wird eine Gute-Tag-Meldung angezeigt.
Komponenten
1X PicoBricks
Schaltplan
Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.
MicroBlocks-Codes der PicoBricks
Sie können auf die Microblocks-Codes des Projekts zugreifen, indem Sie das Bild auf die Registerkarte „Microblocks Run“ ziehen oder auf die Schaltfläche klicken.
Registerkarte „Mikroblöcke ausführen“.
MicroPython-Codes der PicoBricks
Von der Maschine importieren Sie Pin,I2C,ADC,PWM #um auf die Hardware auf dem Pico zuzugreifen
von picobricks importSSD1306_I2C #OLED Screen Library
Zeit importieren
aus der picobricks importWS2812 #ws8212-Bibliothek
#OLED-Bildschirmeinstellungen
BREITE=128HÖHE=64
sda=machine.Pin(4)
scl=machine.Pin(5)
#initialisieren Sie die digitalen Pins 4 und 5 als AUSGANG für die OLED-Kommunikation
i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
neo =WS2812(pin_num=6, num_leds=1, helligkeit=0,3)#digitalen Pin 6 als AUSGANG für NeoPixel initialisieren
oled =SSD1306_I2C(128,64, i2c)
ldr =ADC(Pin(27))#digitalen Pin 6 als AUSGANG für NeoPixel initialisieren
button =Pin(10,Pin.IN,Pin.PULL_DOWN)#digitalen Pin 10 als EINGANG für die Schaltfläche initialisieren
Summer =PWM(Pin(20, Pin.OUT))#digitalen Pin 20 als AUSGANG für den Summer initialisieren
Buzzer.freq(1000)BLACK=(0,0,0)WHITE=(255,255,255)
#RGB Schwarz-Weiß-Farbcode
oled.fill(0)
oled.show()
neo.pixels_fill(SCHWARZ)
neo.pixels_show()if ldr.read_u16()<4000:
wakeup = True
anders:
wakeup = Falsch
while True:while wakeup==False:
oled.fill(0)
oled.show()
oled.text("Gute Nacht",25,32)
oled.show()
#Auf OLED anzeigen und „Gute Nacht“ drucken
utime.sleep(1)if ldr.read_u16()40000:
wakeup= Falsch
utime.sleep(1)
#warte eine Sekunde
Arduino C-Codes der PicoBricks
#enthalten
#ifdef __AVR__
#enthalten
#endif
#PIN6 definieren
#define NUMPIXEL1
Adafruit_NeoPixel Pixel(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);
#enthalten
#include „ACROBOTIC_SSD1306.h“
int button;voidsetup(){// Geben Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen:
Wire.begin();
oled.init();
oled.clearDisplay();
#ifdefined(__AVR_ATtiny85__)&&(F_CPU==16000000)clock_prescale_set(clock_div_1);
#endif
pinMode(10,INPUT);pinMode(27,INPUT);pinMode(20,OUTPUT);
pixels.begin();
pixels.setPixelColor(0, pixels.Color(0,0,0));
pixels.show();}voidloop(){// Fügen Sie hier Ihren Hauptcode ein, um ihn wiederholt auszuführen:
oled.setTextXY(4,3);
oled.putString("Gute Nacht");if(analogRead(27)<200){while(!(button ==1)){
button=digitalRead(10);
oled.setTextXY(4,2);
oled.putString("Guten Morgen");
pixels.setPixelColor(0, pixels.Color(255,255,255));
pixels.show();tone(20,494);}
oled.clearDisplay();
oled.setTextXY(4,1);
oled.putString("Einen schönen Tag noch");noTone(20);
pixels.setPixelColor(0, pixels.Color(0,0,0));
pixels.show();delay(10000);}}
GitHub-Seite