فهرست مطالب:

آینه هوشمند چند کاربره با تقویم Google: 10 مرحله
آینه هوشمند چند کاربره با تقویم Google: 10 مرحله

تصویری: آینه هوشمند چند کاربره با تقویم Google: 10 مرحله

تصویری: آینه هوشمند چند کاربره با تقویم Google: 10 مرحله
تصویری: تک کاربره کردن اکانت فیلترشکن V2RAY 2024, نوامبر
Anonim
آینه هوشمند چند کاربره با تقویم Google
آینه هوشمند چند کاربره با تقویم Google
آینه هوشمند چند کاربر با تقویم Google
آینه هوشمند چند کاربر با تقویم Google

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

تدارکات

قبل از

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

سخت افزار

سنسورها

  • سنسور دما یک سیم
  • RWCL 0516 (سنسور حرکت مایکروویو)
  • پتانسیومتر نرم (نوار لمسی از Sparkfun)

محاسبه

و IC ها

  • بلندگو (3.2W در 4Ω یا 1.8W در 8Ω)
  • MCP3008
  • Breakout تقویت کننده Adafruit I2S 3W Class D - MAX98357A
  • رزبری پای 3 B+
  • کارت SD (8 گیگابایت خوب است)
  • مقاومت 4.7 کیلو اهم

مختلف

  • Jumperwires
  • تخته نان
  • آینه اکریل دو طرفه (15٪ انتقال نور)
  • مانیتور IPS (اندازه بستگی به اندازه آن دارد)
  • کابل HDMI
  • چوب

نرم افزار

  • PuTTY
  • ویرایشگر کد (Notepad ++ کافی است)
  • Win32 Disk Imager
  • تصویر Raspbian OS

مرحله 1: راه اندازی

برای شروع ، ابتدا باید Pi شما را برای کدی که ساخته ام تنظیم کنیم.

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

  • Win32 Disk Imager از
  • تصویر سیستم عامل Raspbian از

فایل ZIP را بارگیری کرده و به هر کجا که می خواهید استخراج کنید.

نصب و راه اندازی

  1. تصویر خود را از طریق نماد پوشه انتخاب کنید
  2. کارت SD خود را از طریق کشویی انتخاب کنید
  3. روی نوشتن کلیک کنید

اکنون باید برخی تنظیمات را انجام دهیم تا بتوانیم به Pi دسترسی داشته باشیم.

  1. به پوشه بوت کارت SD بروید
  2. فایل "cmdline.txt" را باز کنید
  3. ip = 169.254.10.1 را در انتهای خط طولانی متن با فاصله (در همان خط) جدا کنید اضافه کنید.
  4. فایل را ذخیره کنید.
  5. فایلی با نام ssh بدون پسوند در همان فهرست ایجاد کنید

اکنون می توانید کارت SD را خارج کرده و در Pi خود قرار دهید.

برقراری ارتباط

اکنون ما باید نرم افزار را راه اندازی کنیم.

ابتدا کابل LAN را وصل کنید ، یک سر آن رومیزی/لپ تاپ و سر دیگر آن Pi است.

حالا رزبری پای را بوت کنید.

  1. Putty را از https://www.putty.org/ نصب کنید
  2. 169.254.10.1 را در کادر IP وارد کنید.
  3. مطمئن شوید SSH انتخاب شده و پورت 22 پر شده است.
  4. باز کردن را کلیک کنید
  5. نام کاربری را وارد کنید: pi
  6. رمز عبور را وارد کنید: تمشک

Raspi-config

ابزار Raspi-config را با استفاده از موارد زیر باز کنید:

sudo raspi-config

گزینه های زیر را در دسته رابط ها فعال کنید

  • 1-سیم
  • SPI

کشور WiFi خود را از طریق دسته محلی سازی انتخاب کنید.

در مرحله بعد ، گزینه های زیر را در دسته گزینه های بوت غیرفعال کنید

صفحه معرفی

در نهایت تنظیم Desktop/CLI را در دسته گزینه های بوت روی Desktop Autologin تنظیم کنید.

وای فای

