Съдържание:
- Консумативи
- Стъпка 1: Настройка
- Стъпка 2: Инсталиране на огледалото
- Стъпка 3: Конфигурация
- Стъпка 4: API
- Стъпка 5: Календарът
- Стъпка 6: Google API
- Стъпка 7: Огледален дизайн
- Стъпка 8: Окабеляване
- Стъпка 9: Стартиране на кода
- Стъпка 10: Стартирайте огледалото
Видео: Интелигентно огледало за много потребители с Google Календар: 10 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
В тази инструкция ще създадем интелигентно огледало, интегрирано с Google Календар. Направих този проект, защото намирам интелигентните огледала за страхотни, те са божи дар на сутринта. Но реших да си направя сам от нулата, защото всички останали имат 1 недостатък. Те са твърде напреднали и претрупани. Реших да запазя това просто.
Консумативи
Преди
ще започнем, това са нещата, които определено ще ви трябват, за да изградите огледало като моето. Тези доставки ще струват около 250 до 350 евро в зависимост от вашия регион и текущите цени.
Хардуер
Сензори
- Температурен сензор с един проводник
- RWCL 0516 (Микровълнов сензор за движение)
- Мек потенциометър (Touchstrip от Sparkfun)
Изчисления
и IC
- Високоговорител (3,2 W при 4Ω ИЛИ 1,8 W при 8 Ω)
- MCP3008
- Adafruit I2S 3W Class D усилвател - MAX98357A
- Малина Pi 3 B+
- SD карта (8GB е добре)
- Резистор 4.7K Ohm
Различни
- Джъмперпроводници
- Платка
- Двупосочно огледало от акрил (15% пропускане на светлина)
- IPS монитор (размерът зависи от това колко голям искате)
- HDMI кабел
- дърво
Софтуер
- ПУТИ
- Редактор на код (Notepad ++ е достатъчен)
- Win32 Disk Imager
- Образ на Raspbian OS
Стъпка 1: Настройка
За да започнем, първо ще трябва да настроим вашия Pi за кода, който направих.
Ще ви трябват две неща:
- Win32 Disk Imager от
- Образ на Raspbian OS от
Изтеглете ZIP файла и го извлечете където искате.
Инсталацията
- Изберете вашето изображение чрез иконата на папката
- Изберете вашата SD карта чрез падащото меню
- Щракнете върху напиши
Сега ще трябва да направим допълнително бъркане с някои настройки, за да можем да получим достъп до Pi.
- Отидете в директорията за зареждане на SD картата
- Отворете файла "cmdline.txt"
- Добавете ip = 169.254.10.1 В края на дългия ред текст, разделен с интервал (на същия ред).
- Запазете файла.
- Създайте файл с име ssh без разширение в същата директория
Сега можете да извадите SD картата и да я поставите във вашия Pi.
Свързване
Сега ще трябва да настроим софтуера.
Първо включете LAN кабел, единият край на вашия работен плот/лаптоп, а другият във вашия Pi.
Сега стартирайте Raspberry Pi.
- Инсталирайте Putty от
- Въведете 169.254.10.1 в полето IP.
- Уверете се, че SSH е избран и порт 22 е попълнен.
- Щракнете върху отвори
- Попълнете потребителското име: pi
- Попълнете паролата: малинов
Raspi-config
Отворете помощната програма Raspi-config, като използвате:
sudo raspi-config
Активирайте следните опции в категорията интерфейси
- 1-проводник
- SPI
Изберете вашата WiFi държава чрез категорията за локализация.
След това деактивирайте следните опции в категорията опции за зареждане
Екран за пръскане
Накрая задайте настройката Desktop/CLI в категорията опции за зареждане на Desktop Autologin.
WiFi
За огледалото трябва да имаме wifi връзка, така че се уверете, че вашите идентификационни данни за wifi са близо.
Влезте в root режим
sudo -i
Поставете този ред, но се уверете, че SSID и паролата са попълнени
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Въведете WPA клиент.
wpa_cli
Изберете интерфейса
интерфейс wlan0
Презаредете конфигурацията
преконфигурирайте
Уверете се, че сте свързани правилно, като напишете …
ip a
… и вижте дали имате IP на WLAN0 интерфейсите.
Пакети
Сега, когато сме свързани с интернет, ще трябва да инсталираме някои пакети.
Първо ще трябва да опресним списъците с пакети за най -новия.
sudo apt актуализация
Python
Ще принудим Raspbian да използва Python 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-сървър
След това ще трябва да осигурим нашата инсталация.
mysql_secure_installation
Той ще ни поиска текуща root парола, тъй като нямаме такава, просто натиснете enter.
След това се пита дали искаме root парола в y, тъй като искаме такава.
За следващите въпроси просто въведете Y.
Накрая ще създадем потребител, който ще можем да използваме за огледалото.
Въведете черупката на mysql, като направите:
Издигаме се до корен
sudo -i
Въведете обвивката на mysql
mysql
Заменете със собствено потребителско име и същото с
предоставете всички привилегии на mirror.* на ''@'%', идентифицирани от '';
Сега изчистваме таблицата с разрешения.
ФЛУШ ПРИВИЛЕГИ;
Apache уеб сървър
За да инсталирате уеб сървъра, изпълнете реда по -долу.
sudo apt инсталирате apache2 -y
Пакети на Python
Ще инсталираме тези пакети
- Колба
- Flask-Cors
- Flask-MySQL
- Flask-SocketIO
- PyMySQL
- Колба-талисман
- Gevent
- Gevent-websocket
- Google-api-python-клиент
- Google-авт
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- Icalevents
- Oauthlib
- Python-socketio
- Искания
- Wsaccel
- Ujson
Чрез правене
pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-клиент google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendarh icalecincen wicalecance wicalecance wicalecn
Настройка на високоговорителите
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: Инсталиране на огледалото
Сега ще настроим място за изтегляне на моя код.
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, ще обхванем някои теми, които може да искате да направите.
Мрачно небе
Създайте Darsky API ключ чрез
Когато се регистрирате, ще видите своя API ключ на таблото за управление.
Въведете този ключ в конфигурационния файл на огледалния проект, който сте инсталирали преди.
Календар
По подразбиране ще можете да използвате само ical URL адреси, за да видите календара си от. Но тази част ще бъде за това как да свържете огледалото си с екосистемата на Google. Това като цяло е по -дълъг и болезнен процес.
Неща, които определено ще ви трябват
Име на домейн
Това са нещата, които ще настроим по време на тази част
- Акаунт в CloudFlare
- Профил на програмист в Google
- Проект за разработчици на Google
- Настройте API на календара
Стъпка 5: Календарът
Cloudflare
Настройте акаунт в cloudflare от https://cloudflare.com и следвайте съветника, за да прехвърлите вашето име на домейн в DNS на Cloudflare.
Няма нужда сами да създавате запис A, който сочи малиновото пи. Моят Mirror код ще направи това вместо вас. Тъй като в повечето домакински wifi IP адресите не са статични, така че след рестартиране може да не работи повече. За да може кодът ми автоматично да актуализира ip, ще му е необходим API ключ за акаунта ви.
- Щракнете върху бутона Get your API key на таблото за управление от дясната страна. [Снимка 1]
- Превъртете надолу и прегледайте своя глобален API ключ. [Снимка 2]
Въведете този ключ в конфигурационния файл на огледалния проект, който сте инсталирали преди.
Създаване на 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 # Други директиви тук Опции Indexes AllowSymr Всички Изискват всички предоставени
Сега трябва да разрешим някои модификации и след това да принудим Apache да презареди конфигурацията, като:
sudo a2enmod ssl
sudo a2enmod пренаписване
sudo systemctl презареди apache2
Сега би трябвало да можете да отидете през вашето име на домейн към вашето pi и да видите страницата на apache по подразбиране.
Стъпка 6: Google API
Отидете на конзолата за програмисти чрез
Част 1
Създайте първия си проект, като щракнете до логото на Google API и щракнете върху бутона НОВ ПРОЕКТ. Попълнете подходящо име на проект и щракнете върху бутона за създаване. [Снимка1]
Част 2
Сега ще стигнете до тази страница. Щракнете върху бутона библиотека. [Снимка2]
Това е голям списък с всички API, които можете да използвате, но ние ще търсим API на Google Календар. Щракнете върху него и натиснете ENABLE. [Снимка3]
След това ще получите общ преглед на API на Календар. Щракнете върху логото на API на Google, за да се върнете към вашия проект. [Снимка4]
Част 3
За да настроите всичко правилно, щракнете върху категорията идентификационни данни и изберете раздела Проверка на домейна.
Тук ще трябва да потвърдите името на домейна си.
- Щракнете върху ДОБАВЯНЕ НА ДОМЕН
- Попълнете вашия домейн
- След това ще поиска да потвърди вашия домейн. Щракнете върху Напред.
- Изберете вашия доставчик на име на домейн. [Снимка5]
- Следвайте процеса
- Сега ще можете да го добавите към списъка за проверка на домейна в Google API Console по този начин. Уверете се, че вашият домейн е проверен. [Снимка6]
Част 4
Сега изберете раздела на екрана за съгласие с OAuth. [Снимка7]
Попълнете името на приложението
След това ще добавим обхвати към екрана за съгласие. Това означава, че ще попитаме потребителя на екрана за съгласие дали иска да сподели своята информация за календара с огледалото.
- Щракнете върху добавяне на обхват и потърсете календар.
- Проверете../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: Стартиране на кода
LXSession
Нека първо създадем няколко папки
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Сега ще създадем файл, в който ще посочим няколко параметри за стартиране/команди.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Поставете следното във файла.
@lxpanel --профил LXDE-pi
@pcmanfm --desktop --профил LXDE-pi @xscreensaver -no-splash @point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms
Ще актуализираме скрипта за начален огледален екран, за да съответства на нашия хост.
sudo nano /home/pi/Mirror/init_mirror.sh
Изберете localhost, ако не използвате Google календар и домейн.
#!/bin/bash
sleep 15 chromium-browser --incognito --kiosk https:// localhost/mirror
Ако го използвате, попълнете вашия хост.
#!/bin/bash
sleep 15 chromium-browser --incognito --kiosk
Обслужване
Сега ще настроим кода на Mirror да се стартира автоматично.
Ще създадем услуга, която автоматично стартира кода вместо нас.
Отидете на:
sudo nano /etc/systemd/system/mirror.service
И поставете това във файла
[Мерна единица]
Описание = Огледален бекенд след = network.target mariadb.service [услуга] Тип = прост потребител = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Инсталиране] WantedBy = многопотребителски целеви
Сега ще трябва да презаредим демона systemd, като направите:
sudo systemctl демон-презареждане
Също така ще активираме услугата за автоматично стартиране при зареждане.
sudo systemctl активира огледало
Сега ще изключим захранването.
sudo poweroff
Окончателните настройки
Накрая трябва да премахнем нашия APIPA ip, така че да работи само на WiFi.
- Отидете в зареждащата директория на SD картата на вашия компютър.
- Отворете файла "cmdline.txt"
- Премахнете ip = 169.254.10.1 В края на дългия ред текст.
Стъпка 10: Стартирайте огледалото
Посетете ip, който е на огледалния екран, или ако сте настроили календара на Google, попълнете името на домейна.
Сега ще можете да настроите огледалото си!
Ако получите грешка в SSL на огледалото си, може да искате да добавите сертификатите си в хранилището за сертификати на Chromium.
Препоръчано:
LED бюро за интелигентно бюро - Интелигентно осветление W/ Arduino - Работно пространство на Neopixels: 10 стъпки (със снимки)
LED бюро за интелигентно бюро | Интелигентно осветление W/ Arduino | Работно пространство на Neopixels: Сега, когато прекарваме много време у дома, учим и работим виртуално, така че защо да не подобрим нашето работно пространство с персонализирана и интелигентна система за осветление, базирана на светодиоди Arduino и Ws2812b. Тук ще ви покажа как да изградите своя Smart Настолна LED светлина, която
Как да създадете преносимо интелигентно огледало/Комбинирана кутия за грим: 8 стъпки
Как да създам преносимо интелигентно огледало/Комбинирана кутия за грим: Като последен проект за моята основна задача в Davis & В колежа Елкинс се заех да проектирам и създам кутия за грим, заедно с по -голямо огледало и използване на малиново пи и софтуерната платформа за магическо огледало, която ще функционира като порт
Как да изградим интелигентно огледало с Raspberry Pi 4: 10 стъпки
Как да изградим интелигентно огледало с Raspberry Pi 4: В това ръководство ще видим как да изградим smartmirror, използвайки рециклирани парчета като рамка за картина, стар монитор и стъкло за картина. За електронните компоненти, които закупих от тук www.lcsc .com
Интелигентно огледало: 5 стъпки
Интелигентно огледало: Тази инструкция ще ви научи как да създадете интелигентно огледало, което показва вашата пощенска кутия, най -новите новини и актуализации от The New York Times, както и датата и часа на фона от Unsplash. Връзката работи: Необходими консумативи: Рамка за
Как да си направим DIY интелигентно огледало: 12 стъпки (със снимки)
Как да си направим интелигентно огледало „Направи си сам“: „Умно огледало“е двупосочно огледало с дисплей зад него, което обикновено се използва за показване на полезна информация като часа и датата, времето, календара ви и всякакви други неща! Хората ги използват за всякакви цели