فهرست مطالب:

Pumpkin Pi Trick-or-Treat Tracker: 5 مرحله
Pumpkin Pi Trick-or-Treat Tracker: 5 مرحله

تصویری: Pumpkin Pi Trick-or-Treat Tracker: 5 مرحله

تصویری: Pumpkin Pi Trick-or-Treat Tracker: 5 مرحله
تصویری: Halloween Numberblock Two Pumpkin Pie | Learn to Count | @Numberblocks 2024, نوامبر
Anonim
Pumpkin Pi Tricker-or-Treat Tracker
Pumpkin Pi Tricker-or-Treat Tracker

بیشتر توسط نویسنده دنبال کنید:

چگونه یک مانیتور دما رزبری پای بسازیم
چگونه یک مانیتور دما رزبری پای بسازیم
چگونه یک مانیتور دما رزبری پای بسازیم
چگونه یک مانیتور دما رزبری پای بسازیم
انتقال داده ها از صفحات Google به داشبورد
انتقال داده ها از صفحات Google به داشبورد
انتقال داده ها از صفحات Google به داشبورد
انتقال داده ها از صفحات Google به داشبورد
شبکه سنسورهای دما
شبکه سنسورهای دما
شبکه سنسورهای دما
شبکه سنسورهای دما

آیا به دنبال یک پروژه سریع هالووین هستید که از جهات مختلفی مفید باشد؟ آیا می خواهید از Pi Zero WH به خوبی استفاده کنید؟ آیا احساس می کنید از داده ها برای تعیین میزان آب نبات مورد نیاز برای سال آینده استفاده می کنید؟

برای ساخت Pumpkin Pi Trick-or-Treat Tracker آماده شوید! این Pi-in-a-Pumpkin که به عنوان دکوراسیون و یک ردیاب مردم شناخته می شود ، با تشخیص حرکت ، رنگ را تغییر می دهد و جریان می یابد. با شروع از ابتدا ، این پروژه نباید بیش از یک بعد از ظهر برای انجام آن زمان ببرد - درست در زمان هالووین!

تدارکات

  • Pi Zero WH با کارت SD
  • سنسور حرکت PIR
  • LED RGB
  • مقاومت 220 اهم
  • (3) خطوط کراوات (F/F ، M/F ، M/M)
  • باتری قابل حمل
  • کدو حلوایی تقلبی

مرحله 1: مونتاژ سخت افزار

مونتاژ سخت افزار
مونتاژ سخت افزار
مونتاژ سخت افزار
مونتاژ سخت افزار
مونتاژ سخت افزار
مونتاژ سخت افزار

هنگامی که Pi خود را راه اندازی کردید ، باید سنسور حرکت و LED ها را به هم وصل کنیم. در این مرحله مطمئن شوید که Pi به برق متصل نیست.

سنسور حرکت ما نیاز دارد که آن را به برق 3.3 ولت ، زمین و پین داده متصل کنیم. من پین سنسور 3.3V را به پین 1 Pi ، پین سنسور Ground را به پین 6 Pi و پین سنسور Data را به پین 16 Pi وصل کردم. تصویر اول اتصال کامل Pi و سنسور حرکت را نشان می دهد.

LED ها کمی سخت تر از سنسور حرکت هستند زیرا برای عملکرد صحیح و بدون آسیب رساندن به آنها یا Pi به مقاومت احتیاج دارند. من از سه مقاومت 220 اهم استفاده کردم اما مقاومتهای 220 و 330 اهم معمولاً با LED ها استفاده می شود.

برای سیم کشی همه چیز می توانید:

  • پایه های LED را به مقاومت ها بچسبانید و سپس سیم ها را داخل Pi قرار دهید
  • برای اتصال همه چیز از تخته نان و خط کراوات استفاده کنید
  • برای اتصال همه چیز از خطوط کراوات و نوار برقی استفاده کنید (مانند من).

ما LED خود را به پین 11 ، 13 و 15 متصل می کنیم ، اما این کمی پیچیده تر از سنسور حرکت است ، زیرا پایه های LED با رنگ خاصی مطابقت دارد! پای بلند GND است. و حداقل در LED من ، پاها قرمز ، GND ، آبی ، سبز شده اند. من آبی را به Pi 11 ، سبز را به Pi 13 و قرمز را به Pi 15 متصل کردم. تصویر دوم اتصالات نهایی مدار را نشان می دهد.

مرحله 2: حالت اولیه

حالت اولیه
حالت اولیه
حالت اولیه
حالت اولیه

مطمئناً ما می توانیم ببینیم که حرکت با LED چگونه تشخیص داده می شود ، اما چگونه می توانیم ردیابی کنیم که چند ترفند برای سرقت آب نبات ما رفته اند؟

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

مرحله 1: برای حساب دولت اولیه ثبت نام کنید به https://iot.app.initialstate.com بروید و یک حساب جدید ایجاد کنید.

مرحله 2: ISStreamer را نصب کنید

ماژول اولیه حالت پایتون را روی رزبری پای خود نصب کنید. در خط فرمان (ابتدا SSH را در Pi خود فراموش نکنید) ، دستور زیر را اجرا کنید:

$ cd/home/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

مرحله 3: مقداری Automagic بسازید

پس از مرحله 2 ، چیزی شبیه خروجی زیر را روی صفحه خواهید دید:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

رمز عبور: شروع ISStreamer Python نصب آسان! ممکن است چند دقیقه طول بکشد تا نصب شود ، کمی قهوه بخورید:) اما فراموش نکنید که برگردید ، بعداً س questionsالاتی دارم! یافت شد easy_install: setuptools 1.1.6 پیپ یافت شد: pip 1.5.6 از /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) نسخه اصلی پیپ: 1 پیپ نسخه کوچک: 5 ISStreamer پیدا شد ، در حال بروزرسانی است … الزامات از قبل به روز شده است: ISStreamer در /Library/Python/2.7/site-packages تمیز کردن … آیا می خواهید به صورت خودکار یک اسکریپت نمونه دریافت کنید؟ [y/N] کجا می خواهید مثال را ذخیره کنید؟ [پیش فرض:./is_example.py] لطفاً از کدام برنامه اولیه استفاده می کنید: 1. app.initialstate.com 2. [جدید!] iot.app.initialstate.com گزینه 1 یا 2 را وارد کنید: iot.app را وارد کنید نام کاربری.initialstate.com: گذرواژه iot.app.initialstate.com را وارد کنید:

وقتی از شما خواسته شد به طور خودکار یک اسکریپت نمونه دریافت کنید ، y را تایپ کنید. این یک اسکریپت آزمایشی ایجاد می کند که می توانیم اجرا کنیم تا مطمئن شویم که می توانیم داده ها را در حالت اولیه جریان دهیم. پیغام بعدی می پرسد که کجا می خواهید فایل نمونه را ذخیره کنید. شما می توانید یک مسیر محلی سفارشی را تایپ کنید یا Enter را بزنید تا مکان پیش فرض را بپذیرید. در نهایت ، از شما س askedال می شود که از کدام برنامه حالت اولیه استفاده می کنید. اگر اخیراً یک حساب کاربری ایجاد کرده اید ، گزینه 2 را انتخاب کنید ، نام کاربری و رمز عبور خود را وارد کنید. پس از آن نصب کامل می شود.

مرحله 4: کلیدهای دسترسی

بیایید نگاهی به نمونه اسکریپت ایجاد شده بیندازیم. $ nano is_example.py در خط 15 ، خطی را مشاهده خواهید کرد که با streamer = Streamer (bucket_… پارامتر access_key =”…” در همان خط. آن سری طولانی حروف و اعداد کلید دسترسی به حساب حالت اولیه شما است. اگر در مرورگر وب خود به حساب حالت اولیه خود می روید ، روی نام کاربری خود در بالا سمت راست کلیک کنید ، سپس بروید در "تنظیمات من" ، همان کلید دسترسی را در پایین صفحه در زیر "Streaming Access Keys" پیدا خواهید کرد.

هر بار که یک جریان داده ایجاد می کنید ، آن کلید دسترسی آن جریان داده را به حساب شما هدایت می کند (بنابراین کلید خود را با هیچ کس به اشتراک نگذارید).

مرحله 5: مثال را اجرا کنید

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

$ python is_example.py

مرحله ششم: سود

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

مرحله 3: اسکریپت پایتون

یک اسکریپت ایجاد کنید و ویرایشگر متن را با دستور زیر باز کنید:

nano vistors.py

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

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

RPi. GPIO را به عنوان GPIO وارد کنید

از زمان وارد کردن خواب از ISStreamer. Streamer import Streamer # به Pi بگویید که از سیستم شماره گذاری آن استفاده می کنیم GPIO.setmode (GPIO. BCM) # پین هایی که D1 و LED به PIN = 23 BLUE = 17 GREEN = 27 RED متصل هستند = 22 # پین سنسور حرکت ما را به عنوان ورودی GPIO.setup (PIN، GPIO. IN) # پین های LED ما را به عنوان خروجی GPIO.setup (RED، GPIO. OUT) GPIO.output (RED، 0) GPIO.setup (GREEN) مشخص کنید. ، GPIO. OUT) GPIO.output (سبز ، 0) GPIO.setup (آبی ، GPIO. OUT) GPIO.output (آبی ، 0)

خطوط 1-21 برای راه اندازی اولیه است. ابتدا رابط GPIO Pi و راهی برای خواباندن اسکریپت خود را وارد می کنیم. سپس استریمر حالت اولیه را که در صفحه قبل نصب کرده ایم وارد می کنیم.

GPIO.setmode مشخص می کند که از کدام سیستم شماره گذاری برای پین ها استفاده می کنیم. به جای مکان فیزیکی ، ما از سیستم شماره گذاری Pi استفاده می کنیم. مانند نمودار قبلی ، پین هایی که انتخاب کردیم 23 ، 17 ، 27 و 22 بودند. سپس پین حرکت را به عنوان ورودی و پایه های LED را به عنوان خروجی تنظیم می کنیم.

# نام سطل حالت اولیه (نمایش داده شده)

BUCKET_NAME = ": jack_o_lantern: Trick or Treat Tracker" # کلید سطل اولیه حالت (پنهان) BUCKET_KEY = "trickortreat" # کلید دسترسی حالت اولیه ACCESS_KEY = "کلید_دسترسی شما" # متغیرهایی که اطمینان می دهند جریان وجود یا نبودن را پخش نمی کنیم حرکت دوبار پشت سر هم LED به زرد GPIO.output (قرمز ، 1) GPIO.output (سبز ، 1)

خطوط 23-41 مهم هستند زیرا ما جریان اولیه حالت اولیه را تنظیم می کنیم و LED را روی زرد تنظیم می کنیم. کلید دسترسی حالت اولیه خود را در خط 28 قرار دهید.

# به صورت نامحدود حلقه کنید

while True: # اگر سنسور حرکت بالا بکشد (حرکت را تشخیص می دهد): اگر GPIO.input (PIN) == 1: چاپ "حرکت تشخیص داده شد" # اگر ما هنوز جریان را پخش نکرده ایم: اگر قبلاً نشده LED را روی GPIO.output قرمز (قرمز ، 1) GPIO.output (GREEN ، 0) # جریان به حالت اولیه streamer.log (": ghost: or:ocolate_bar:؟"، ":ocolate_bar: Time for treats!") تنظیم کنید streamer.log (": candy: Hungry Humans؟: candy:"، counter) streamer.flush () alreadyRecordedMotion = True alreadyRecordedNoMotion = اشتباه دیگر: # اسکریپت را برای 1 ثانیه خواب موقت (1) دیگر: چاپ "هیچ حرکتی تشخیص داده نمی شود" # اگر ما هنوز جریانی نکرده ایم: اگر هنوز ثبت نشده NoMotion: # LED را روی GPIO زرد تنظیم کنید. خروجی (RED ، 1) GPIO.output (GREEN ، 1) # جریان به حالت اولیه streamer.log (": ghost: or:ocolate_bar::

خطوط 43-77 گوشت کد است. اگر حرکت تشخیص داده شود ، اسکریپت بررسی می کند که آیا "زمان درمان"! قبلاً پخش شده است اگر چنین نشده است ، به حالت اولیه ارسال می شود و LED روی قرمز تنظیم شده است. در صورت وجود ، فیلمنامه 1 ثانیه منتظر می ماند و سپس دوباره از سنسور حرکت می خواند. اگر حرکتی تشخیص داده نشود ، همین امر صادق است.

زمان آزمایش کد فرا رسیده است! مطمئن شوید فایل ویرایش شده خود را با کلید دسترسی خود در خط 28 ذخیره کرده اید و سپس وارد ترمینال شوید:

بازدیدکنندگان پایتون. py

باید ببینید چراغ LED روشن می شود و "بدون حرکت تشخیص داده می شود" چاپ را در خط فرمان شروع می کند. سعی کنید دست خود را بر روی سنسور حرکت حرکت دهید - اکنون باید یک چراغ قرمز را ببینید و "حرکت تشخیص داده شد" چاپ را شروع کنید!

اکنون برای تأیید اینکه خوانش های ما در حالت اولیه جریان دارد.

مرحله 4: داشبورد Trick-or-Treat

داشبورد ترفند یا درمان
داشبورد ترفند یا درمان

به حالت اولیه بروید و داشبورد خود را بررسی کنید! شما باید سطلی به نام "؟ Trick or Treat Tracker" را مشاهده کنید. دست خود را نزدیک سنسور حرکت قرار دهید و به روز رسانی آن را تماشا کنید!

داشبورد من شامل 2 کاشی خلاصه است که آخرین مقدار و یک هیستوگرام شمارش رویداد را نشان می دهد تا بتوانم ببینم سنسور در چه زمان هایی فعال شده است.

در اینجا مواردی است که باید در نظر بگیرید:

  • احتمالاً می خواهید تعداد "انسان های گرسنه" را بر 2 تقسیم کنید تا این واقعیت را در نظر بگیرید که همان شخص دو بار در راه به درب شما و در راه بازگشت از مقابل سنسور حرکت عبور می کند. شما می توانید این کار را با عبارات در زمان واقعی با استفاده از معادله "= math.round (([انسان گرسنه؟]/2) ، 0)" انجام دهید.
  • می توانید حساس باشید که سنسور حرکت شما چقدر حساس به نظر می رسد و بر این اساس آن را در پیاده رو خود قرار دهید. من پیشنهاد می کنم آن را آنقدر از درب دور کنید که وقتی کسی در جلوی در ایستاده است باعث ایجاد آن نشود.
  • همچنین می توانید هشدارهای متنی را تنظیم کنید تا به شما اطلاع دهد کسی در حال نزدیک شدن است.
  • یک تصویر پس زمینه را انتخاب کنید تا به داشبورد خود کمی ترسناک جلوه دهید!

توصیه شده: