با استفاده از RaspberryPi همگام با گربه من 💩
به عنوان یک صاحب سگ سابق و برای اولین بار پدر گربه، من از این که چگونه گربه ها از بدو تولد به طور عملی “پرورش” می شوند شگفت زده شدم. من آماده بودم که وقتی باید جعبه زباله را تمیز کنم با بوی آن مقابله کنم. با این حال، من انتظار نداشتم اجابت مزاج آنها (💩) مشتی باشد که نیمی از آپارتمان من را بدبو کند.
این ممکن است برای همه صدق نکند، اما مطمئناً برای من، با یک گربه سرپوشیده در یک آپارتمان 2 خوابه بدون مکان تهویه طبیعی برای نگهداری جعبه زباله اش.
قهرمان/شرور داستان
اسمش هست دو و او یک گربه نجات نوازشگر و بازیگوش است. دعا دوست دارد با اسباب بازی های موش خود بازی کند و نمازگزاران غذای خیس که احتمالا دلیل دومی برای نوشتن این پست بوده است 😵💫
من جعبه زباله او را در دوش حمام دومم دارم. حمام یک فن استخراج دارد که وقتی چراغ حمام روشن است کار می کند، اما او امتناع می کند نفهمیده است که چگونه آن را هر بار که شماره 2 می رود روشن و خاموش کند… آزاردهنده است، درست است؟
خودکار کردن فن استخراج
برای کاهش بو، می خواستم وقتی دعا به داخل جعبه زباله اش می رود، چراغ ها روشن شوند. برای این کار چند مورد را جمع آوری کردم:
نرم افزاری که وب هوک را فراخوانی می کند (که به نوبه خود روال الکسا را راه اندازی می کند) را می توانید در اینجا پیدا کنید:
اسکریپتی که یک سنسور PIR را به یک وب هوک متصل می کند
اسکریپتی که یک سنسور PIR را به یک وب هوک متصل می کند.
مخزن را در یک پوشه کلون کنید، وابستگی ها را نصب کنید و سپس در پس زمینه اجرا کنید
# Install requirements
pip install -r requirements.txt
# Run in background
# TODO: Find/Document a better way to do this
TRIGGER_URL="<webhook_url>" python main.py &
در غیر این صورت اضافه کنید TRIGGER_URL = "<webhook_url>"
به یک .env
فایل و اسکریپت آن را انتخاب می کند.
اسکریپت PID خود را در آن می نویسد pid.txt
بنابراین می توان از آن استفاده کرد. مثال ها:
# Follow output of background process
tail -f /proc/$(cat pid.txt)/fd/1
# Kill process
kill -9 $(cat pid.txt)
نمودار کابل در اینجا
این اسکریپت از این مقاله بنیاد Raspberry Pi الهام گرفته شده است و از طرح نمونه پیشنهادی آنها استفاده می کند. سنسور به 5 ولت (Vcc) و زمین (Gnd) نیاز دارد، بنابراین پین 2 و پین 6 به خوبی کار می کنند. خروجی سنسور (Out) را به…
کار می کند!
در اینجا این است که سخت افزار در عمل چگونه به نظر می رسد
💩آمار
با همه این موارد، یک قدم فراتر رفتم و Opentelemetry را برای ردیابی آمار تعداد دفعات اجرای روتین در Honeycomb اضافه کردم.
میخواستم بدانم که آیا چراغهای حمام را روی علامتهای مثبت کاذب حسگر حرکت روشن میکنم، اما پس از آزمایشها، این به سادگی به این هدف میرسد که بگویم او چند بار داخل جعبه زبالهاش میرود.
جالب اینجاست که می توانم بگویم که او به طور متوسط 8.5 بار در روز در جعبه زباله خود (# محرک سنسور حرکت) می رود. فکر نمی کنم بسیاری از صاحبان گربه بتوانند بگویند که این را در مورد دوستان گربه خود می دانند. من به یاد دارم و از آن الهام گرفتم آرون پترسون هر چند مدت ها پیش کاری مشابه انجام می داد.
به هر حال همین. پورا ویدا!