Мазмұны:

CleanBot Guillaume Meurillon: 8 қадам
CleanBot Guillaume Meurillon: 8 қадам

Бейне: CleanBot Guillaume Meurillon: 8 қадам

Бейне: CleanBot Guillaume Meurillon: 8 қадам
Бейне: Omgaan met verschil in beeld en muziek 2024, Шілде
Anonim
CleanBot - Guillaume Meurillon
CleanBot - Guillaume Meurillon
CleanBot - Guillaume Meurillon
CleanBot - Guillaume Meurillon

Бұл мен мектепке арналған жобаның нұсқаулығы. Мақсат - сенсорлардан деректер жинау кезінде интернетке қосылған Raspberry Pi құрылғысын жасау. Бұл деректер (MySQL) мәліметтер базасында сақталуы керек еді. Деректерді Python -да Flask webapp пакеті мен Jinja2 шаблоны арқылы кодталған веб -сайтпен визуализациялау керек болды.

Менің ойым - Raspberry Pi, Arduino, сынған робот вакуумы мен сенсорлар жиынтығын қолдана отырып, «бұзылған» робот вакуумын құру болды.

1 -қадам: бөлшектерді жинау

Бөлшектерді жинау
Бөлшектерді жинау
Бөлшектерді жинау
Бөлшектерді жинау
Бөлшектерді жинау
Бөлшектерді жинау
Бөлшектерді жинау
Бөлшектерді жинау

Іс жүзінде бірдеңе жасамас бұрын, мен қандай бөлшектерді қолдану керектігін, оларды қалай қосу керектігін, Python -да бағдарламалық жасақтама сыныптарын жазу және т.

Бөлшектер тізімі файл ретінде қосылады, осылайша сізге қажет бөліктерді оңай іздеуге болады.

Мен Raspberry Pi жанында сенсорларды тиімді оқу үшін Raspberry Pi жанында Arduino Uno қолдануды шештім. Мен сондай -ақ Uno -ны таңдадым, себебі ол жақсы жылдамдыққа ие және аналогтық түйреуіштерге байланысты. Мен Raspberry Pi үшін ADC (мысалы, MCP3008) қолданар едім, бірақ маған көп сымдар қажет болар еді, бұл қымбатырақ болар еді және менің Пи көп жұмыс істеуі керек еді.

Содан кейін мен сынған робот вакуумынан қолдануға жарамды бөлшектерді тексере бастадым. Ішкі электроника зақымдалған жерде, бірақ бұл ешқандай проблема болмады, өйткені мен оны мүлде ауыстыратын едім. Луккилли тұрақты ток қозғалтқыштары әлі де жұмыс істеді, сондықтан олардың ешқайсысын ауыстыруға тура келмеді.

Бөлшектер тізімі:

  • Raspberry Pi 3, кемінде 8 ГБ MicroSD 10 класы мен корпусы бар;
  • Raspberry Pi T-өтпелі және нан тақтасы;
  • Arduino Uno немесе оған ұқсас (жақсырақ ADC бар қытайлық емес нұсқа, кейбір қытайлықтарда AREF мәселелері бар) қандай да бір жағдайда;
  • Ethernet кабелі;
  • A (сынған) робот вакуумы;
  • 3x HC-SR04 ультрадыбыстық модульдер;
  • 1х залдың сенсорлық модулі;
  • Әр түрлі мәндегі бірнеше резисторлар;
  • LDR;
  • 6х 18650 литий-ионды аккумуляторлар + 12 вольтты 3 ұялы ұстағыштар (жақсырақ жаңа батареяларды қолданған жөн немесе LiPo батареяларын қолданған дұрыс, бұл ұзақ уақытқа созылады);
  • 18650 (немесе сіз қандай батарея түрін қолданасыз) 12в 3 ұялы зарядтау pcb;
  • Компоненттерді дәнекерлеуге арналған кейбір ПХД DIY тақталары;
  • Полиуретанды пластиктен жасалған парақ;
  • Ноутбук / жұмыс үстелі.

Құралдар тізімі:

  • Бірнеше бұрғылау ұшы бар бұрғы;
  • Бұрыш тартқыш (егер сізде тәжірибе болмаса, оны қолданбаңыз) немесе Дремель сияқты нәрсе;
  • Тегістеу қағазының бір бөлігі;
  • Бірнеше бұрағыш;
  • Өте желім, монтаж желімі,…;
  • Дәнекерлеу үтігі (сымдарды оңай дәнекерлеу үшін майды қолданыңыз);
  • Бір жұп сым кескіш пен аршуға арналған құрал.

Бағдарламалық қамтамасыз ету тізімі (міндетті емес):

  • Adobe XD: прототипті сыммен белгілеу және құру;
  • Фритинг: электрлік схеманы құру;
  • PyCharm Professional: орналастыру мен қашықтан аудармашыны қолдану мүмкіндіктері бар Python IDE;
  • Шпатлевка: Pi көмегімен тез және оңай ssh байланысы;
  • Etcher.io: Raspbian кескінін SD картасына жыпылықтаудың қарапайым құралы;
  • Win32DiskImager: бар Raspbian қондырғысынан кескін құрудың қарапайым құралы;
  • Бағдарламашылар Блокнот: /boot/cmdline.txt файлын қауіпсіз өңдеу үшін қолдануға болатын қарапайым құрал.

2-қадам: Бүріккішпен бояу және интерфейсті жобалау

Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау
Бүріккіш бояу және интерфейсті жобалау

Дизайн жасауды бастамас бұрын мен сырты бояумен боядым, өйткені түстер маған мүлде ұнамады. Мен дүкенге барып, пластикалық праймерді, ақ құты мен көгілдір бөтелкені алдым.

Бүріккіш бояуды құрғатқаннан кейін, мен өзімнің интерфейсімді өз құрылғыммен жақсы сәйкестендіру үшін мен қолданған бояудың он алтылық түс кодын іздедім. Бұл он алтылық кодты табу өте оңай болды, өйткені мен Монтана 94 граффитиін қолдандым, ал он алтылық және RGB кодтары олардың веб -сайтында болды.

Мен бұл интерфейсті қалай жасау керектігін жақсы білу үшін веб-сайтымның әр беті үшін жоғары сапалы сымды кадрлар жасадым. Менің интерфейсімді мұғалімдерге көрсеткеннен кейін, фонды сәл сұр және түймелерді ақ түске айналдыру туралы кеңес алдым, нәтиже менің ойымша жақсы болды.

3 -қадам: Мәліметтер қорын құру

Мәліметтер қорын құру
Мәліметтер қорын құру

Келесі логикалық қадам - MySQL мәліметтер базасында қандай деректерді сақтағым келетіні туралы ойлауды бастау. Адамдар өздерінің вакуумы туралы білгісі келмейді, сондықтан мен пайдаланушыларға арналған кестелермен және олардың кіру деректерімен, сондай -ақ сенсорларға арналған кестелермен (батарея, қашықтық және шаң контейнері) бірге жүрдім.

Кескін сізге MySQL Workbench -те салынған менің кестелерімнің орналасуын кестелер арасындағы барлық қатынастарды көрсетеді.

Қолданушылар үшін мен интерфейсті және электрондық поштаны жекелендіру үшін олардың аты мен тегін бақылап отырғым келді. Әрине, электрондық поштаны жіберу үшін маған олардың электрондық поштасы қажет болды. Мен сондай-ақ пайдаланушылардың электрондық поштаның қалауын бақылау үшін кесте қостым (олар электрондық хаттарды алғысы келеді ме, жоқ па). Қолданушылар туралы сақтағым келетін соңғы нәрсе - олардың құрылғыдағы рөлі. Мен қолданушыларды әкімші және қарапайым пайдаланушылар деп бөлемін. Әкімшілер жүйеге пайдаланушыларды қосуға, жоюға және басқаруға құқылы, ал қарапайым пайдаланушылар бұл құралдарға кіре алмайды.

Келесі кестеде «Deviceruns» бар, олар құрылғы жасаған нақты жұмыс. Құрылғылар белгілі бір пайдаланушыға (жүгіруді бастаған адамға) тиесілі және жұмыс уақытын есептеу үшін басталу уақыты мен аяқталу уақыты бар.

Басқа кесте сенсорлық мәліметтерді әр құрылғыға байланыстыру үшін қолданылады. Сенсорлардың идентификаторы, аты мен сипаттамасы бар басқа кестеде сақталады.

4 -қадам: бөлшектерді бір -біріне қосу

Бөлшектерді біріктіру
Бөлшектерді біріктіру
Бөлшектерді біріктіру
Бөлшектерді біріктіру

Деректер базасының схемасын жасағаннан кейін мен барлық бөліктерді бір жұмыс прототипіне қосу үшін тақталар мен сымдарды қолдана бастадым.

5 -қадам: Raspberry Pi орнату

Raspberry Pi орнату
Raspberry Pi орнату

Raspbian соңғы суретін жүктеу үшін Raspbian веб -сайтына өтіңіз. Мұнда сіз қай дистрибутивті жүктегіңіз келетінін таңдай аласыз. Жылдамырақ жұмыс жасау үшін, егер сіз графикалық интерфейсті қаласаңыз, жедел жадты аз пайдалану үшін бассыз дистрибутивті жүктей аласыз немесе GUI көмегімен жұмыс үстелін жүктей аласыз.

ОЖ -ны орнату үшін Etcher -ді жүктеу жеткілікті, бұл суретті микро SD картасына тез және оңай жазуға арналған GUI құралы.

Пи -ге кіру үшін бассыз режимді қосу үшін компьютерге Putty орнату қажет болады. Келесі қадам - Etcher жасаған Boot қалтасына өту және cmdline.txt файлын сүйікті мәтіндік редактормен ашу, мысалы Programmers Notepad. Бұл мәтінді файлдың соңына қосыңыз:

ip = 169.254.10.1

Жаңа жол жасамайтындығыңызға көз жеткізіңіз, оны жолдың соңына қосыңыз!

Содан кейін, Boot қалтасының түбіріне оралыңыз және ssh деп аталатын файл жасаңыз. Кеңейтуді қоспаңыз, бұл сіздің Pi іске қосылған сайын SSH серверінің іске қосылуын қамтамасыз етеді. Енді SD картасын Pi -ге салыңыз, Pi -ге жеткілікті қуат көзін қосыңыз және Pi мен компьютердің арасына Ethernet кабелін қосыңыз.

Шыбықты ашып, IP мекенжайын теріңіз: 169.254.10.1. Енді ИӘ түймесін басып, жүйеге кіріңіз, әдепкі пайдаланушы аты - pi, ал пароль - таңқурай.

Әрі қарай, жаңарту үшін келесі пәрменді орындаңыз:

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

Соңғы қадам - сіздің Raspberry Pi -де виртуалды Python аудармашысын құру, бұл сіздің кодты орындайды. Мұны істеу үшін шпатлды ашып, келесіні теріңіз:

sudo mkdir жобасы1

cd project1 python3 -m pip орнату -pip setuptools дөңгелегінің виртуалды жүйесін жаңарту python3 -m venv -жүйелік -сайт -пакеттер venv

6-қадам: Web-қосымшаны жазу

Веб-қосымшаны жазу
Веб-қосымшаны жазу

Әр бөлікті қосып, Raspberry Pi орнатқаннан кейін мен Flask пен Jinja2 көмегімен негізгі веб-қосымшамды жаза бастадым. Flask-бұл Python үшін қолдануға болатын артқы жақтау, ал Jinja2-мен қолданған шаблон тілі. Jinja көмегімен сіз циклдар үшін қалыпты HTML файлдарын жасай аласыз, егер құрылымдар және т.б.

Артқы жағын кодтау кезінде мен сонымен қатар кейбір элементтер үшін HTML, CSS және JavaScript сияқты қосымшаның алдыңғы жағын жаздым. Мен стиль кестелерім үшін ITCSS әдісі мен BEM белгісін қолдандым.

Негізгі веб-қосымшадан басқа мен тағы 2 негізгі бағдарламаны жасадым. Біреуі тізімдегі пайдаланушыларға құрылғының IP мекенжайын жіберу үшін жазылған. Электрондық хаттарды қабылдауға рұқсат алған әрбір тіркелген қолданушы веб -интерфейсті іске қосу сілтемесі бар поштаны алады. Бұл бағдарлама жүйелік қызмет ретінде жұмыс істейді.

Басқа негізгі файл нақты құрылғыға арналған. Бұл магистральды Flask қосымшасы арқылы, құрылғыны іске қосуға және тоқтатуға және деректерді жинауға шақыруға болады. Жиналған деректер де осы магистраль арқылы құрылғының мәліметтер базасына жүктеледі. Бұл мәліметтерді веб-қосымшада көруге болады.

Веб-бағдарлама Python Threading көмегімен негізгі іске қосылған құрылғыға қосылған. Пайдаланушы бастау түймесін басқанда, құрылғыны фонда іске қосу үшін ағын пайда болады. Сонымен қатар, қолданушы қосымшаны өте жақсы шолуы мүмкін. Тоқтату түймесін басқанда, бұл ағын тоқтатылады, сондықтан құрылғы тоқтайды.

7 -қадам: Қаптаманы аяқтау үшін бөліктер жасау

Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау
Қаптаманы аяқтау үшін бөліктер жасау

Қолданбаның үлкен бөлігін жазғаннан кейін мен сенсорлар мен басқа бөліктер сәйкес келетін етіп құрылғы корпусын өзгертуді бастадым. Мұны істеу үшін мен жергілікті DIY дүкенінен полиуретанды парақ сатып алдым және 2 жақшаны кесуді бастадым. Мен бұл полиуретанды жапырақты қолдандым, себебі ол кесу кезінде бөлшектеніп кетпейді және ол өте икемді болғандықтан, бұл өте жақсы, себебі менің роботым дөңгелек пішінді.

Бірінші кронштейн үстіңгі жағындағы тесікті толтыру үшін жасалған, онда дисплей отырды. Мен батареяларды шынымен өшіру үшін дисплейді қосуға/өшіруге ауыстырдым.

Басқа кронштейн-бұл менің ультрадыбыстық HC-SR04 датчиктерімнің тірегі, олар құрылғының алдыңғы жағында орналасқан.

Дөңгелектердің бірінің арматурасындағы тесікті кесіп алып, дөңгелектің айналуын бақылай алатындай етіп магнит енгізу керек болды.

Бұл жақшаларды аяқтағаннан кейін мен оларды дизайнға сәйкес келу үшін қалдырған бояумен боядым.

8 -қадам: Кодекс

Бағдарламаны орнату үшін code.zip файлын жүктеп алып, оны project1 каталогында ашыңыз.

Содан кейін, бұл команданы Raspbian немесе Putty терминалында орындаңыз:

sudo cp project1/conf/project-1*/etc/systemd/system/

sudo cp project1/conf/project1-*/etc/systemd/system/sudo systemctl демонды қайта жүктеу sudo systemctl project-1* sudo systemctl қосу project1* sudo systemctl қайта іске қосу nginx

Содан кейін, сіз жасаған дерекқорды ашып, Argon2 хэшті құпия сөзі бар жаңа пайдаланушы жасаңыз. Енді сіз бағдарламаны пайдалана аласыз.

Ләззат алыңыз!

Ұсынылған: