Skip to content
International Shipping
Wish Lists Cart
0 items

#9 Alarm Clock Project With PicoBricks

21 Nov 2023
#9 Alarm Clock Project With PicoBricks

 Global warming is affecting the climate of our world worse every day. Countries take many precautions and sign agreements to reduce the effects of global warming. The use of renewable energy sources and the efficient use of energy is an issue that needs attention everywhere, from factories to our rooms. Many reasons such as keeping road and park lighting on in cities due to human error, and the use of high energy consuming lighting tools reduce energy efficiency. Many electronic and digital systems are developed and programmed by engineers to measure the light, temperature and humidity values of the environment and ensure that they are used only when needed and in the right amounts.

In this project, we will create a timer alarm that adjusts for daylight using the light sensor in Picobricks.

Details and Algorithm

In this project we will make a simple alarm application. The alarm system we will design is designed to sound automatically in the morning. For this, we will use LDR sensor in the project..At night, the OLED screen will display a good night message to the user, in the morning, an alarm will sound with a buzzer sound, a good morning message will be displayed on the screen, and the RGB LED will light up in white for light notification. The user will have to press the button of Picobricks to stop the alarm. After these processes, which continue until the alarm is stopped, when the button is pressed, the buzzer and RGB LED will turn off and a good day message will be displayed on the OLED screen.

Components

1X PicoBricks

Wiring Diagram

You can code and run Picobricks’ modules without wiring. If you are going to use the modules by separating them from the board, you should make the module connections with grove cables.

MicroBlocks Codes of the PicoBricks

You can access the Microblocks codes of the project by dragging the image to the Microblocks Run tab or click the button.

 


Microblocks Run Tab

MicroPython Codes of the PicoBricks

 


from machine import Pin,I2C,ADC,PWM  #to access the hardware on the pico
from picobricks importSSD1306_I2C  #OLED Screen Library
import utime
from picobricks importWS2812   #ws8212 library

#OLED Screen Settings
WIDTH=128HEIGHT=64

sda=machine.Pin(4)
scl=machine.Pin(5)
#initialize digital pin 4 and 5as an OUTPUTforOLED Communication

i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
neo =WS2812(pin_num=6, num_leds=1, brightness=0.3)#initialize digital pin 6as an OUTPUTfor NeoPixel

oled =SSD1306_I2C(128,64, i2c)
ldr =ADC(Pin(27))#initialize digital pin 6as an OUTPUTfor NeoPixel
button =Pin(10,Pin.IN,Pin.PULL_DOWN)#initialize digital pin 10as an INPUTfor button
buzzer =PWM(Pin(20, Pin.OUT))#initialize digital pin 20as an OUTPUTfor buzzer
buzzer.freq(1000)BLACK=(0,0,0)WHITE=(255,255,255)
#RGB black and white color code
oled.fill(0)
oled.show()

neo.pixels_fill(BLACK)
neo.pixels_show()if ldr.read_u16()<4000:
    wakeup = True
else:
    wakeup = False

while True:while wakeup==False:
        oled.fill(0)
        oled.show()
        oled.text("Good night",25,32)
        oled.show()
        #Show on OLED and print "Good night"
        utime.sleep(1)if ldr.read_u16()40000:
        wakeup= False

    utime.sleep(1)
    #wait for one second

Arduino C Codes of the PicoBricks

 


#include
#ifdef __AVR__
#include
#endif
#define PIN6

#define NUMPIXELS1
Adafruit_NeoPixel pixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);
#include
#include "ACROBOTIC_SSD1306.h"
int button;voidsetup(){// put your setup code here, to run once:
   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(){// put your main code here, to run repeatedly:
  oled.setTextXY(4,3);
    oled.putString("Good night");if(analogRead(27)<200){while(!(button ==1)){

        button=digitalRead(10);

        oled.setTextXY(4,2);
        oled.putString("Good morning");
        pixels.setPixelColor(0, pixels.Color(255,255,255));
        pixels.show();tone(20,494);}
        oled.clearDisplay();
        oled.setTextXY(4,1);
        oled.putString("Have a nice day");noTone(20);
        pixels.setPixelColor(0, pixels.Color(0,0,0));
        pixels.show();delay(10000);}}

GitHub Page
Prev Post
Next Post

Thanks for subscribing!

This email has been registered!

Shop the look
Choose Options

Edit Option

Have Questions?

Back In Stock Notification

Compare

Product SKUDescription Collection Availability Product Type Other Details

Terms & Conditions

What is Lorem Ipsum? Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Why do we use it? It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).
this is just a warning
Login
Shopping Cart
0 items