Мазмуну:
- 1 -кадам: Аппаратты Piге туташтыруу
- 2 -кадам: Негизги программаларды коддоо
- 3 -кадам: Маалыматтар базасын түзүү
- 4 -кадам: Аппараттык коддоо
Video: Beargardian: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Эй балдар, мектеп үчүн мага долбоор үчүн идея керек эле. Мен ойлогом, бул малина пи менен долбоор болушу керек жана ал жергиликтүү. Күтүлбөгөн жерден менде сонун идея пайда болду жана мен бул идеяны кантип алганымды сурабайм, бирок мен бала мониторун жаңыртуу жөнүндө ойлондум. Бул идея жөнүндө бир аз ойлонуп көрүңүз, көпчүлүк ымыркай мониторлору баланын бөлмөсүн угуу функциясына ээ.
Өзгөчөлүктөр
- Жөнөкөй түстөр менен кичинекей жарык шоу
- Сизге жандуу сүрөттөрдү көрсөтүүчү камера
- Музыканы ойното турган спикер
- Баланын кыймылын тартып турган сенсорлор
- Мунун баары веб -сайтта көрсөтүлөт
Кыска маалымат
Муну кыска нускада түшүндүрүп берейин. Ошентип, биз веб -сайтка муктажбыз жана бул проект үчүн мен Flask колдонуп жатам, бизге дагы маалымат базасы керек жана мен mysql колдонуп жатам, ошондой эле жабдууну иштетүүчү скрипт жана бул python (3) менен, акырында бизге серверди орнотуу керек бул PI боюнча nginx болмок.
Бизге эмне керек
- Raspberry Pi 3
- Stepmotor 28BYJ
- Stepmotor driverchip ULN2003 кадам модулу
- A rgb 3 каршылыгы 330Ohm менен жетектелген
- Pi NoIR камерасы V2
- УЗИ сенсор HC-SR04
- Ардиунонун микро модулу
- MAX98357A
- Динамик 8Ohm
- Анан аюу сатып алууну унутпаңыз
Малина пи орнотуу ----------------------------------------------- -------------------------------------------------- --------------------------
Адегенде биз Pi орнотушубуз керек. Шыбак аркылуу кирүүнү мурунтан баштаңыз, эгерде сизде шпаклинг жок болсо, мен муну жүктөп алууну сунуштайм, жөн эле Pi статикалык ipин ssh менен териңиз жана сиз аны менен барасыз. Эгерде сиз Raspberry Pi орнотушуңуз керек болсо, анда мен жаман кабар алдым, мен муну бул долбоордо түшүндүргөн жокмун.
Пакеттерди орнотуу
sudo apt update
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Виртуалдык чөйрө
python3 -m пип орнотуу -pip setuptools дөңгөлөгүн виртуалдык жаңыртуу
mkdir {your project foldername} && cd {your project foldername} python3 -m venv --system-site-packages env source env/bin/activate python -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-connector-python passlib
Эми сиз проект папкаңыздагы git репозиторийин клондошуңуз керек
github.com/NMCT-S2-Project-I/Project-I.git
Эгерде сиз долбооруңуздун папкасын карасаңыз, анда 5 папканы көрүшүңүз керек
- конф
- env
- сенсор
- sql
- желе
Маалыматтар базасы
sudo systemctl status mysql
ss -lt | grep mysql sudo mysql
бардык артыкчылыктары бар маалымат базасында колдонуучу түзүү жана маалымат базаңызды түзүү
'password' менен аныкталган 'user'@'localhost' колдонуучусун түзүү;
маалымат базаңыздын атын түзүү; берилиштериңиздин аталышындагы бардык артыкчылыктарды бериңиз.* колдонуучуга@'localhost' грант берүү менен;
Сервер үчүн конф файлдары
Uwsgi-flask.iniде сиз 'module =…' '' module = web: app 'жана сиз түзгөн виртуалдык тармактын жолун өзгөртөсүз. Башка файлдарда сиз каталогдун чыныгы абсолюттук жолдоруна жолдорду өзгөртүүңүз керек.
Түшүнгөндөн кийин, сиз файлдарды керектүү жерге орното аласыз.
sudo cp conf/project1-*. service/etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl баштоо project1-* sudo systemctl status project1-*
азыр биз муну жеткиликтүү кылышыбыз керек
sudo cp conf/nginx/etc/nginx/sites-available/project1
sudo rm/etc/nginx/sites-enabled/default sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 sudo systemctl restart nginx.service sudo nginx -t
Эгер баары ойдогудай болсо, анда сиз бул буйрук менен салам дүйнөсүнө ээ болосуз
wget -qO - localhost
Бүттү! Ооба, бул сиздин системаңызды иштетүү үчүн …
1 -кадам: Аппаратты Piге туташтыруу
BCM колдонуу
аудио MAX98357A
- BCKдан GPIO 18ге чейин
- GPIO 21ге маалыматтар
- GPR 19 үчүн LRCK
жарык
- GPIO 17ге кызыл
- GPIO 27 үчүн жашыл
- GPIO 22ге көк
мотор модулу ULN2003
- pin 1 GPIO 5ке
- GPIO 6га 2 -пин
- GPIO 13кө 3 -пин
- GPIO 26га 4 -пин
микро
GPO 21 үчүн D0
УЗИ сенсор
- GPIO 16га өтүү
- GPIO 20га жаңыртуу
2 -кадам: Негизги программаларды коддоо
Мен бул жерде майда -чүйдөсүнө чейин эмесмин, бирок сиз менин кодумду githubдан текшере аласыз.
Баштоо үчүн мен html жана cssти, индексти, логинди, каттоону, башкы экранды, музыканы, музыканы, addbear, жарыкты, камераны, камера орнотууларын, сенсорду, панелдин баракчасын түздүм. HTML файлдары калыптарда жана CSS файлдары статикалык/CSS папкасында болушу керек. Сиз каалагандай CSSти толугу менен ыңгайлаштыра аласыз.
Эгер сиз бул бөлүктү аткарсаңыз, колбаңызды орнотушуңуз керек. Flask салам дүйнөсүнүн мисалын колдонуу оңой
# импорт колбасы башында
колбадан импорттоо * @app.route ('/') def index (): return render_template ('index.html')
Эми менин кодумда бул мурунтан эле толтурулган, сизден бир гана нерсе керек - бул маалымат базасынын колдонуучусун жана сырсөзүн сизден өзгөртүү жана, албетте, сиз дагы githubдан таба аласыз.
3 -кадам: Маалыматтар базасын түзүү
Чыныгы күйөрмандар үчүн мен сизге ошол эле маалымат базасын кантип түзүүнү айтып берейин.
Ошентип, биринчи кезекте биз маалымат базасын түзүшүбүз керек, эгер сиз биринчи кадамда болбосоңуз.
beargardian маалымат базасын түзүү;
Муну кылгандан кийин сиз mysql workbench же phpadminде таблицаларды түзөсүз
колдонуучу таблицасы бар
- userID
- биринчи аты
- акыркы Аты
- электрондук почта
- атасынын аты
- sha1 менен сырсөз
- userfolder
- ойноо музыкасы (int)
- ойноткуч (int)
- ойноо жазуусу (int)
музыкалык стол бар
- musicID
- ыр
- жол
- userfolder
- статус
- көлөмү
жазуу столу бар
- жазуу ID
- жол
- колдонуучу папкасы
- убакыт
- күн
түстүү үстөл бар
- colorID
- Кызыл
- жашыл
- Көк
- жарыктык
- userID
аюунун столу бар
- bearID (ондук (8))
- userID демейки нөл
- аталыш
сенсордук стол бар
- sensorID
- аралык
- микро
- bearID
- убакыт
- күн
- уктоо убактысы
Эми сиз маалымат базасын ийгиликтүү түздүңүз, жабдыкка өтөлү.
4 -кадам: Аппараттык коддоо
Мен бир аз код көрсөтөм жана эмне үчүн мындай кылганымды айтып берейин.
Мен жипти колдонууну баштоо үчүн, бул долбоордо абсолюттук нерсе болушу керек. Тиш деген эмне, хмм жакшы суроо! Pythonдо коркунучтуу нерсе - бир эле учурда бир нече программаны иштетүү. Демек, эгер сиз, мисалы, түсүн өзгөртсөңүз, жаздырсаңыз болот. Колдонуу оңой, кабатыр болбо.
import _threaddef function_name (бир нерсе, бир нерсе_башка): иштетүү үчүн код
_thread.start_new_thread (функциянын_аталышы, функциялардын_өзгөрмөлөрү менен бирге)
Эгерде сиз менин программамды карасаңыз logger.info ('…') көрдүңүз. Бул басып чыгаруу функциясы, бирок алда канча жакшыраак, анткени Piде сиз эч нерсени басып чыгара албайсыз, ошондуктан мен файл жасап, ошол жерге басып чыгарам. Yoe бул файл менен журнал файлын орното алат.
logger = logging.getLogger (_ аты _) logger.setLevel (logging. INFO) # файл иштетүүчү иштетүүчү түзүү = logging. FileHandler ('logger.log') handler.setLevel (logging. INFO)
# журналдын форматын түзүү
formatter = logging. Formatter (' %(asctime) s - %(name) s - %(message) s') handler.setFormatter (formatter)
# иштетүүчүлөрдү журналга кошуу
logger.addHandler (иштетүүчү)
logger.info ('аппараттык камсыздоону иштетүү / n ---------------------------------------')
андан ары коддун өзүндө мен баарын түшүндүрөм.
Сунушталууда:
Кантип кадам эсептегич жасоо керек?: 3 кадам (сүрөттөр менен)
Step Counter кантип жасалат ?: Мен көптөгөн спортто жакшы аткарчумун: жөө басуу, чуркоо, велосипед тебүү, бадминтон ойноо ж.б. Мейли, менин ичимди карачы ……. Ооба, баары бир мен машыгуу үчүн кайра баштоону чечтим. Мен кандай жабдыктарды даярдашым керек?
IPodдо Doomду 5 жеңил кадам менен ойноңуз !: 5 кадам
Doom'ду IPodдо 5 жеңил кадам менен ойноңуз!: Doom жана башка ондогон оюндарды ойноо үчүн iPod'уңузда Rockboxту кантип кош жүктөө керектиги боюнча этап-этабы менен көрсөтмө. Бул чындыгында оңой нерсе, бирок менин iPodдо кыйроо ойноп жатканымды көргөндөрдүн көбү дагы эле таң калышат жана көрсөтмө менен чаташып кетишет
WordPressке плагиндерди 3 кадам менен кантип орнотсо болот: 3 кадам
WordPressке плагиндерди 3 этапта кантип орнотуу керек: Бул үйрөткүчтө мен сизге веб -сайтыңызга WordPress плагинин орнотуу үчүн эң маанилүү кадамдарды көрсөтөм. Негизи плагиндерди эки башка жол менен орнотсоңуз болот. Биринчи ыкма ftp же cpanel аркылуу болот. Бирок мен аны тизмектебейм, анткени бул чындыгында нааразы
Кадам моторун айдоо үчүн 556 таймерди колдонуу: 5 кадам
Step моторун айдоо үчүн 556 таймерди колдонуу: Бул инструкция 556 таймердин кантип тепкичтүү моторду айдай аларын түшүндүрүп берет
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)