Мазмұны:

Велосипедшілерге арналған бақылау модулі: 5 қадам
Велосипедшілерге арналған бақылау модулі: 5 қадам

Бейне: Велосипедшілерге арналған бақылау модулі: 5 қадам

Бейне: Велосипедшілерге арналған бақылау модулі: 5 қадам
Бейне: Балаларға шабуыл жасаған үйдегі жын. #тылсымдүние #қорқыныштыоқиғалар #қорқыныштывидеолар 2024, Шілде
Anonim
Велосипедшілерге арналған бақылау модулі
Велосипедшілерге арналған бақылау модулі

Бұл велосипедшілерге арналған бақылау модулі - бұл жарыстағы апатты автоматты түрде анықтайтын және сенсорға сенсорды тигізу арқылы механикалық бұзылуды анықтайтын модуль. Осы оқиғалардың бірі болған кезде, модуль оқиғаны LoRa арқылы таңқурай pi дерекқорына жібереді. Бұл оқиға СКД дисплейде және веб -сайтта көрсетіледі. Сіз сондай -ақ веб -сайттан оқиғалармен нақты веложарыс іздей аласыз және веложарыс немесе велошабандозды дерекқорға қосуға болады. Мен бұл жобаны велосипедпен айналысуға қызығушылық танытқандықтан жасадым, сондықтан бұл екі пәнді біріктіру мен үшін өте қызықты болды.

Велосипедшілерге арналған бақылау модулін жасамас бұрын, сіз өзіңіздің материалдарыңызды жинауыңыз керек. Сіз құралдар мен жабдықтарды төмендегі тізімнен таба аласыз немесе BOM (Build Builders) материалдарын жүктей аласыз.

Жабдықтар:

  • плекси шыны (56mm X 85mm)
  • 10 X 2M болттары 10 мм және гайкалар
  • 10 X 3M болттары 10 мм және гайкалар
  • 2X 3M болттары 50 мм және гайкалар
  • СКД корпусын 3D басып шығаруға арналған PLA Filament
  • жылу қысқарады
  • Еркектен әйелге арналған кабельдер
  • Негізгі ПХД
  • Еркек тақырыптары
  • Таңқурай Pi 3b+
  • 16 ГБ SD картасы
  • 4X20 жарықдиодты LCD
  • Сенсорлық сыйымдылық сенсоры
  • Дыбыстық сигнал
  • 3 осьтік акселеро + гирометр
  • GPS модулі
  • SODAQ Mbili тақтасы
  • LoRa WAN модулі
  • 3.7В 1000мАч батарея
  • Raspberry Pi 3b+ қуат көзі

Құралдар:

  • Дәнекерленген қалайы
  • Пісіру темірі
  • Қысқыштар
  • Бұрауыштар
  • Джигсо
  • Бұрғылау машинасы
  • 2,5 және 3,5 жаттығулар
  • Жеңіл / ыстық пистолет

Егер сізге барлық керек -жарақтарды сатып алу қажет болса, сізге 541,67 евро бюджеті қажет болады. Бұл жоба өте қымбат, себебі мен 299 евро тұратын LoRa жылдам әзірлеу жиынтығын қолдандым (мен бұл жинақты өз мектебімде қолдандым). Сіз әрқашан қалыпты Arduino -ды қолдана аласыз, көп ақша үнемдейсіз, бірақ ол кезде бағдарламалар басқаша болады.

1 -қадам: Сызу схемасы

Қорқыту схемасы
Қорқыту схемасы
Қорқыту схемасы
Қорқыту схемасы

Бірінші қадам - тізбектерді құру. Бұл жоба үшін бізде 2 электр тізбегі бар, олардың бірінде Raspberry Pi бар, екіншісінде SADAQ Mbili тақтасы бар. Біз Raspberry Pi схемасынан бастаймыз.

Raspberry Pi Fritzing схемасы:

Raspberry Pi схемасы өте қарапайым, біз Pi -мен байланыстыратын жалғыз нәрсе - 4X20 Sparkfun LCD дисплейі. Дисплей сериялық байланыспен, SPI немесе I2C арқылы жұмыс істейді. Қандай байланыс хаттамасын қолдану сізге байланысты. Мен SPI протоколын қолдандым, себебі бұл өте қарапайым. Егер сіз мен сияқты SPI қолдансаңыз, сізге келесі қосылымдар қажет:

  • VCC LCD VCC Raspberry Pi
  • GND LCD GND Raspberry Pi
  • SDI LCD MOSI (GPIO 10) Raspberry Pi
  • SDO LCD MISO (GPIO 9) Raspberry Pi
  • SCK LCD SCLK (GPIO 11) Raspberry Pi
  • CS LCD CS0 (GPIO 8) Raspberry Pi

Fritzing схемасында сіз СКД дисплейі 2X16 дисплей екенін көресіз. Себебі мен 4X20 СКД табылмадым. Дегенмен, барлық байланыстар - кейбіреулер, сондықтан бұл маңызды емес.

SODAQ Mbili Fritzing схемасы:

Біз 4 электронды компонентті SODAQ Mbili тақтасына қосамыз, сондықтан бұл электрлік схема да өте қарапайым. Біз Capactive сенсорлық сенсорды қосудан бастаймыз. Бұл сенсорға сенсор тиген кезде жоғары болады, әйтпесе LOW болады. Бұл OUT-pin-бұл Mbili тақтасының цифрлық кірісімен қосылатын сандық шығыс. Қосылымдар келесідей:

  • OUT сенсоры D5 Mbili
  • VCC сенсорлы сенсор 3.3V Mbili
  • GND сенсоры GND Mbili

Екінші компонент - Triple acces + гиро сенсоры. Мен Mbili тақтасымен байланысу үшін I2C протоколын қолданатын GY-521 тақтасын қолдандым. Назар аударыңыз, GY-521 тақтасының AD0-штыры Mbili тақтасының VCC-не қосылуы керек! Себебі Mbili тақтасында GY-521 сияқты I2C адресі бар сағат бар. AD0-істікті VCC-ге қосу арқылы біз GY-521 I2C адресін өзгертеміз. Қосылымдар келесідей:

  • VCC GY-521 3.3V Mbili
  • GND GY-521 GND Mbili
  • SCL GY-521 SCL Mbili
  • SDA GY-521 SDA Mbili
  • AD0 GY-521 3.3V Mbili

Осыдан кейін біз дыбыстық сигналды қосамыз. Мен ток болған кезде дыбыс шығаратын стандартты дыбыстық сигналды қолданамын. Бұл дыбыстық сигналды Mbili тақтасының цифрлық түйреуішіне қосуға болатынын білдіреді. Қосылымдар келесідей:

  • + Buzzer D4 Mbili
  • - Дыбыстық сигнал GND Mbili

Соңында, біз GPS модулін қосамыз. GPS модулі RX және TX арқылы байланысады. Қосылымдар келесідей:

  • VCC GPS 3.3V Mbili
  • GND GPS GND Mbili
  • TX GPS RX Mbili
  • RX GPS TX Mbili

2 -қадам: нормаланған мәліметтер базасы

Нормаланған мәліметтер базасы
Нормаланған мәліметтер базасы

Екінші қадам - нормаланған мәліметтер базасын құру. Мен ERD -ді Mysql -де жасадым. Сіз менің дерекқорым голланд тілінде жазылғанын көресіз, мен мұнда кестелерді түсіндіремін.

'Ploeg' кестесі:

Бұл үстел велоспорт клубтарына арналған үстел. Онда велоклубтың идентификаторы мен велоклубтың атауы бар.

«Реннерлер» кестесі:

Бұл кесте велосипедшілерге арналған үстел. Әрбір велосипедшіде LoRaID болады, ол сонымен қатар кестенің негізгі кілті болып табылады. Сондай -ақ олардың тегі, аты, шыққан елі және велоклуб үстеліне байланысты велоклубтың жеке куәлігі бар.

«Плацен» кестесі:

Бұл кесте Бельгияда веложарыс өткізуге болатын орындарды сақтайтын кесте. Ол қаланың атауын (бұл негізгі кілт) және қала орналасқан провинцияны қамтиды.

«Тұрғындар» кестесі:

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

'Gebeurtenissen' кестесі:

Бұл кестеде болған барлық оқиғалар сақталады. Бұл дегеніміз, велосипедші апатқа ұшыраса немесе механикалық бұзылса, оқиға осы кестеде сақталады. Кестенің негізгі кілті - бұл идентификатор. Сондай -ақ, кестеде оқиғаның датасы, позицияның ені, орналасу ұзындығы, велосипедшінің LoRaID және оқиға түрі (апат немесе механикалық бұзылу) бар.

«Үйлену тойы» кестесі:

Бұл кесте көптеген адамдармен қарым -қатынас үшін қажет кесте.

3 -қадам: LoRa модулін тіркеңіз

LoRa модулін тіркеңіз
LoRa модулін тіркеңіз

Кодты бастамас бұрын LoRa модулін LoRa шлюзінде тіркеу қажет. Мен Бельгияда LoRa модулінің байланысын реттейтін 'Proximus' телекоммуникациялық компаниясын қолдандым. Мен LoRa түйінімен жіберетін деректер AllThingsTalk сайтынан жиналады. Егер сіз деректеріңізді жинау үшін AllThingsTalk API қолданғыңыз келсе, мұнда тіркеле аласыз.

AllThingsTalk -те тіркелгеннен кейін, LoRa түйінін тіркеу қажет. Ол үшін мына қадамдарды орындауға болады немесе жоғарыдағы суретті қарауға болады.

  1. Негізгі мәзірдегі «Құрылғыларға» өтіңіз
  2. «Жаңа құрылғы» түймесін басыңыз
  3. LoRa түйінін таңдаңыз
  4. Барлық кілттерді толтырыңыз.

Енді сіз жасадыңыз! LoRa түйінімен жіберілетін барлық деректер AllThingsTalk жасаушысында пайда болады. Егер сізде тіркеуде қиындықтар туындаса, сіз әрқашан AllThingsTalk құжаттарына жүгіне аласыз.

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

Кодекс
Кодекс
Кодекс
Кодекс
Кодекс
Кодекс
Кодекс
Кодекс

Бұл жоба үшін бізге 5 кодтау тілі қажет: HTML, CSS, Java Script, Python (Flask) және Arduino тілі. Алдымен мен Arduino бағдарламасын түсіндіремін.

Arduino бағдарламасы:

Бағдарламаның басында мен кейбір жаһандық айнымалыларды ажыратамын. Сіз менің GPS -ке қосылу үшін SoftwareSerial қолданатынымды көресіз. Себебі Mbili тақтасында тек 2 сериялық порт бар. Сіз GPS -ті Serial0 -ге қосуға болады, бірақ сіз Arduino терминалын отладтау үшін пайдалана алмайсыз. Бұл менің SoftwareSerial қолданатын себебім.

Жаһандық айнымалылардан кейін мен бағдарламаны оқуды жеңілдететін кейбір функцияларды өшіремін. Олар GPS координаттарын оқиды, дыбыстық сигнал береді, LoRa арқылы мәндерді жібереді,…

Үшінші блок - орнату блогы. Бұл блок түйреуіштерді, сериялық байланысты және I2C байланысын орнататын бағдарламаның басы.

Орнату блогынан кейін негізгі бағдарлама келеді. Бұл негізгі циклдың басында сенсор сенсоры белсенді екенін тексеремін. Олай болса, мен дыбыстық сигнал шығарамын, GPS деректерін аламын және барлық мәндерді LoRa немесе Bluetooth арқылы Raspberry PI -ге жіберемін. Сенсордан кейін мен акселерометрдің мәндерін оқыдым. Формуламен X және Y осінің дәл бұрышын есептеймін. Егер бұл мәндер үлкен болса, велосипедші апатқа ұшырады деп қорытынды жасауға болады. Апат болған кезде мен қайтадан дыбыстық сигнал шығарамын, GPS деректерін аламын және барлық мәндерді LoRa немесе Bluetooth арқылы Raspberry PI -ге жіберемін.

Сіз, бәлкім, ойлайсыз: 'Сіз неге Bluetooth және LoRa қолданасыз?'. Себебі, мен қолданған LoRa модулінің лицензиясымен біраз қиындықтар болды. Бағдарлама демонстрацияларға жұмыс істеуі үшін мен Bluetooth -ды біраз уақыт қолдануға тура келді.

2. Артқы жағы:

Артқы жағы сәл күрделі. Мен Flask маршрутын фронтқа қол жетімді етіп қолданамын, мен алдыңғы беттердің кейбірін автоматты түрде жаңарту үшін socketio қолданамын, мен СКД дисплейінде хабарламаларды көрсету және Bluetooth арқылы хабарларды алу үшін GPIO түйреуіштерін қолданамын (егер қажет болса, қажет емес) LoRa) мен мен Threading және Timers көмегімен AllThinksTalk API -ні үнемі оқып, колбалық серверді іске қосамын.

Мен сондай -ақ SQL дерекқорын барлық келе жатқан апаттарды сақтау, велосипедшілердің жеке деректері мен жарыс деректерін оқу үшін қолданамын. Бұл мәліметтер базасы артқы жағына қосылған және Raspberry Pi-де жұмыс істейді. Мен дерекқормен өзара әрекеттесу үшін 'Database.py' класын қолданамын.

Fritzing схемасынан белгілі болғандай, LCD Raspberry Pi -ге SPI протоколы арқылы қосылған. Бұл жұмысты жеңілдету үшін мен 'LCD_4_20_SPI.py' сыныбын жаздым. Бұл сыныптың көмегімен сіз контрастты өзгерте аласыз, артқы жарық түсін өзгерте аласыз, экранға хабарламалар жаза аласыз,…. Егер сіз Bluetooth қолданғыңыз келсе, 'SerialRaspberry.py' класын қолдана аласыз. Бұл класс Bluetooth модулі мен Raspberry Pi арасындағы сериялық байланысты реттейді. Сізге RX -ті TX -ке қосу арқылы Raspberry Pi -ге Bluetooth модулін қосу керек және керісінше.

Фронтальды бағыттар @app.route ережесімен жазылған. Мұнда сіз дерекқорға дерекқорды енгізу немесе алу үшін өзіңіздің жеке маршрутыңызды жасай аласыз. Жолдың соңында әрқашан жауап болатынына көз жеткізіңіз. Мен әрқашан JSON нысанын алдыңғы жағына қайтарамын, тіпті қате пайда болса да. Айнымалыны айналдыра қою арқылы url -де айнымалы мәнді қолдануға болады.

Мен жарыстың апатына ұшыраған веб -сайт үшін socketio қолданамын. Raspberry Pi апатқа ұшыраған кезде, мен socketio арқылы алдыңғы жағына хабарлама шығарамын. Алдыңғы жағы, олар жаңа апат болғандықтан, дерекқорды қайта оқу керек екенін біледі.

Сіз менің кодымда LoRa байланысы пәрменге орнатылғанын көресіз. Егер сіз LoRa қолданғыңыз келсе, AllThinksTalk API -ге сұраныс жіберетін қайталанатын таймерді бастауыңыз қажет. Осы API -ден сіз белгілі бір LoRa түйіні жіберетін сенсор мәндерін (GPS, Time, Crash түрі) аласыз. Дерекқорға апат енгізу үшін осы мәндерді қолдануға болады.

3. Алдыңғы жағы:

Фронды ұш 3 тілден тұрады. Веб -сайт мәтіні үшін HTML, веб -сайтты белгілеу үшін CSS және артқы жағымен байланыс үшін JavaScript. Менде бұл жоба үшін 4 веб -сайт бар:

  • Index.html, онда барлық веложарыс табуға болады.
  • Барлық жарылыстар мен механикалық бұзылулар бар бет.
  • Дерекқорға цилиндрлерді қосуға және олардың командасын өңдеуге болатын бет.
  • Дерекқорға барлық қатысушыларымен жаңа жарысты қосуға болатын бет.

Оларды қалай құрастыру сізге байланысты. Егер сіз қаласаңыз, менің веб -сайтымыздан шабыт ала аласыз. Өкінішке орай, менің веб -сайтым голланд тілінде жасалған, бұл үшін өкінемін.

Менде әр бет үшін бөлек CSS файлы мен JavaScript файлы бар. Әрбір JavaScript файлы дерекқордан деректерді артқы жағынан алу үшін алуды пайдаланады. Сценарий мәліметтерді алған кезде html динамикалық түрде өзгереді. Апаттар мен механикалық бұзылуларды таба алатын бетте сіз барлық оқиғалар болған картаны таба аласыз. Мен бұл картаны көрсету үшін парақшаны қолдандым.

Сіз менің барлық кодты Github -да көре аласыз.

5 -қадам: Конструкцияларды жасаңыз

Құрылымдарды құрыңыз
Құрылымдарды құрыңыз
Құрылымдарды құрыңыз
Құрылымдарды құрыңыз
Құрылымдарды құрыңыз
Құрылымдарды құрыңыз

Құрылысқа кіріспес бұрын, сізде БМ немесе «Құралдар + Жабдықтар» бетіндегі барлық материалдар бар екеніне көз жеткізіңіз.

Raspberry Pi + СКД

Біз Raspberry Pi корпусынан бастаймыз. Сіз әрқашан қапты 3D-басып шығара аласыз, бұл менің алғашқы идеям болды. Бірақ менің мерзімім жақындап қалғандықтан, мен қарапайым істі шешуді шештім. Мен Raspberry Pi -ден стандартты корпусты алдым, мен СКД дисплейімдегі сымдарға арналған тесік тесіп алдым. Мұны істеу үшін сіз мына қарапайым қадамдарды орындаңыз:

  1. Корпустың қақпағына тесік жасаңыз. Мен мұны қақпақтың бүйіріндегі 7 мм бұрғымен жасадым. Сіз мұны жоғарыдағы суреттен көре аласыз.
  2. СКД дисплейінен сымдарды алыңыз және сымдардың үстінен басын сырғытыңыз.
  3. Бастың кішіреюі үшін жеңіл немесе ыстық пистолетті қолданыңыз.
  4. Басы қысылған сымдарды корпустағы тесіктен тартыңыз да, оларды қайтадан СКД -ге қосыңыз.

Енді сіз Raspberry Pi корпусына дайын болсаңыз, СКД дисплейінің корпусынан бастауға болады. Мен СКД дисплейімнің корпусын 3D басып шығардым, себебі мен бұл сілтемені интернеттен таптым. Маған тек корпустың биіктігін өзгертуге тура келді. Сіз сурет салу жақсы деп ойласаңыз, файлдарды экспорттауға және басып шығаруды бастауға болады. Егер сіз 3D-басып шығаруды білмесеңіз, fusion 360 көмегімен 3D-басып шығару туралы нұсқаулықты орындауға болады.

SODAQ MBili құрылысы

Мен SODAQ Mbili тақтасына нақты жағдай жасаған жоқпын. Мен компоненттерді конструкцияға қорапсыз орналастыру үшін плекси әйнекті қолдандым. Егер сіз де осылай жасағыңыз келсе, мына қадамдарды орындауға болады:

  1. SODAQ Mbili тақтасының димесиондары бар плексигласстан шығыңыз. Өлшемдері: 85х56 мм
  2. Плексиглассаны джигсо көмегімен кесіңіз.
  3. Электронды компоненттерді плексигласқа қойып, тесіктерді қарындашпен сызып тастаңыз.
  4. Сіз қол қойған саңылауларды және тоқтау үшін тесіктерді 3,5 мм бұрғымен бұрғылаңыз.
  5. Барлық электронды компоненттерді 3M 10 мм болттар мен гайкалармен плексигласқа орнатыңыз.
  6. Соңғы қадам - плексиглассаны Mbili тақтасының үстіне орнату. Сіз мұны тоқтата тұру арқылы жасай аласыз, бірақ мен плексиглассаны тақтаға орнату үшін 3м 50мм екі болт пен 8 3М гайкасын қолдандым.

Ұсынылған: