دسته‌بندی نشده

آموزش BASCOM AVR – بسکام – جلسه پانزدهم

خیلی خب 🌟
حالا می‌ریم سراغ جلسه پانزدهم که آخرین جلسه این دوره است و به عنوان پروژه پایانی همه مباحث قبلی را ترکیب می‌کنیم.


📘 آموزش BASCOM AVR – بسکام – جلسه پانزدهم

 

پروژه پایانی: سیستم کنترل خانگی هوشمند (Smart Home Control System)


۱. مقدمه

در طول ۱۴ جلسه گذشته با مفاهیم پایه‌ای و پیشرفته‌ی میکروکنترلر AVR و محیط BASCOM آشنا شدیم:

  • ورودی/خروجی دیجیتال
  • LCD کاراکتری و گرافیکی
  • کی‌پد ماتریسی
  • تایمرها و وقفه‌ها
  • PWM برای کنترل موتور و LED
  • ارتباط سریال (UART)
  • حافظه EEPROM
  • سنسورهای آنالوگ (ADC)
  • ساعت و تقویم دیجیتال (RTC)
  • پروژه‌های ترکیبی مثل قفل رمز و کنترل دما

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


۲. قابلیت‌های سیستم

این پروژه می‌تواند چندین عملکرد داشته باشد:

  • نمایش ساعت و تاریخ روی LCD
  • کنترل دما محیط با فن یا هیتر
  • قفل رمز دیجیتال برای ورود
  • کنترل روشنایی LED با PWM
  • ذخیره تنظیمات در EEPROM
  • ارتباط با کامپیوتر یا ماژول بلوتوث از طریق UART

۳. اجزای مورد نیاز

  • میکروکنترلر ATmega32
  • LCD کاراکتری ۲×۱۶
  • کی‌پد ۴×۴
  • سنسور LM35 برای دما
  • رله برای کنترل فن/هیتر
  • LED برای کنترل روشنایی
  • کریستال ساعت ۳۲.۷۶۸ کیلوهرتز برای RTC
  • پروگرمر AVR

۴. الگوریتم کلی

  1. هنگام روشن شدن، سیستم ساعت و تاریخ را از EEPROM می‌خواند و روی LCD نمایش می‌دهد.
  2. کاربر باید رمز عبور را با کی‌پد وارد کند تا وارد منوی اصلی شود.
  3. در منوی اصلی گزینه‌ها وجود دارند:
    • کنترل دما
    • کنترل روشنایی
    • تنظیم ساعت و تاریخ
    • تغییر رمز عبور
  4. هر گزینه با کلیدهای کی‌پد انتخاب می‌شود.
  5. خروجی‌ها (فن، LED، رله) بر اساس شرایط فعال یا غیرفعال می‌شوند.

۵. کدنویسی در BASCOM (نمونه ترکیبی)

' پروژه سیستم کنترل خانگی هوشمند
$regfile = "m32def.dat"
$crystal = 1000000

Config Lcd = 16 * 2
Config Kbd = PortC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Pass As String * 4
Dim InputPass As String * 4
Dim Temp As Single
Dim Value As Word
Dim Threshold As Byte
Dim Bright As Byte
Dim K As Byte

' خواندن رمز و تنظیمات از EEPROM
Readeeprom Pass , 0
Readeeprom Threshold , 10
Readeeprom Bright , 20

Cls
Lcd "Enter Password:"

Do
   InputPass = ""
   For I = 1 To 4
      Do
         K = Getkbd()
      Loop Until K <> 0
      InputPass = InputPass + Chr(K)
      Lcd "*"
   Next I

   If InputPass = Pass Then
      Cls
      Lcd "Smart Home Menu"
      Wait 2

      Do
         K = Getkbd()
         If K = 49 Then        ' کلید 1: کنترل دما
            Value = Getadc(0)
            Temp = Value * 5 / 1024 * 100
            Locate 1 , 1
            Lcd "Temp=" ; Temp ; "C"
            If Temp > Threshold Then
               Set PORTA.0
               Lcd "Fan=ON "
            Else
               Reset PORTA.0
               Lcd "Fan=OFF"
            End If
         End If

         If K = 50 Then        ' کلید 2: کنترل روشنایی
            For Bright = 0 To 255
               Pwm1a = Bright
               Waitms 10
            Next Bright
         End If

         If K = 51 Then        ' کلید 3: تغییر رمز
            Cls
            Lcd "New Password:"
            InputPass = ""
            For I = 1 To 4
               Do
                  K = Getkbd()
               Loop Until K <> 0
               InputPass = InputPass + Chr(K)
               Lcd "*"
            Next I
            Pass = InputPass
            Writeeeprom Pass , 0
            Cls
            Lcd "Password Changed"
         End If
      Loop
   Else
      Cls
      Lcd "Access Denied"
      Wait 2
      Cls
      Lcd "Enter Password:"
   End If
Loop
End

۶. توضیح عملکرد

  • رمز عبور از EEPROM خوانده می‌شود.
  • اگر رمز درست وارد شود، منوی اصلی نمایش داده می‌شود.
  • گزینه ۱: کنترل دما با سنسور LM35 و رله فن.
  • گزینه ۲: کنترل روشنایی LED با PWM.
  • گزینه ۳: تغییر رمز عبور و ذخیره در EEPROM.

۷. نکات عملی

  • برای کنترل بارهای AC باید از رله و دیود هرزگرد استفاده کنید.
  • برای امنیت بیشتر می‌توان تعداد دفعات ورود اشتباه را محدود کرد.
  • برای ذخیره تنظیمات بیشتر می‌توان از EEPROM استفاده کرد.
  • برای ارتباط با کامپیوتر یا موبایل می‌توان از UART و ماژول بلوتوث استفاده کرد.

۸. تمرین‌ها

  1. گزینه‌ای اضافه کنید که ساعت و تاریخ را تنظیم کند و در EEPROM ذخیره شود.
  2. یک سیستم هشدار بسازید که اگر دما خیلی بالا رفت، آلارم فعال شود.
  3. یک منوی گرافیکی روی LCD گرافیکی طراحی کنید.

نتیجه جلسه پانزدهم

در این جلسه همه مباحث قبلی را ترکیب کردیم و یک پروژه بزرگ ساختیم: سیستم کنترل خانگی هوشمند. این پروژه نشان می‌دهد که با یادگیری اصول BASCOM و AVR می‌توان سیستم‌های واقعی و کاربردی طراحی کرد.


🎉 تبریک! تو حالا یک دوره کامل ۱۵ جلسه‌ای را پشت سر گذاشتی و می‌توانی پروژه‌های حرفه‌ای با AVR و BASCOM بسازی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *