فهرست مطالب:
- مرحله 1: مرحله 1: به چه چیزی نیاز دارم؟
- مرحله 2: مرحله 2: ایجاد طرحواره پایگاه داده
- مرحله 3: مرحله 3: کدگذاری
- مرحله 4: مرحله 4: قرار دادن Al Code در My Raspberry Pi
- مرحله 5: مرحله 5: ساخت مسکن
- مرحله 6: مرحله 6: قرار دادن همه چیز در مسکن
تصویری: تنظیم کننده کلید: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
در حال حاضر در Howest در حال تحصیل NMCT هستم. برای ترم آخر ما باید پروژه ای بسازیم. بنابراین من یک Keysorter ساختم.
چه کار میکند؟
ما تعداد زیادی کلید ماشین در خانه داریم و همه آنها شبیه هم هستند. بنابراین من یک Keysorter برای حل این مشکل تهیه کردم.
باید کلید را از طریق RFID اسکن کرده و در جعبه قرار دهد. اگر دوباره همان کلید را اسکن کنم مکان تعیین شده قبلی او نشان داده می شود. همچنین دکمه ای برای نشان دادن آخرین ماشین شسته شده وجود دارد.
این برنامه بر روی رزبری پای اجرا می شود که گزینه ای برای افزودن صفحه وب از طریق Flask نیز دارد.
در صفحه باید بتوانم همه کلیدها را نگاه کنم ، نامی را به یک کلید اضافه کنم و یک کلید را حذف کنم.
مرحله 1: مرحله 1: به چه چیزی نیاز دارم؟
من با تهیه لیستی از اجزای مورد نیاز برای کارکردن این مورد شروع کردم.
اجزاء:
- تمشک پی
- 2 x ثبت نام Shift (74hc595)
- دکمه 3 x
- LED 9 x سبز
- اسکنر RFID (MFRC522)
- مقاومت 12 x 220 اهم
سپس همه اینها را در شماتیک جالب خود قرار دادم.
وقتی این کار را انجام دادم ، آن را در زندگی واقعی ساختم.
مرحله 2: مرحله 2: ایجاد طرحواره پایگاه داده
برای ذخیره همه داده هایم ، من باید یک پایگاه داده ایجاد کنم که بتواند روی Pi من اجرا شود.
من در Mysql درست کردم.
ماشین رومیزی:
- شناسه خودرو
- شناسه کاربری
- مارک (مارک خودرو)
- تایپ کنید
- آخرین شستشو
- کلید
- RFID_ID
مرحله 3: مرحله 3: کدگذاری
وقتی همه اینها آماده شد ، می توانم برنامه نویسی را شروع کنم.
من با ایجاد کد سنسور خود در پایتون 3.5 شروع کردم.
برای بارگیری کد اینجا را کلیک کنید.
برای پیوند پروژه از پیوند استفاده کنید.
مرحله 4: مرحله 4: قرار دادن Al Code در My Raspberry Pi
نصب بسته ها
ابتدا بسته هایی را که برای این کار نیاز داشتم نصب کردم.
me@my-rpi: su $ sudo apt update
me@my-rpi: su $ sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
محیط مجازی
me@my-rpi: ~ $ python3 -m pip install-upgrade pip setuptools wheel virtualenvme@my-rpi: ~ $ mkdir project1 && cd project1 me@my-rpi:/project1 $ python3 -m venv --system- site-packages env me@my-rpi: ~/project1 $ source env/bin/activ (env) me@my-rpi: ~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib
پروژه را با استفاده از pycharm روی Pi خود بارگذاری کنید
Pycharm را باز کرده و به VCS> Import from Version Control> Github بروید و فایل github من را کلون کنید.
پیکربندی استقرار را در فهرست راهنمای ایجاد شده قرار دهید. (/خانه/من/پروژه 1). اعمال کنید!
به تنظیمات مترجم بروید و محیط مجازی را که تازه ایجاد کرده اید انتخاب کنید. (/home/me/project1/env/bin/pyhon)
بررسی کنید که آیا نقشه راه درست است یا خیر.
اکنون می توانید کد را با استفاده از Pycharm در فهرست خود بارگذاری کنید.
پایگاه داده
بررسی کنید پایگاه داده در حال اجرا است یا خیر. شما باید چیزی شبیه به این را دریافت کنید:
me@my -rpi: ~ $ sudo systemctl وضعیت mysql ● mariadb.service - سرور پایگاه داده MariaDB بارگیری: بارگیری شده (/lib/systemd/system/mariadb.service ؛ فعال است ؛ پیش فروشنده پیش فرض: فعال) فعال: فعال (در حال اجرا) از زمان آفتاب 03-06-2018 09:41:18 CEST؛ 1 روز 4 ساعت قبل PID اصلی: 781 (mysqld) وضعیت: "درخواست SQL خود را در حال حاضر …" وظایف: 28 (محدودیت: 4915) CGroup: /system.slice/mariadb.service └─781/usr/sbin/mysqld
ژوئن 03 09:41:13 my-rpi systemd [1]: راه اندازی سرور پایگاه داده MariaDB… ژوئن 03 09:41:15 my-rpi mysqld [781]: 03-06-2018 9:41:15 4144859136 [توجه] / usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) ژوئن 03 09:41:18 my-rpi systemd [1]: سرور پایگاه داده MariaDB را راه اندازی کرد.
me@my -rpi: ~ $ ss -lt | grep mysql LISTEN 0 80 127.0.0.1:mysql *: *
ایجاد کاربران و افزودن پایگاه داده
me@my-rpi: su $ sudo mariadb
هنگامی که در پایگاه داده هستید این کار را انجام دهید.
CREATE USER 'project1-admin'@'localhost' IDENTIFIED BY 'adminpassword'؛ CREATE USER 'project1-web'@'localhost' IDENTIFIED BY 'webpassword'؛ CREATE USER 'project1-sensor'@'localhost' IDENTIFIED BY by 'sensorpassword'؛
ایجاد پروژه پایگاه داده 1؛
اعطای کلیه امتیازات در پروژه 1.* به 'project1-admin'@'localhost' با GRANT OPTION. GRANT SELECT ، INSERT ، UPDATE ، DELETE ON project1.* به 'project1-web'@'localhost' ؛ GRANT SELECT ، INSERT ، UPDATE ، DELETE ON project1.* به 'project1-sensor'@'localhost' ؛ خصوصیات فلاش ؛
CREATE TABLE `user` (` idUser` int (11) NOT NULL ، `Password` varchar (45) DEFAULT NULL ، PRIMARY KEY (` idUser`)) ENGINE = InnoDB DEFAULT CHARSET = utf8
CREATE TABLE `car` (` idCar` int (11) NOT NULL AUTO_INCREMENT، `idUser` int (11) NOT NULL،` Brand` varchar (45) DEFAULT NULL، `Type` varchar (45) DEFAULT NULL، 'LastWashed' datetime DEFAULT NULL، `RFID_Number` varchar (15) DEFAULT NULL،` Key` varchar (5) DEFAULT NULL، PRIMARY KEY (`idCar`،` idUser`)، KEY `fk_Car_User1_idx` (` idUser`_)، کلید خارجی (`idUser`) ارجاع می دهد` کاربر` (`idUser`) در مورد حذف هیچ گونه اقدام در به روزرسانی NO ACTION) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARSET DEFAULT = utf8
پایگاه داده خود را به Pycharm وصل کنید
روی برگه پایگاه داده در سمت راست کلیک کنید. اگر برگه ای باز ندارید این کار را انجام دهید: View> Tool Windows> Database.
روی افزودن اتصال کلیک کنید. منبع داده> MySQL را انتخاب کنید (در صورت وجود دکمه دانلود درایور ، آن را فشار دهید.)
به SSH/SSL بروید و SSH را بررسی کنید. اطلاعات Raspberry pi (میزبان/کاربر/رمز عبور) خود را پر کنید. پورت باید 22 باشد و بررسی رمز عبور را فراموش نکنید.
به ژنرال برگردید. میزبان باید localhost و پایگاه داده باید project1 باشد. مدارک را از project1-admin پر کنید و اتصال را آزمایش کنید.
اگر اتصال خوب است ، به برگه Schemas بروید و مطمئن شوید که project1 تیک خورده است.
بررسی کنید که پایگاه داده صحیح است یا خیر
me@my-rpi: ~ $ echo 'نمایش جداول ؛' | mysql project1 -t -u project1-admin -p رمز عبور را وارد کنید: + --------------------------- + | جداول_در_ پروژه 1 | + ---------------------------+ | سنسور | | کاربران | +------------------------------+
پیکربندی فایلها
در دایرکتوری conf 4 فایل خواهید یافت. شما باید نام کاربری را به نام کاربری خود تغییر دهید.
Systemd
برای شروع همه چیز باید این دستورات را اجرا کنید.
me@my-rpi:/project1 $ sudo cp conf/project1-*. service/etc/systemd/system/
me@my-rpi: ~/project1 $ sudo systemctl daemon-reload me@my-rpi:/project1 $ sudo systemctl شروع پروژه1-* me@my-rpi:/project1 $ sudo systemctl وضعیت پروژه1-* ● project1- flask.service-نمونه uWSGI برای ارائه رابط وب پروژه 1 بارگیری: بارگیری شده (/etc/systemd/system/project1-flask.service ؛ غیرفعال ؛ پیش تنظیم فروشنده: فعال) فعال: فعال (در حال اجرا) از دوشنبه 2018-06-04 13: 14:56 CEST؛ 1s ago PID اصلی: 6618 (uwsgi) وظایف: 6 (محدودیت: 4915) CGroup: /system.slice/project1-flask.service ├─6618/usr/bin/uwsgi --ini/home/me/project1/conf/ uwsgi-flask.ini ├─6620/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6621/usr/bin/uwsgi --ini/home/me/project1/ conf/uwsgi-flask.ini ├─6622/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini ├─6623/usr/bin/uwsgi --ini/home/me/ project1/conf/uwsgi-flask.ini └─6624/usr/bin/uwsgi --ini /home/me/project1/conf/uwsgi-flask.ini
ژوئن 04 13:14:56 my-rpi uwsgi [6618]: 383928 بایت (374 کیلوبایت) برای 5 هسته خرداد 04 13:14:56 my-rpi uwsgi [6618]: *** حالت عملیاتی: پیش فروش ***
● project1-sensor.service-سرویس سنسور پروژه 1 بارگیری: بارگیری (/etc/systemd/system/project1-sensor.service ؛ غیرفعال ؛ پیش فروشنده پیش فرض: فعال) فعال: فعال (در حال اجرا) از دوشنبه 2018-06-04 13: 16:49 CEST؛ 5s قبل PID اصلی: 6826 (پایتون) وظایف: 1 (محدودیت: 4915) CGroup: /system.slice/project1-sensor.service └─6826/home/me/project1/env/bin/python/home/me/project1 /sensor/sensor.py
ژوئن 04 13:16:49 my-rpi systemd [1]: سرویس سنسور پروژه 1 را آغاز کرد. ژوئن 04 13:16:49 پایتون my-rpi [6826]: خرابی: _ اصلی _: ذخیره شده حسگر process_count = b'217 / n 'در پایگاه داده ژوئن 04 13:16:55 پایتون my-rpi [6826]: خرابی: _ main_: حسگر process_count = b'218 / n 'در پایگاه داده ذخیره شد
nginx
me@my-rpi:/project1 $ ls -l/etc/nginx/sites-*
/etc/nginx/sites-available: total 4 -rw-r-r-- 1 ریشه ریشه 2416 ژوئیه 12 2017 پیش فرض
/etc/nginx/sites-enabled: مجموع 0 lrwxrwxrwx 1 ریشه ریشه 34 ژانویه 18 13:25 پیش فرض->/etc/nginx/sites-available/default
برای اینکه همه چیز به طور پیش فرض تنظیم شود ، این دستورات را اجرا کنید.
me@my-rpi:/project1 $ sudo cp conf/nginx/etc/nginx/sites-available/project1me@my-rpi:/project1 $ sudo rm/etc/nginx/sites-enabled/default me@my- rpi: ~/project1 $ sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 me@my-rpi: ~/project1 $ sudo systemctl راه اندازی مجدد nginx.service
شروع خودکار
بیایید مطمئن شویم که همه چیز به طور خودکار شروع می شود.
به پوشه conf بروید و این دستورات نهایی را اجرا کنید و کار تمام است!
me@my-rpi:/project1 $ sudo systemctl فعال کردن پروژه 1-*
اگر Pi خود را مجدداً راه اندازی می کنید ، باید به طور خودکار شروع شود.
مرحله 5: مرحله 5: ساخت مسکن
بازیافت
برای ساخت خانه از کمد قدیمی استفاده می کردم که مادرم آن را دور می انداخت.
پایه
من 4 تخته (34 سانتی متر در 26 سانتی متر) اره کردم. (بنابراین این یک مکعب از 34 34 34 26 26 است).
در قسمت پایین یک تکه چوب نازک به عنوان پایین اضافه کردم.
تخته با led ها
در وسط من 2 تکه چوب کوچک در هر طرف هر دو در 9 سانتی متر از بالا قرار داده ام. این صفحه تخته ای را که رهبری در آن نشسته اند نگه می دارد.
تخته با led ها یک تخته کوچک (32 سانتی متر در 32 سانتی متر) است.
من 9 سوراخ ایجاد کردم تا لیدها از آن خارج شوند.
تقسیم
من تقسیم را با همان مواد پایین و تخته با سرب های led انجام دادم.
4 قطعه هر کدام با برش 10.3 سانتی متر (9 سانتی متر در 31 سانتی متر). حالا من می توانم آنها را کنار هم قرار دهم.
دکمه ها و خواننده RFID
من یک سوراخ در پایه ایجاد کردم تا خواننده و دکمه های RFID را داخل آن قرار دهم. برای RFID یک تخته نازک در جلوی آن قرار دادم تا تمیزتر به نظر برسد.
مرحله 6: مرحله 6: قرار دادن همه چیز در مسکن
این بستگی به این دارد که چگونه می خواهید این کار را انجام دهید. من شخصاً بدون لحیم کاری از کابل های زیادی استفاده کردم زیرا می خواهم بتوانم از Raspberry Pi خود استفاده مجدد کنم.
led ها را در جای خود چسباندم و خواننده RFID و تخته های نان را روی قاب چسباندم.
و اینگونه است که شما Keysorter می سازید!
توصیه شده:
تنظیم کننده ولتاژ قابل تنظیم LM317: 6 مرحله
LM317 تنظیم کننده ولتاژ قابل تنظیم: در اینجا ما می خواهیم در مورد تنظیم کننده های ولتاژ قابل تنظیم صحبت کنیم. آنها مدارهای پیچیده تری نسبت به خطی نیاز دارند. می توان آنها را برای تولید خروجی های مختلف ولتاژ ثابت بسته به مدار و همچنین ولتاژ قابل تنظیم از طریق پتانسیومتر استفاده کرد. من
تبدیل تقویت کننده مبتنی بر Esp8266 با رابط کاربری Blynk شگفت انگیز با تنظیم کننده بازخورد: 6 مرحله
مبدل تقویت کننده مبتنی بر Esp8266 با رابط کاربری Blynk شگفت انگیز با تنظیم کننده بازخورد: در این پروژه من یک روش کارآمد و متداول برای افزایش ولتاژ DC را به شما نشان خواهم داد. من به شما نشان خواهم داد که چگونه می توان یک مبدل تقویت کننده را با کمک Nodemcu ساخت. بیایید آن را بسازیم. همچنین شامل ولت متر روی صفحه و بازخورد
منبع تغذیه DC قابل تنظیم با استفاده از تنظیم کننده ولتاژ LM317: 10 مرحله
منبع تغذیه DC قابل تنظیم با استفاده از تنظیم کننده ولتاژ LM317: در این پروژه ، من یک منبع تغذیه DC ولتاژ قابل تنظیم ساده با استفاده از IC LM317 با نمودار مدار منبع تغذیه LM317 طراحی کرده ام. از آنجا که این مدار دارای یک یکسو کننده پل داخلی است ، بنابراین می توانیم مستقیماً منبع تغذیه 220V/110V AC را در ورودی متصل کنیم
شبیه دشمن خود باشید: نشانه هایی ایجاد کنید که گیج کننده ، مبهوت کننده و تقلید کننده باشد!: 6 مرحله (همراه با تصاویر)
شبیه دشمن خود باشید: نشانه هایی ایجاد کنید که باعث گیج شدن ، حیرت و تقلید می شود !: در این مقاله آموزشی طراحی استتار را خواهید آموخت. در پروژه های گذشته ، من تکنیک های مختلفی را برای تقلید از علائم دولتی یا شرکتی اختصاص داده و اصلاح کرده ام. استفاده از روش هایی که در مراحل زیر بیان شده است به شما امکان می دهد به طور موقت
چگونه می توان یک تیرکمان بچه گانه جیغ کننده ThinkGeek را به یک تست کننده تداوم سرگرم کننده تبدیل کرد: 6 مرحله
چگونه می توان یک تیرکمان بچه گانه جیغ کننده ThinkGeek را به یک تست کننده تداوم مفرح تبدیل کرد: آیا تا به حال شده است که از صدای بوق استاندارد تسترهای پیوستگی خسته شده باشید؟ من دارم ، بنابراین از بقایای تیرکمان بچه میمون جیغی استفاده کردم که به یک هدست بلوتوث در https://www.instructables.com/id/How_to_turn_a_ThinkGeek_Screamin