برای آینه ما باید یک اتصال wifi داشته باشیم ، بنابراین مطمئن شوید که اعتبار وای فای خود را بسته اید.

به حالت روت بروید

sudo -i

این خط را بچسبانید اما مطمئن شوید که SSID و Password هر دو پر شده باشند

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

کلاینت WPA را وارد کنید.

wpa_cli

رابط را انتخاب کنید

رابط wlan0

پیکربندی را بارگیری کنید

پیکربندی مجدد

با تایپ کردن از اتصال صحیح خود مطمئن شوید…

ip a

… و ببینید آیا IP روی رابط های WLAN0 دارید یا خیر.

بسته ها

اکنون که به اینترنت متصل شده ایم ، باید برخی بسته ها را نصب کنیم.

ابتدا باید لیست بسته ها را برای آخرین مورد بازخوانی کنیم.

به روز رسانی sudo apt

پایتون

ما Raspbian را مجبور می کنیم از پایتون 3 استفاده کند

Update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1

Update-alternatives --install/usr/bin/python python/usr/bin/python3 2

MariaDB

برای نصب پایگاه داده خط زیر را بچسبانید.

sudo apt mariadb-server را نصب کنید

سپس ما باید نصب خود را ایمن کنیم.

mysql_secure_instation

از ما رمز عبور اصلی فعلی را می خواهد زیرا ما یک کلید نداریم فقط Enter را فشار دهید.

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

برای س questionsالات بعدی فقط Y را وارد کنید.

در نهایت ما یک کاربر ایجاد می کنیم که می توانیم از آن برای آینه استفاده کنیم.

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

خود را برای ریشه یابی بالا ببریم

sudo -i

پوسته mysql را وارد کنید

mysql

با نام کاربری خود جایگزین کنید و همان را با

اعطای همه امتیازات روی mirror.* به ''@'٪' توسط ''؛

حالا جدول مجوزها را فشرده می کنیم.

خصوصیات فلاش ؛

وب سرور آپاچی

برای نصب وب سرور خط زیر را اجرا کنید.

sudo apt install apache2 -y

بسته های پایتون

ما قصد داریم این بسته ها را نصب کنیم

  • فلاسک
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • طلسم فلاسک
  • گئونت
  • Gevent-websocket
  • سرویس گیرنده Google-api-python
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • تقویم
  • Icalevents
  • اواتلیب
  • Python-socketio
  • درخواست ها
  • Wsaccel
  • اوجسون

با انجام دادن

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlibs wauthlib

تنظیم بلندگو

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | خراب کردن

اکنون باید راه اندازی مجدد شود بنابراین y را فشار دهید.

فیلمنامه را دوباره اجرا کنید

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | خراب کردن

اکنون ما باید بار دوم را راه اندازی مجدد کنیم

راه اندازی مجدد sudo

صفحه نمایش (مانیتور)

بسته به اینکه چگونه می خواهید جهت صفحه نمایش خود را تنظیم کنید ، ممکن است بخواهید صفحه را بچرخانید.

برای چرخاندن صفحه باید به گزینه های بوت دسترسی پیدا کنیم:

sudo nano /boot/config.txt

و سپس یکی از این خطوط را در فایل پیکربندی چسباند:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

اولین مورد ، 0 ، پیکربندی معمولی است. 1 90 درجه ، 2 180 درجه و آخرین آن 270 درجه خواهد بود.

سپس راه اندازی مجدد کنید.

راه اندازی مجدد sudo

مرحله 2: نصب Mirror

نصب Mirror
نصب Mirror

اکنون مکانی برای بارگیری کد من تنظیم می کنیم.

cd/home/pi/

git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

اکنون برخی از پوشه ها را در مقصد درست کپی می کنیم

sudo cp -R frontend/mirror//var/www/html/mirror/

sudo cp -R frontend/dashboard//var/www/html/Sudo cp -R backend//home/pi/Mirror/

نصب پایگاه داده یک مرحله ضروری در ساخت پروژه است.

sudo mysql -u root -p << CREATEDATABASE.sql

مرحله 3: پیکربندی

فایل پیکربندی در آدرس زیر قرار دارد:

sudo nano /home/pi/Mirror/resources/config.ini

کاربر و رمز عبور MYSQL را وارد کنید.

این باید کاربر mysql باشد که ما ساخته ایم.

سایر تنظیمات که بعداً آموزش داده می شود را بررسی خواهیم کرد.

مرحله 4: API ها

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

دارکسکی

از طریق https://darksky.net/dev یک کلید API Darsky ایجاد کنید.

پس از ثبت نام ، کلید API خود را در داشبورد مشاهده خواهید کرد.

این کلید را در فایل پیکربندی پروژه mirror که قبلاً نصب کرده اید وارد کنید.

تقویم

به طور پیش فرض فقط می توانید از url های ical برای مشاهده تقویم خود استفاده کنید. اما این بخش در مورد چگونگی پیوند آینه خود با اکوسیستم Google خواهد بود. این به طور کلی طولانی تر و دردناک تر است.

چیزهایی که قطعاً به آنها نیاز خواهید داشت

یک نام دامنه

این مواردی است که ما در این قسمت تنظیم می کنیم

  • حساب CloudFlare
  • حساب برنامه نویس Google
  • پروژه توسعه دهنده گوگل
  • API تقویم را تنظیم کنید

مرحله 5: تقویم

تقویم
تقویم
تقویم
تقویم

Cloudflare

یک حساب cloudflare از https://cloudflare.com تنظیم کنید و برای انتقال نام دامنه خود به Cloudflare DNS ، از ویزارد پیروی کنید.

نیازی به ایجاد یک رکورد A نیست که به تمشک pi اشاره می کند. کد آینه من این کار را برای شما انجام می دهد. از آنجا که در اکثر فای های خانگی IP ها ثابت نیستند ، پس از راه اندازی مجدد ممکن است دیگر کار نکند. برای اینکه کد من به طور خودکار ip را به روز کند ، به کلید API حساب شما نیاز دارد.

  1. روی دکمه دریافت کلید API خود در داشبورد در سمت راست کلیک کنید. [عکس 1]
  2. پایین بروید و کلید Global API خود را مشاهده کنید. [عکس 2]

این کلید را در فایل پیکربندی پروژه mirror که قبلاً نصب کرده اید وارد کنید.

ایجاد گواهینامه SSL

Google از ما می خواهد که یک اتصال SSL داشته باشیم. برای شروع این بخش ، مطمئن شوید که Cloudflare DNS را به درستی تنظیم کرده اید.

ابتدا مخزن را اضافه کنید.

sudo add-apt-repository ppa: certbot/certbot

بسته بسته را به روز کنید.

sudo apt-get update

CertBot را نصب کنید

sudo apt python-certbot-apache را نصب کنید

ایجاد گواهینامه را شروع کنید. دوباره باید نام دامنه صحیح را وارد کنید.

sudo certbot --apache -d example.com -d www.example.com

پس از ایجاد ، از شما می پرسد که آیا باید همه اتصالات را به SSL تغییر مسیر دهد. تغییر مسیر را انتخاب کنید

اکنون به شما می گوید که با موفقیت یک گواهی برای دامنه شما ایجاد کرده است. مطمئن شوید که 2 مسیری را که به شما می دهد ذخیره کنید.

  • /etc/letsencrypt/live/example.com/cert.pem
  • /etc/letsencrypt/live/example.com/privkey.pem

اکنون به پوشه ای که گواهینامه ها در آن هستند از طریق:

اطمینان حاصل کنید که example.com را به میزبان مناسب تغییر دهید.

cd /etc/letsencrypt/live/example.com/

حالا بیایید آن محتویات را در پوشه پروژه خود کپی کنیم.

cp cert.pem /home/pi/Mirror/resources/certs/cert.pem

و

cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem

Apache را با دامنه خود متصل کنید

برای پیکربندی صحیح Apache با دامنه خود ، باید یک فایل پیکربندی ایجاد کنیم. اطمینان حاصل کنید که نام دامنه خود را برای مثال funergydev.com وارد کنید.

sudo nano /etc/apache2/sites-enabled/example.com.conf

سپس این را در فایل بچسبانید. example.com را با نام دامنه خود جایگزین کنید.

مطمئن شوید که گواهینامه و کلید خصوصی شما مسیر صحیح است. آنها را در مسیری که قبلاً هنگام ایجاد ما و سپس از طریق certbot ذخیره کرده اید تنظیم کنید.

DocumentRoot "/var/www/html/" SSLEngine در SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # سایر دستورالعمل ها در اینجا گزینه ها فهرست ها FollowSymLinks AllowOver همه مستلزم همه اعطا شده است

اکنون ما باید برخی از تغییرات را فعال کنیم و سپس Apache را مجبور کنیم که پیکربندی را با این کار بارگذاری کند:

sudo a2enmod ssl

sudo a2enmod بازنویسی کنید

sudo systemctl آپلود apache2

اکنون باید بتوانید از طریق نام دامنه خود به pi خود بروید و صفحه apache پیش فرض را مشاهده کنید.

مرحله 6: Google API

Google API
Google API
Google API
Google API
Google API
Google API

از طریق https://console.developers.google.com به کنسول برنامه نویس بروید.

قسمت 1

با کلیک بر روی آرم Google API و کلیک بر روی دکمه NEW PROJECT اولین پروژه خود را ایجاد کنید. نام پروژه مناسب را پر کرده و روی دکمه ایجاد کلیک کنید. [عکس 1]

قسمت 2

اکنون به این صفحه خواهید رسید. روی دکمه کتابخانه کلیک کنید. [عکس 2]

این لیست بزرگی از تمام API هایی است که می توانید استفاده کنید ، اما ما API تقویم Google را جستجو می کنیم. روی آن کلیک کرده و ENABLE را فشار دهید. [عکس 3]

سپس به نمای کلی از API تقویم خواهید رسید. برای بازگشت به پروژه خود روی آرم Google APIs کلیک کنید. [عکس 4]

قسمت 3

برای تنظیم همه چیز به درستی روی دسته اعتبارنامه کلیک کرده و برگه تأیید دامنه را انتخاب کنید.

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

  1. روی افزودن دامنه کلیک کنید
  2. دامنه خود را پر کنید
  3. سپس از شما درخواست می کند دامنه شما را تأیید کند. روی ادامه کلیک کنید.
  4. ارائه دهنده نام دامنه خود را انتخاب کنید. [عکس 5]
  5. روند را دنبال کنید
  6. اکنون می توانید آن را به این صورت به فهرست تأیید دامنه در کنسول Google API اضافه کنید. مطمئن شوید دامنه شما بررسی شده باشد. [عکس 6]

قسمت 4

اکنون برگه صفحه رضایت OAuth را انتخاب کنید. [عکس 7]

نام برنامه را پر کنید

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

  1. روی افزودن محدوده و جستجوی تقویم کلیک کنید.
  2. ../auth/calendar.readonly را علامت زده و add را فشار دهید. [عکس 8]

یک دامنه مجاز را پر کنید این باید دامنه ای باشد که شما فقط تأیید کرده اید. [عکس 9]

حالا روی دکمه ذخیره بزرگ زیر فرم کلیک کنید.

قسمت 5

در نهایت ما باید اعتبارنامه ها را ایجاد کنیم. چون دکمه ذخیره را فشار دادیم به برگه اعتبارنامه هدایت شدیم. روی ایجاد اعتبارنامه کلیک کنید و OAuth Client ID را انتخاب کنید. [عکس 10]

نوع برنامه را انتخاب کنید: برنامه وب و نام آن را انتخاب کنید.

پیوند زیر را در URI های تغییر مسیر مجاز وارد کنید و دامنه صحیح را پر کنید.

example.com:5000/api/v1/setup/calendar/response

روی ایجاد کلیک کنید. این یک پنجره بازشو به شما نشان می دهد فقط روی OK کلیک کنید. اکنون دکمه بارگیری را در اعتبارنامه هایی که تازه ایجاد کرده اید فشار دهید

قسمت 6

حالا فایل JSON را باز کرده و محتویات را کپی کنید.

sudo nano /home/pi/Mirror/resources/credentials/credentials.json

آنها را اینجا بچسبانید

قسمت 7

اکنون باید دامنه خود را در پیکربندی با انجام موارد زیر تعریف کنیم:

sudo nano /home/pi/Mirror/resources/config.ini

مرحله 7: طراحی آینه

طراحی آینه
طراحی آینه
طراحی آینه
طراحی آینه
طراحی آینه
طراحی آینه
طراحی آینه
طراحی آینه

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

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

اینها 2 قطعه چوب ارزان هستند که مانیتور روی آن قرار می گیرد. همانطور که گفتم ما به فاصله 2 سانتی متری بین آینه و قاب نیاز داریم. من همچنین 3 تکه چوب کوچک اضافه کردم و آنها را روی قطعات استراحت پیچ کردم. بنابراین مانیتور در جای خود باقی می ماند. [عکس 2]

در نهایت این چنین به نظر می رسید. من بین قطعات استراحت و جلوی قاب آینه حدود 3 میلی متر فاصله داشتم. فقط به اندازه ای که بتوانم آینه دو طرفه با ضخامت 3 میلی متر را در آن قرار دهم. [عکس 3]

مرحله 8: انجام سیم کشی

انجام سیم کشی
انجام سیم کشی
انجام سیم کشی
انجام سیم کشی
انجام سیم کشی
انجام سیم کشی

مطمئن شوید که یکی از این طرح ها را به درستی دنبال می کنید.

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

مرحله 9: شروع کد

شروع کد
شروع کد
شروع کد
شروع کد
شروع کد
شروع کد

جلسه LX

بیایید ابتدا چند پوشه ایجاد کنیم

mkdir -p /home/pi/.config/lxsession/LXDE-pi/

اکنون ما یک فایل ایجاد می کنیم که در آن چند پارامتر/فرمان راه اندازی را مشخص می کنیم.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

موارد زیر را در فایل بچسبانید.

lxpanel-پروفایل LXDE-pi

pcmanfm --desktop --profile LXDE-pixscreensaver -no-splash @point-rpish /home/pi/Mirror/init_mirror.shxset s noblankxset s offxset -dpms

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

sudo nano /home/pi/Mirror/init_mirror.sh

اگر از تقویم google و دامنه استفاده نمی کنید ، localhost را انتخاب کنید.

#!/bin/bash

sleep 15 chromium-browser-ناشناس --kiosk https:// localhost/mirror

اگر از آن استفاده می کنید ، میزبان خود را پر کنید.

#!/bin/bash

sleep 15 chromium-browser-ناشناس --kiosk

سرویس

اکنون تنظیم می کنیم که کد Mirror به طور خودکار اجرا شود.

ما در حال ایجاد سرویسی خواهیم بود که به طور خودکار کد را برای ما شروع می کند.

قابل اعتماد و متخصص:

sudo nano /etc/systemd/system/mirror.service

و این را در فایل بچسبانید

[واحد]

توضیحات = Mirror Backend After = network.target mariadb.service [Service] Type = simple User = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Install] WantedBy = multi-user.target

حالا ما باید با این کار دیمون systemd را بارگیری کنیم:

sudo systemctl daemon-reload

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

آینه فعال sudo systemctl

حالا ما خاموش می کنیم

sudo poweroff

تنظیمات نهایی

در نهایت ما باید IP APIPA خود را حذف کنیم تا فقط روی WiFi کار کند.

  1. به دایرکتوری بوت کارت SD در رایانه خود بروید.
  2. فایل "cmdline.txt" را باز کنید
  3. حذف ip = 169.254.10.1 در انتهای خط طولانی متن.

مرحله 10: اجرای آینه

اجرای آینه
اجرای آینه
اجرای آینه
اجرای آینه
اجرای آینه
اجرای آینه
اجرای آینه
اجرای آینه

از IP موجود در صفحه آینه دیدن کنید یا اگر تقویم Google را تنظیم کرده اید نام دامنه را پر کنید.

اکنون می توانید آینه خود را تنظیم کنید!

اگر با خطای SSL در آینه خود مواجه شدید ، ممکن است بخواهید گواهینامه های خود را به فروشگاه گواهی Chromium اضافه کنید.

توصیه شده: