جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > ساخت ساعت هشدار دهنده با استفاده از رزبری پای

ساخت ساعت هشدار دهنده با استفاده از رزبری پای

دی 7, 1397
ارسال شده توسط mjavad
پروژه، پروژه های رایگان، پروژه های رزبری پای

به نام خدا

ساخت ساعت هشدار دهنده با استفاده از رزبری پای

در این پروژه قصد داریم تا یک ساعت با هشدار با استفاده از رزبری پای و ماژول ساعت DS1307  بسازیم که ساعت و زمان هشدار را بر روی ال سی دی نمایش دهد. اگرچه خود رزبری پای یک ساعت داخلی دارد اما در نبود اینترنت بعد از هر ریبوت ساعت ان بهم میریزد. برای دستیابی به ساعت دقیق بدون اتصال به اینترنت نیاز داریم تا از آن ماژول استفاده کنیم. این دکمه یک کلید باتری دارد که در هنگام ریبوت کردن تغذیه خواهد داشت و زمان از دست نخواهد رفت. با استفاده از آن 5 میکرو سوییچ نیز میتوانیم ساعت را به اصلاح کوک کنیم.

قطعات مورد نیاز ساخت ساعت هشدار دهنده با استفاده از رزبری پای :

رزری پای با سیستم عامل نصب شده

با باتری RTC Module DS1307

منبع تغذیه

مقاومت یک کیلو اهمی شش عدد

5 میکرو سوییچ

ال سی دی 2 در 16

ترانزیستور 2N2222

بازر

 

تنظیمات رزبری پای برای ساعت هشدار دهنده:

قبل از اینکه به جلو برویم ، باید پیکره بندی رزبری پای را برای اتصال با ماژول انجام دهیم. برای اینکار مراحل زیر را انجام می دهیم.

مرحله ی اول: به قسمت Raspberry Pi configuration رفته و I2C مطابق را فعال کنید.

Enabling-I2C-for-Raspberry-pi-RTC-alarm-clock

مرحله ی دو : یک پوشه ی جدید بر روی دسکتاپ رزبری پای به نام Alarm Clock ایجاد کنید.

 

مرحله ی سه : فایل هدر را برای ماژول از لینک زیر دانلود کنید :

https://codeload.github.com/switchdoclabs/RTC_SDL_DS1307/zip/master

 

مرحله ی چهار : فایل دانلود شده را در پوشه ی Alarm Clock که در دسکتاپ رزبری پای است اکسترکت کنید.

مرحله ی پنج : پنجره ی ترمینال رزبری پای را باز کرده و دستور زیر را در آن وارد کنید و سپس اینتر بزنید.

sudo apt-get install i2c-tools

این دستور ابزار I2C را برای راه اندازی ماژول نصب می کند. سپس رزبری پای را با دستور sudo reboot ریبوت کنید.

مرحله شش : حال باید آدرس I2C ماژول را بررسی کنیم. قبل از بررسی آدرس ، ابتدا باید ماژول را مطابق شکل بخش شماتیک به رزبری پای متصل کنید و سپس یکی از  کد های زیر را در پنجره ی ترمینال وارد کنید.

sudo i2cdetect -y 0
OR
sudo i2cdetect -y 1

مرحله ی هفت : اگر از هر یک از دستور های بالا استفاده کنید باید همانند تصویر زیر را مشاهده کنید :

 

مرحله ی هشت :اگر به درستی رزبری پای و ماژول متصل کرده باشید آدرس را به درستی مشاهده می کنید.

شماتیک مدار و اتصالات ساخت ساعت هشدار دهنده با استفاده از رزبری پای :

 

اتصالات بین رزبری پای و ال سی دی در جدول زیر قابل مشاهده است :

اتصالات بین رزبری پای و 5 میکروسوییچ نیز در جدول زیر به خوبی قابل مشاهده است.

 

دانلود کد برنامه ساخت ساعت هشدار دهنده با استفاده از رزبری پای :

[maxbutton id=”275″ url=”http://avatrobo.ir/wp-content/uploads/2018/12/Raspberry-Pi-Alarm-Clock-using-RTC-Module-DS1307.txt” ]

import RPi.GPIO as IO  #calling for header file which helps in using GPIO’s of PI
import time            #we are calling for time to provide delays in program
import datetime        #we are calling for DATE
import SDL_DS1307      #calling for special functions which helps us interface RTC module
h=0                    #integers for storing values
m=0
alarm=0
string_of_characters = 0
ds1307 = SDL_DS1307.SDL_DS1307(1, 0x68)  #entering I2c address, which we recorded previously
ds1307.write_now()
IO.setwarnings(False)  #do not show any warnings
IO.setmode (IO.BCM)    #programming the GPIO by BCM pin numbers. (like PIN29 as'GPIO5')
#initialize GPIO17,27,24,23,18,26,5,6,13,19 as an output
IO.setup(17,IO.OUT)
IO.setup(27,IO.OUT)
IO.setup(24,IO.OUT)
IO.setup(23,IO.OUT)
IO.setup(18,IO.OUT)
IO.setup(26,IO.OUT)
IO.setup(5,IO.OUT)
IO.setup(6,IO.OUT)
IO.setup(13,IO.OUT)
IO.setup(19,IO.OUT)
IO.setup(21,IO.IN)  #initialize GPIO21 as an input.
IO.setup(20,IO.IN)  #initialize GPIO20 as an input.
IO.setup(16,IO.IN) 
IO.setup(12,IO.IN) 
IO.setup(25,IO.IN) 
IO.setup(22,IO.OUT) #initialize GPIO22 as an output.
def send_a_command (command):  #steps for sending a command to 16*2LCD
    pin=command
    PORT(pin);
    IO.output(17,0)
    IO.output(27,1)
    time.sleep(0.001)
    IO.output(27,0)
    pin=0
    PORT(pin); 
def send_a_character (character):#steps for sending a character to 16*2 LCD
    pin=character
    PORT(pin);
    IO.output(17,1)
    IO.output(27,1)
    time.sleep(0.001)
    IO.output(27,0)
    pin=0
    PORT(pin);
def PORT(pin):            #assigning level for PI GPIO for sending data to LCD through D0-D7
    if(pin&0x01 == 0x01):
        IO.output(24,1)
    else:
        IO.output(24,0)
    if(pin&0x02 == 0x02):
        IO.output(23,1)
    else:
        IO.output(23,0)
    if(pin&0x04 == 0x04):
        IO.output(18,1)
    else:
        IO.output(18,0)
    if(pin&0x08 == 0x08):
        IO.output(26,1)
    else:
        IO.output(26,0)    
    if(pin&0x10 == 0x10):
        IO.output(5,1)
    else:
        IO.output(5,0)
    if(pin&0x20 == 0x20):
        IO.output(6,1)
    else:
        IO.output(6,0)
    if(pin&0x40 == 0x40):
        IO.output(13,1)
    else:
        IO.output(13,0)
    if(pin&0x80 == 0x80):
        IO.output(19,1)
    else:
        IO.output(19,0)
def send_a_string(string_of_characters):  #steps for sending string of characters to LCD
  string_of_characters = string_of_characters.ljust(16," ")
  for i in range(16):
    send_a_character(ord(string_of_characters[i])) 
#send characters one by one until all the strings characters are sent through data port
while 1: 
    send_a_command(0x38); #use two lines of LCD
    send_a_command(0x0E); #screen and cursor ON
    send_a_command(0x01); #clear screen
    time.sleep(0.1)       #sleep for 100msec
    while 1:
        if (IO.input(21) == 0):
            if (h<23):    #if button1 is pressed and hour count is less than 23 increment 'h' by one
                h=h+1
        if (IO.input(20) == 0):
            if (h>0):     #if button2 is pressed and hour count is more than 0 decrease 'h' by one
                h=h-1
        if (IO.input(16) == 0):
            if (m<59):    #if button3 is pressed and minute count is less than 59 increment 'm' by one
                m=m+1
        if (IO.input(12) == 0):
            if (m>0):     #if button4is pressed and minute count is more than 0 decrease 'm' by one
                m=m-1
        if (IO.input(25) == 0):  #if button5 is pressed toggle Alarm ON and OFF
            if (alarm==0):
                alarm=1
            else:
                alarm=0
            time.sleep(0.1)
        if (alarm==1):
            send_a_command(0x80 + 0x40 + 12);
            send_a_string("ON");  #if alarm is set, then display "ON" at the 12th position of second line of LCD
            if ((h==ds1307._read_hours())):
                if ((m==ds1307._read_minutes())):
                    IO.output(22,1)  #if alarm is set, and hour-minute settings match the RTC time, trigger the buzzer
        if (alarm==0):
            send_a_command(0x80 + 0x40 + 12);
            send_a_string("OFF"); #if alarm is OFF, then display "OFF" at the 12th position of second line of LCD
            IO.output(22,0)       #turn off the buzzer         
        send_a_command(0x80 + 0);   #move courser to 0 position
        send_a_string ("Time:%s:%s:%s" % (ds1307._read_hours(),ds1307._read_minutes(),ds1307._read_seconds()));
        #display RTC hours, minutes, seconds
        send_a_command(0x80 + 0x40 + 0);  #move courser to second line
        send_a_string ("Alarm:%s:%s" % (h,m));  #show alarm time
        time.sleep(0.1)  #wait for 100msec

 

برچسب ها: رزبری پای Bساخت ساعت هشدار دهنده با استفاده از رزبری پایسنسورکد رزبری پای
قبلی تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید
بعدی آموزش نوشتن برنامه به زبان سی بر روی رزبری پای

پست های مرتبط

اردیبهشت 9, 1398

برنامه نویسی به زبان پایتون برای رزبری پای

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول

mjavad
ادامه مطلب

بهمن 2, 1397

ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

آرمان آوات روبو نه تنها تغییر اکنون و تعریف آینده آموزش عملی و کاربردی در ایران، بلکه توسعه همین تغییر به کل دنیا است. نسخه بین المللی آوات روبو، هم اکنون در حال برنامه ریزی است و کارهای اولیه آن برای فعالیت در یوتیوب و یک سایت انگلیسی در حال انجام است.

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.