فهرست مطالب:

آبگرمکن اتوماتیک برای پیگیری مصرف: 6 مرحله
آبگرمکن اتوماتیک برای پیگیری مصرف: 6 مرحله

تصویری: آبگرمکن اتوماتیک برای پیگیری مصرف: 6 مرحله

تصویری: آبگرمکن اتوماتیک برای پیگیری مصرف: 6 مرحله
تصویری: لزبازی لیلا اوتادی چه لبی میگیره (نبینی از دستت رفته) 2024, جولای
Anonim
آبگیر اتوماتیک برای پیگیری مصرف
آبگیر اتوماتیک برای پیگیری مصرف
آبگیر اتوماتیک برای پیگیری مصرف
آبگیر اتوماتیک برای پیگیری مصرف

سلام!

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

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

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

مخزن GitHub:

تدارکات

میکروکنترلرها

تمشک پای 4

سنسورها و ماژول ها

من از 4 سنسور استفاده کردم:

2xHC-SR04 سنسور اولتراسونیک

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

برگه اطلاعات

1x سنسور دما DS18B20

DS18B20 یک سنسور دما با قابلیت برنامه ریزی 1 سیم از حداکثر یکپارچه است. به طور گسترده ای برای اندازه گیری دما در محیط های سخت مانند محلول های شیمیایی ، معادن یا خاک و غیره استفاده می شود. من از آن برای اندازه گیری دمای آب مخزن آب استفاده کردم.

برگه اطلاعات

1x ماژول RC522 RFID

RC522 یک ماژول RFID 13.56MHz است که بر اساس کنترلر MFRC522 از نیمه رساناهای NXP ساخته شده است. این ماژول می تواند I2C ، SPI و UART را پشتیبانی کند و معمولاً با کارت RFID و کلید فوب ارسال می شود. معمولاً در سیستم های حضور و غیاب و سایر برنامه های شناسایی افراد/اشیاء استفاده می شود. در این پروژه ، از آن برای سیستم شناسایی/ورود به سیستم استفاده می شود.

برگه اطلاعات

و 2 محرک:

1 پمپ پریستالتیک 12-24 ولت

من از یک پمپ پریستالتیک برای رساندن آب از مخزن به یک بطری آب استفاده کردم. اکثر پمپ ها بسیار کند بودند ، بنابراین من به سراغ نسخه 24 ولت که با آداپتور برق 24 ولت تغذیه می کنم ، رفتم.

1 برابر نمایشگر LCD

از LCD برای نمایش آدرس IP و پیامهای مهم استفاده می شود. صفحه نمایش کریستال مایع (LCD) یک صفحه نمایش صفحه تخت یا سایر دستگاه های نوری مدوله شده الکترونیکی است که از ویژگی های تعدیل کننده نور کریستال های مایع همراه با قطبش استفاده می کند.

برگه اطلاعات

روکش

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

  • سه تخته تخته سه لا
  • 1 برابر قیف کوچک
  • 1 برابر مخزن آب (می توانید مقدار مورد نظر خود را انتخاب کنید ، من 10 لیتر رفتم)
  • 1 برابر سینی قطره ای

شما می توانید تمام مواد و قیمت ها را در BOM پیوست پیدا کنید.

مرحله 1: اتصال تمام قطعات الکترونیکی

اتصال تمام قطعات الکترونیکی
اتصال تمام قطعات الکترونیکی
اتصال تمام قطعات الکترونیکی
اتصال تمام قطعات الکترونیکی

اکنون که همه لوازم الکترونیکی را جمع بندی کرده ایم ، وقت آن است که آنها را وصل کنید. من دو مدار Fritzing ، یکی تخته نان و دیگری شماتیک ، ساختم تا به شما نشان دهم که چگونه و کجا همه وسایل الکترونیکی باید وصل شوند. پیوند بارگیری Fritzing را می توانید در اینجا پیدا کنید: https://fritzing.org/download/. همانطور که قبلاً ذکر شد ، من از Raspberry Pi استفاده کردم و یک اسکنر RFID ، دو سنسور اولتراسونیک ، یک سنسور دما ، یک LCD و یک پمپ پریستالتیک برای آب متصل کردم.

اگر می خواهید به طور دقیق به آن نگاه کنید ، دو مدار را در PDF پیوست کردم.

مرحله 2: راه اندازی رزبری پای

ما از Raspberry Pi خود برای اجرای و کنترل همه چیز استفاده می کنیم: backend ، frontend و پایگاه داده.

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

مرحله 1: Raspbian

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

مرحله 2: نوشتن تصویر به SD

اکنون که تصویر Raspbian خود را دارید ، برای نوشتن فایل تصویر بر روی کارت SD به یک نرم افزار نوشتن تصویر (توصیه می کنم win32diskimager) نیاز داشته باشید. آموزش کامل را می توانید در اینجا پیدا کنید.

مرحله 3: ورود به رزبری پای

"Powershell" را باز کرده و "ssh [email protected]" را تایپ کنید. اگر همه چیز درست پیش برود ، از شما رمز عبور می خواهند (رمز پیش فرض همیشه تمشک است). به طور معمول ، این باید شما را وارد Raspberry Pi کند. اکنون باید برخی تغییرات را در تنظیمات خود انجام دهیم. sudo raspi-config را در ترمینال تایپ کرده و enter را فشار دهید. به گزینه های محلی سازی بروید> منطقه زمانی را تغییر دهید و آن را در منطقه زمانی خود تنظیم کنید. همچنین باید کشور wi-fi خود را به مکان خود تغییر دهید. در نهایت ، به گزینه های رابط بروید و SPI ، I2C و 1-wire را فعال کنید. این مهم است که از سنسورها به درستی استفاده کنید.

مرحله 4: راه اندازی اتصال اینترنت

ما از شبکه WiFi استفاده خواهیم کرد. می توانید شبکه خانگی خود را از طریق موارد زیر اضافه کنید:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

برای ایجاد اتصال ، باید Pi خود را مجدداً راه اندازی کنید. برای بررسی اینکه آیا کار کرده است ، می توانید از ifconfig برای بررسی وجود آدرس IP استفاده کنید.

مرحله 5: راه اندازی وب سرور و پایگاه داده

اول ، بهتر است سیستم را با دنباله ای از دستورات زیر به روز کنید و ارتقا دهید:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt ارتقا دهید
  3. به روز رسانی sudo apt
  4. sudo apt حرکت خودکار

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

آپاچی

sudo apt install apache2 -y

پی اچ پی

sudo apt php را نصب کنید

sudo apt phpMyAdmin -y را نصب کنید

فراموش نکنید که هنگام گذرواژه رمز عبور MySQL را تنظیم کنید.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt php -mysql -y را نصب کنید

sudo systemctl راه اندازی مجدد apache2.service

مرحله 6: نصب کتابخانه های پایتون

برای باطن ، ما به چند کتابخانه برای پایتون نیاز داریم. ما اینها را با استفاده از pip3 نصب می کنیم ، زیرا از python3 استفاده می کنیم.

pip3 mysql-connector-python را نصب کنید

pip3 flask-socketio را نصب کنید

pip3 flask-cors را نصب کنید

pip3 gevent را نصب کنید

pip3 gevent-websocket را نصب کنید

sudo apt python3 -mysql.connector -y را نصب کنید

pip3 mfrc522 را نصب کنید! (برای استفاده از اسکنر RFID به این مورد نیاز داریم)

مرحله 7: تهیه کد ویژوال استودیو

برای اجرای کد ، توصیه می کنم از Visual Studio Code برای اتصال رزبری پای خود به آن استفاده کنید. لینک دانلود نصب VSC را می توانید در اینجا پیدا کنید.

اگر هنوز Remote Development را با استفاده از SSH نصب نکرده اید ، می توانید مراحل انجام این کار را در اینجا پیدا کنید.

مرحله 3: ایجاد پایگاه داده

ایجاد پایگاه داده
ایجاد پایگاه داده

ما تمام داده های حسگر و داده های کاربر را در پایگاه داده ذخیره می کنیم.

پایگاه داده من شامل 5 جدول است:

دستگاه

Table Table دارای DeviceID است که به خود دستگاه اشاره می کند. DeviceName نام دستگاه ، در این مورد سنسور اولتراسونیک ، سنسور دما ،… DeviceType نوع دستگاه (سنسور یا محرک) را می دهد.

تاریخ

تاریخچه جدول شامل تمام سابقه حسگرها ، همراه با تاریخ (HistoryDate) تاریخچه اضافه شده و ارزش لحظه در تاریخ است. همچنین دو کلید خارجی دارد:

  • DeviceID ، برای پیوند یک گزارش خاص به یک دستگاه
  • UserID ، برای پیوند یک کاربر خاص به یک گزارش (این به این دلیل است که ما از RFID استفاده می کنیم و می خواهیم گزارش سابقه را به یک کاربر خاص اضافه کنیم)

کاربر

Table User برای ایجاد یک سیستم ورود کاربر با اسکنر RFID استفاده می شود. این شامل یک نام مستعار ، نام ، نام خانوادگی ، رمز عبور و RFID است (این شماره RFID یک برچسب است). هر کاربر به یک کانتینر (مخزن آب) متصل است و ContainerID را به عنوان کلید خارجی حمل می کند.

ظرف

ظرف میز شامل همه ظروف مختلف است. دارای شناسه ، ContainerLocation (این می تواند یک شرکت ، خانه یا هر چیز دیگری باشد). در نهایت ، دارای MaxLevel است که نشان دهنده حداکثر حجم ظرف است.

تنظیمات

تنظیمات جدول دارای شناسه تنظیمات است و DailyGoal هر کاربر + تاریخ افزودن DailyGoal توسط کاربر را دنبال می کند. این توضیح دهنده کلید خارجی UserID است.

یک مخزن پایگاه داده را می توانید در مخزن GitHub من در پایگاه داده پیدا کنید.

مرحله 4: تنظیم Backend

هیچ پروژه ای بدون پشتوانه کار وجود ندارد.

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

یاوران

یاورها همه کلاس هایی هستند که برای سنسورها و محرک های مختلف استفاده می شوند. یک سنسور دما (DS18B20) ، سنسورهای اولتراسونیک (HCSR05) برای اندازه گیری فاصله و LCD برای نوشتن پیام روی صفحه وجود دارد.

مخازن

در پوشه مخازن ، 2 فایل پایتون پیدا خواهید کرد:

  • Database.py که کمکی برای خارج کردن سطرها از پایگاه داده شما است. اجرای و خواندن پایگاه داده را آسان تر می کند.
  • DataRepository.py که شامل تمام پرس و جوهای SQL است که در کد اصلی (app.py) استفاده می شود. آنها برای دریافت ، به روز رسانی یا حذف داده ها از پایگاه داده استفاده می شوند.

app.py

این کد پشتیبان اصلی پروژه است. این تنظیم را با تعریف همه پین ها و حالت ها انجام می دهد و شامل کد کارکردن پمپ ، افزایش دما ، جلب کاربر و غیره است. همچنین شامل مسیرهایی است که برای بازیابی اطلاعات از پایگاه داده و تمام socketio.on's استفاده می شود. برای هر صفحه HTML یک socketio.on متفاوت است تا مطمئن شوید هر تابع در زمان مناسب کار می کند.

config.py

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

باطن را می توان در مخزن من تحت Backend یافت.

مرحله 5: راه اندازی Frontend

راه اندازی Frontend
راه اندازی Frontend
راه اندازی Frontend
راه اندازی Frontend

برای Frontend ، من با طراحی طراحی وب سرورم در AdobeXD شروع کردم. من از رنگهای لوگوی خود استفاده کردم ، که نارنجی و 2 سایه مختلف آبی است. من سعی کردم طراحی را تا حد ممکن ساده نگه دارم و یک قطره آبی ایجاد کردم که نشان می دهد در چه حدی به هدف خود در روز رسیده اید.

در مخزن GitHub من ، Frontend من را تحت Code> Frontend خواهید یافت. مهم این است که این پوشه را در پوشه /var /html رزبری پای خود بچسبانید تا از سرور وب قابل دسترسی باشد.

شامل چند فایل HTML است که به صفحات مختلف منتهی می شوند. شما همچنین screen.css من را با تمام CSS هایی که برای شبیه سازی به پروژه من نیاز دارید پیدا خواهید کرد. در نهایت ، فایل های جاوا اسکریپت متفاوتی را تحت اسکریپت ها خواهید داشت. این اسکریپت ها با پشتیبان من ارتباط دارند تا داده های پایگاه داده یا پشتیبان من را نشان دهند.

پس زمینه را می توان در مخزن من تحت Frontend یافت.

مرحله 6: ایجاد Case

ایجاد پوشش
ایجاد پوشش
ایجاد پوشش
ایجاد پوشش
ایجاد پوشش
ایجاد پوشش

اگر در مورد پرونده من صحبت می کنیم ، دو قسمت اصلی وجود دارد:

بدنه بیرونی

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

برای اندازه گیری دقیق دستگاه ساخته شده من ، PDF را با تمام اندازه صفحات مورد استفاده در قاب ضمیمه کردم.

مخزن آب

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

توصیه شده: