فهرست مطالب:
- تدارکات
- مرحله 1: اتصال تمام قطعات الکترونیکی
- مرحله 2: راه اندازی رزبری پای
- مرحله 3: ایجاد پایگاه داده
- مرحله 4: تنظیم Backend
- مرحله 5: راه اندازی Frontend
- مرحله 6: ایجاد Case
تصویری: آبگرمکن اتوماتیک برای پیگیری مصرف: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
سلام!
چند ماه پیش ، من در اتاقم بودم و فکر می کردم که چه پروژه ای را می خواهم برای تکلیف مدرسه انجام دهم. می خواستم چیزی بسازم که مناسب من باشد و در آینده به درد من بخورد. ناگهان ، مادرم وارد اتاق شد و شروع به شکایت از عدم نوشیدن آب کافی کرد. من بلافاصله عیسی گرفتم. این ایده به ذهن من رسید که یک دستگاه آب پاش اتوماتیک (مانند سینمای سینما) بسازم که مصرف آب شما را به صورت روزانه پیگیری می کند.
با رزبری پای ، چند سنسور ، یک پمپ و دانش کمی ، سعی کردم این را تا آنجا که ممکن است خوب کنم.
در پایان تمام مراحل ، شما یک آبگرمکن کار خواهید داشت که بطری آب شما را پر می کند و با رزبری پای شما متصل و تعامل دارد. شما نه تنها قادر خواهید بود میزان مصرف آب خود را بر اساس درصد پیگیری کنید ، بلکه امکان مشاهده دما و سطح آب ظرف آب خود را نیز خواهید داشت. در نهایت ، می توانید آمار خود را بررسی کنید. اگر این برای شما جالب به نظر می رسد ، حتماً آن را بررسی کنید و خودتان آن را امتحان کنید!
مخزن 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: راه اندازی وب سرور و پایگاه داده
اول ، بهتر است سیستم را با دنباله ای از دستورات زیر به روز کنید و ارتقا دهید:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt ارتقا دهید
- به روز رسانی sudo apt
- 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 ، من با طراحی طراحی وب سرورم در AdobeXD شروع کردم. من از رنگهای لوگوی خود استفاده کردم ، که نارنجی و 2 سایه مختلف آبی است. من سعی کردم طراحی را تا حد ممکن ساده نگه دارم و یک قطره آبی ایجاد کردم که نشان می دهد در چه حدی به هدف خود در روز رسیده اید.
در مخزن GitHub من ، Frontend من را تحت Code> Frontend خواهید یافت. مهم این است که این پوشه را در پوشه /var /html رزبری پای خود بچسبانید تا از سرور وب قابل دسترسی باشد.
شامل چند فایل HTML است که به صفحات مختلف منتهی می شوند. شما همچنین screen.css من را با تمام CSS هایی که برای شبیه سازی به پروژه من نیاز دارید پیدا خواهید کرد. در نهایت ، فایل های جاوا اسکریپت متفاوتی را تحت اسکریپت ها خواهید داشت. این اسکریپت ها با پشتیبان من ارتباط دارند تا داده های پایگاه داده یا پشتیبان من را نشان دهند.
پس زمینه را می توان در مخزن من تحت Frontend یافت.
مرحله 6: ایجاد Case
اگر در مورد پرونده من صحبت می کنیم ، دو قسمت اصلی وجود دارد:
بدنه بیرونی
من پرونده را از ابتدا ساختم. من از تخته های تخته سه لا استفاده کردم و آنها را در اندازه های مناسب اره زدم. من همه تخته ها را به هم متصل کردم و سوراخ هایی برای LCD ، دکمه ، سنسور اولتراسونیک ایجاد کردم تا تشخیص دهم که آیا بطری آب وجود دارد یا قیف برای توزیع آب. من پرونده خود را به قسمت های مختلف تقسیم کردم تا آب و وسایل الکترونیکی جدا شوند و از یک سینی کابل برای محافظت از کابل ها در برابر نشت آب استفاده کردم. در ویدئوی پیوست ، می توانید بیشتر جنبه های پوشش من و نحوه ساخت آن را مشاهده کنید. همچنین یک دکمه را به صورت سه بعدی چاپ کردم ، که روی یک دکمه معمولی چسبانده شده است. در نهایت ، من از یک سینی قطره ای برای جمع آوری تمام آب ریخته شده استفاده کردم. من همچنین از لولا استفاده کردم تا بتوانم یک صفحه کناری را برای نگاه کردن به لوازم الکترونیکی خود باز و بسته کنم. همیشه می توانید از دستگاه پخش کننده دست دوم استفاده کنید یا می توانید از مواد دیگر نیز استفاده کنید.
برای اندازه گیری دقیق دستگاه ساخته شده من ، PDF را با تمام اندازه صفحات مورد استفاده در قاب ضمیمه کردم.
مخزن آب
مخزن آب کار آسانی نبود. من یک مخزن آب با یک سوراخ در پایین گرفتم ، بنابراین مجبور شدم آن را با نوار چسب بزنم تا نشتی متوقف شود. شما به چهار سوراخ نیاز دارید: یکی برای سنسور دما و دیگری برای لوله پمپ. یکی برای لوله برای پر کردن مخزن و دیگری برای سنسور اولتراسونیک. برای آخرین مورد ، من یک مورد برای آن چاپ کردم ، که در اینجا یافت می شود. این به سنسور محافظت بیشتری در برابر آب می دهد. سپس یک مستطیل در بالای مخزن حفر کردم تا سنسور روی آن قرار بگیرد.
توصیه شده:
ESP32 IoT آبگرمکن: 12 مرحله
ESP32 IoT Water Heater: آبفشان Cayenne IoT (مخزن آب گرم در ایالات متحده آمریکا) یک دستگاه صرفه جویی در مصرف برق است که به شما کمک می کند آب گرم خانگی خود را کنترل و کنترل کنید ، حتی زمانی که از خانه دور هستید. به شما این امکان را می دهد که آب گرم چشم خود را روشن و خاموش کرده و آن را برای تغییر زمان بندی کنید
هک چهار نفره بچه ها برای رانندگی خودکار ، پیگیری خط و تشخیص موانع خودرو: 4 مرحله
هک چهار نفره بچه ها در یک وسیله نقلیه خودران ، دنبال کردن خط و تشخیص موانع: در دستورالعمل امروز ما یک موتور 1000 واتی (بله من مقدار زیادی از آن را می دانم!) چهار نفره Electric Kid را به یک وسیله نقلیه خودران ، پیگیری خط و جلوگیری از موانع تبدیل می کنیم! ویدیوی نمایشی: https: //youtu.be/bVIsolkEP1k برای این پروژه به مواد زیر نیاز داریم
پیگیری و ردیابی برای مغازه های کوچک: 9 مرحله (همراه با تصاویر)
ردیابی و ردیابی برای مغازه های کوچک: این سیستمی است که برای مغازه های کوچک ساخته شده است و قرار است برای تحویل کوتاه در دوچرخه های الکترونیکی یا اسکوترهای الکترونیکی سوار شوند ، به عنوان مثال نانوایی که می خواهد شیرینی ها را تحویل دهد. Track and Trace به چه معناست؟ Track and Trace سیستمی است که توسط ca
تعیین متوسط مصرف فعلی دستگاه متناوب کم مصرف: 4 مرحله
تعیین میانگین مصرف فعلی دستگاه متناوب کم مصرف: مقدمه از روی کنجکاوی می خواستم بدانم که باتری ها در سنسور دمای راه دور من چقدر می توانند دوام بیاورند. دو سلول AA به صورت سری طول می کشد ، اما کمک چندانی به قرار دادن آمپرمتر در خط و تماشای صفحه نمایش نمی کند زیرا برق مصرف می شود
چگونه می توان مصرف برق ماژول های ارتباطات بی سیم را در دوران مصرف کم مصرف به درستی اندازه گیری کرد؟: 6 مرحله
چگونه می توان میزان مصرف برق ماژول های ارتباطات بی سیم را در دوران مصرف کم انرژی اندازه گیری کرد ؟: مصرف کم برق یک مفهوم بسیار مهم در اینترنت اشیا است. اکثر گره های اینترنت اشیا نیاز به تغذیه باتری دارند. تنها با اندازه گیری صحیح مصرف برق ماژول بی سیم ، می توان میزان باتری را به طور دقیق تخمین زد