تشخیص باران با رزبری پای + کد پایتون

پروژه تشخیص باران با رزبری پای

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

هیچ چیز به قشنگی لباس هایی که با هوای تمیز و روی یک طناب خشک شده اند نیست. مگر اینکه یک رگبار غیر منتظره همه چیز را خراب کند. آیا تا به حال یکی از افراد خانواده را ندیده اید که به سرعت برق در حال پایین رفتن از پله هاست و فریاد سوزناک باران! را سر داده. و ناامیدانه در تلاش است لباسهای خشک شده را از باران نجات دهد؟

به محض شروع باران با این طرح ساده مستقل و به محض تشخیص قطرات باران، روی تلفن همراه شما هشدار می دهد. نیاز به هیچگونه لحیم کاری نیست. فقط چند کابل. ما به برق کم مصرف و WiFi نیاز داریم. بنابراین این یک پروژه عالی برای رزبری پای صفر وات است.

 

آنچه که نیاز دارید

  • 2 برد سنسور باران با یک کنترل کننده
  • برد بورد کوچک
  • پاوربانک کوچک با USB
  • ظرف غذای کوچک با درب محکم
  • سیم های جامپر

 

01 رزبری پای

وقتی همه چیز سرهم بندی شد، بعداً ممکن است دسترسی به رزبری پای تان مشکل باشد.  بنابراین قبل از هر کار دیگری یک نسخه از Raspbian Stretch Lite را روی SD کارت نصب کنید ( نیازی به دسکتاپ نداریم ) و آن را در رزبری پای وارد کنید. اکنون زمان روال معمول به روزرسانی ها و پیکربندی ها فرا رسیده است. با استفاده از پیکربندی raspi در این مرحله رزبری پای را از شبکه WiFi خود دریافت کنید و مطمئن شوید که دسترسی SSH را فعال کرده اید. روند معمول sudo apt update && sudo apt upgrade را انجام دهید سپس راه اندازی مجدد (ریستارت) کنید. اتصال SSH خود را بررسی و سپس آن را خاموش کنید.

 

02 سنسورها را روی درب نصب کنید

می توانید از هر تعداد حسگر به دلخواه استفاده کنید. اما این سیستم با دو حسگر خوب کار می کنند. با استفاده از عایق یا نوار چسب دو صفحه را روی درب محکم کنید. همچنین می توانید محفظه ای را که در تصویر قرار دارد ، به صورت سه بعدی چاپ کنید و با چسب یا پد های چسبناک محکم کنید. دو جفت کابل جامپر باید متصل شود. یکی به هر صفحه حسگر. قطبیت مهم نیست. انتهای دیگر کابل ها باید درون ظرف قرار بگیرند، بنابراین تا جایی که ممکن است سوراخ کوچکی را در یک مکان مناسب ایجاد کنید تا سیم ها بتوانند از آن عبور کنند. این کار احتمال هرگونه نفوذ آب را به حداقل می رساند.

 

03 سنسورها را به کنترل کننده وصل کنید

برای اینکه رزبری پای متوجه شود چه خبر است، یک برد کنترل کننده کوچک (همراه با سنسورها) مورد نیاز است. این برد جریان کوچکی را که با آب کوتاه می شود می گیرد و آن را به یک سیگنال دیجیتال تبدیل می کند. با استفاده از برد بورد، دو جفت سیم را از سنسورها به طور موازی وصل کنید (به طوری که هر سنسور بتواند مدار را ایجاد کند). و سپس پایه های گیرنده کنترل کننده (طرف دارای دو اتصال دهنده) را در برد بورد قرار دهید تا از هر سنسور، هر پایه با یک سیم متصل شود.

 

04 اتصال کنترل کننده

برای تکمیل مدارمان به چهار پایه روی برد کنترل کننده دقت کنید – که به صورت A0 ، D0 ، GND و VCC مشخص شده اند. با استفاده از چند سیم جامپر کنترلر را به به صورت زیر به رزبری پای وصل کنید: VCC به پایه 2 GPIO (5 ولت) ، GND به هر GND موجود در GPIO (به عنوان مثال پایه 6) و D0 به GPIO 17 (پایه 11). D0 و A0 دو روش مختلف برای خواندن خروجی از سنسور هستند . D0 یک خروجی دیجیتال مستقیم روشن یا خاموش است که آستانه آن توسط مقاومت متغیر روی برد کنترل می شود. A0 یک خروجی آنالوگ است که (زمانیکه به دیجیتال تبدیل شود) بسته به شدت باران بین 0 تا 1024 است.

صفحات حسگر باید بطور موازی و نه به صورت سری به برد کنترل کننده متصل شوند. به این ترتیب هرکدام می توانند آلارم را تحریک کنند. قطبیت مهم نیست.

 

نکته مهم:

رزبری پای را خشک نگهدارید

بخش مهمی از این پروژه اطمینان از این است که در صورت بارندگی، رزبری پای شما در اثر باران خراب نمی شود. اطمینان حاصل کنید که سوراخ سیم ها کوچک و پوشیده است.

 

05 مونتاژ

کابل میکرو USB را از پاوربانک خود به برق ورودی رزبری پای وصل کنید و همه چیز را در داخل ظرف خود مرتب کنید. در حالت ایده آل ، هیچ چیز نباید تکان بخورد. بنابراین همه چیز را با لنت یا تکه چسب در جای خود قرار دهید. اکنون باید بتوانید ظرف را با محتویات آن مهر و موم کنید. سیم ها بدون اینکه له شوند یا تحت فشار قرار بگیرند از صفحه حسگر خارج می شوند. سپس آن را باز کنید و پاور بانک را وصل کنید. سپس دوباره آن را ببندید و اتصال خود را بررسی کنید. پاوربانک بسته به درجه بندی آن باید رزبری پای صفر وات شما را حداقل برای چند ساعت روشن نگه دارد.

 

06 نرم افزار

اسکریپت را اضافه کنید و آن را با عنوان rainbot.py ذخیره کنید (یا از GitHub دانلود کنید) در یک مکان مناسب مانند ~/pi/rainbot .پس از قرار گرفتن در محل، با اجرای python ~ / pi / rainbot / rainbot.py آزمایش اولیه را انجام دهید. باید هر پنج ثانیه یک بازخوانی را مشاهده کنید : اگر خشک باشد “درست” ، اگر مرطوب باشد “نادرست”. CTRL + C را فشار دهید تا اسکریپت متوقف شود.

 

07-Pushover

برای دریافت هشدارها می خواهیم از Pushover، که یک سرویس اعلان برای گوشی های هوشمند است استفاده کنیم (هفت روز دوره آزمایشی رایگان وجود دارد). در pushover.net ثبت نام کنید. هنگام ورود به سیستم، یک “کد کاربر” خواهید دید. آنرا کپی کنید. اکنون برای ایجاد ‘Application Token’ دستورالعمل ها را دنبال کنید. به شما یک کلید API داده می شود. اسکریپت را ویرایش کنید تا مقادیر کلیدی API در صورت درخواست با کلیدهایی که به شما داده شده است جایگزین شود. مطمئن شوید که برنامه Pushover روی تلفن شما نصب شده باشد. دوباره اسکریپت را اجرا کنید. این بار یکی از پنل ها را کمی خیس کنید. باید یک چراغ روی کنترلر روشن شود. اگر همه چیز خوب پیش رود، چند ثانیه بعد تلفن شما هشدار را نمایش می دهد.

 

08-اجرای خودکار

بیایید اسکریپت را برای شروع تنظیم کنیم. فایل زیر را به عنوان یک کاربر رده بالا (superuser) ایجاد کنید :

sudo nano /lib/systemd/system/rainbot.service

 

 

پروژه تشخیص باران با رزبری پای

نکته ی مهم:

علاقه ای به Pushover ندارید؟

عملکرد تابع (pushover) در کد را می توان با هر چیزی که مایلید جایگزین کنید. که می تواند ارسال یک ایمیل، پینگ کردن یک وبسایت، ارسال یک پیام متنی و یا راه اندازی یک آتش بازی باشد (پیشنهاد نمیشود!).

پروژه تشخیص باران با رزبری پای

درمتن زیر اضافه کنید:

[Unit] Description=Rainbot After=multi-user.target [Service] Type=idle ExecStart=/usr/bin/python3 /home/pi/ rainbot/rainbot.py [Install] WantedBy=multi-user.target

CTRL + X را فشار دهید تا ذخیره شود و از nano خارج شوید. اکنون دستورات زیر را بنویسید:

sudo chmod 644 /lib/systemd/system/ rainbot.service sudo systemctl enable rainbot.service sudo systemctl daemon-reload

رزبری پای را مجدداً راه اندازی کنید. اسکریپت از راه اندازی مجدد شروع می شود ( اگرچه هیچ خروجی مشاهده نخواهید کرد). دوباره با آب تست کنید.

 

09-نسخه خود را بسازید

بسیاری از پیشرفت ها می توانند انجام شوند که بررسی آنها را به شما سپرده ایم. Pushover راحت است، اما عملکرد این تابع را می توان به راحتی با هر چیزی که دوست دارید جایگزین کنید. فرکانس بررسی ها ممکن است تغییر کند (در حال حاضر هر پنج ثانیه است). نظرتان درباره اضافه کردن یک مبدل آنالوگ به دیجیتال و استفاده از خروجی A0 برای اندازه گیری شدت باران چیست؟ شروع به ضبط داده ها، یک شروع عالی برای پروژه ایستگاه هواشناسی است. اضافه کردن یک دکمه برای خاموش کردن مطمئن رزبری پای پس از استفاده، یکی دیگر از موارد مفید است.

 

کد نوشته شده برای این پروژه با زبان پایتون 3:

from gpiozero import DigitalInputDevice
from time import sleep
import http.client, urllib.parse
# Some setup first
APP_TOKEN = ‘YOUR_PUSHOVER_APP_TOKEN’ # The app token
required for Pushover
USER_TOKEN = ‘YOUR_PUSHOVER_USER_TOKEN’ # Ths user token
required for Pushover
# Set up our digital input and assume it’s not currently raining
rainSensor = DigitalInputDevice(17)
dryLastCheck = True
# Send the pushover alert
:def pushover(message)
print(message)
conn = http.client.HTTPSConnection(“api.pushover.net:443”)
conn.request(“POST”, “/1/messages.json”
urllib.parse.urlencode({
“token”: APP_TOKEN, # Insert app token here
“user”: USER_TOKEN, # Insert user token here
“title”: “Rain Detector”
“message”: message
}), { “Content-type”: “application/x-www-form-urlencoded” })
conn.getresponse()
# Loop forever
:while True
# Get the current reading
dryNow = rainSensor.value
print(“Sensor says: ” + str(dryNow))
:if dryLastCheck and not dryNow
pushover(“It’s Raining!”)
:elif not dryLastCheck and dryNow
pushover(“Yay, no more rain!”)
# Remember what the reading was for next check
dryLastCheck = dryNow
# Wait a bit
sleep(5)

ترجمه کامنت های کد:

خط005 ابتدا برخی از تنظیمات

خط006 رمز برنامه مورد نیاز برای Pushover

خط007 رمز کاربر مورد نیاز برای Pushover

خط009 ورودی دیجیتال را تنظیم کنید و فرض کنید در حال حاضر باران نمی بارد

خط013 هشدار Pushover را ارسال کنید

خط019 رمز برنامه را اینجا وارد کنید

خط020 رمز کاربر را اینجا وارد کنید

خط026 حلقه ی دائمی

خط029 خواندن فعلی را دریافت کنید

خط041 بخاطر داشته باشید که بررسی بعدی چیست

خط044 کمی صبر کنید

 

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

گردآوری و ترجمه:صبا علیزاده

lkfu: The official Raspberri Pi projects book

 

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

آخرین مقالات

مقالات مرتبط