Përmbajtje:
- Hapi 1: Pjesë dhe pajisje shtesë
- Hapi 2: Përshkrimi i Pjesëve: Kapelë Sense
- Hapi 3: Montimi: Regjistruesi i Ndikimit
- Hapi 4: Montimi: Regjistruesi i Ndikimit në Dash Board of Car
- Hapi 5: Regjistruesi i Ndikimit: Puna & Aplikimet
- Hapi 6: Përshkrimi i Softuerit: Nyja e Kuqe
- Hapi 7: Bazat e Nyjes së kuqe
- Hapi 8: Nyja-e kuqe: Rrjedha _1a
- Hapi 9: Nyja e Kuqe: Flow_1b
- Hapi 10: Nyja e Kuqe: Flow_2a
- Hapi 11: Nyja e Kuqe: Flow_2b
- Hapi 12: Nyja e Kuqe; Rrjedha_3
- Hapi 13: MQTT
- Hapi 14: MQTT: Abonenti
- Hapi 15: MQTT: Redaktimi i Karakteristikave në Node-red
- Hapi 16: Kodi Python:
- Hapi 17: Kodi Përfundimtar
- Hapi 18: Monitorimi i videove të drejtpërdrejta
Video: Regjistruesi i ndikimit për automjetet: 18 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
Regjistruesi i Ndikimit është krijuar për të regjistruar ndikimin e pësuar në automjet gjatë ngasjes ose stacionimit. Ndikimet ruhen në bazën e të dhënave në formën e leximeve, si dhe video/fotografi. Pas ndikimit, përdoruesi i largët mund të verifikohet në kohë reale, dhe përdoruesi në distancë mund të shikojë videon e ruajtur ose të ketë qasje në distancë në kamerën pi dhe të shikojë ngjarjet në përputhje me rrethanat Me
Hapi 1: Pjesë dhe pajisje shtesë
(1) Raspberry Pi 3 ose më mirë: Kërkohet fuqi llogaritëse
(2) Kapelë me kuptim pi mjedër
(3) Kamera mjedër pi / Kamera USB
(4) Kartë memorie me imazhin më të fundit raspbian (Duhet të mbështesë nyjen me ngjyrë të kuqe, pothuajse çdo imazh i fundit)
(5) Furnizimi me energji elektrike të paktën 2.1 A (kam përdorur bankën e baterisë për funksionim të pavarur në makinë)
Hapi 2: Përshkrimi i Pjesëve: Kapelë Sense
Sense HAT ka një matricë LED 8 × 8 RGB, një levë me pesë butona dhe përfshin sensorët e mëposhtëm:
- Xhiroskop
- Akselerometër
- Magnetometër
- Temperatura
- Barometrike
- presion
- Lagështia
Më shumë informacion mbi punën me kapelën kuptimore mund të nxirren nga lidhjet e mëposhtme: Sense_Hat
API për kapelën kuptimore janë të strehuara në: Sense_hat_API
Kodi për programimin e sensit mbulohet në hapat e mëvonshëm. Kodi i kapelës shqisore gjithashtu mund të simulohet në një imitues të strehuar në: Sense-hat simulator
Hapi 3: Montimi: Regjistruesi i Ndikimit
- Montimi është më i thjeshtë pasi kapela e kuptimit duhet të vendoset mbi pi (bulonat e caktuar të montimit pajisen me kapelë kuptimi).
- Kamera USB ose kamera pi mund të lidhen. Në tutorial, kamera pi konsiderohet dhe në përputhje me rrethanat kodimi kryhet për të njëjtën.
- Vendosni kartën e kujtesës dhe konfiguroni kodin python dhe nyjen -kuqe (konfigurimi dhe kodi mbulohen në hapa të mëtejshëm)
Fotografia e mësipërme tregon kamerën pi të lidhur përmes kabllit me shirit të sheshtë me pi
Hapi 4: Montimi: Regjistruesi i Ndikimit në Dash Board of Car
Për montimin e regjistruesit, kam përdorur shirit të dyanshëm, përparësia është që regjistruesi mund të zhvendoset lehtësisht në pozicione të ndryshme, cilado që i përshtatet më së miri makinës tuaj.
Kamera e mëtejshme është montuar vertikalisht siç tregohet, duke përdorur të njëjtën shirit anësor të dyfishtë, Tjetra në linjë është lidhja e një burimi energjie (banka energjie 10, 000 mAH) së bashku me një lidhje të gatshme në internet
Për aplikimin MQTT kërkohet lidhje interneti (detajet për MQTT mbulohen në hapa të mëtejshëm)
Hapi 5: Regjistruesi i Ndikimit: Puna & Aplikimet
Nga kapaku i kuptimit, nxitimi dhe xhiroskopi përdoren për të kontrolluar nëse vlerat e papërpunuara janë përtej kufirit të caktuar në kod.
Përshpejtuesi: Përshpejtuesi tregon sasinë e forcës gravitacionale (forca G) që vepron në secilin nga boshtet x, y & z, nëse ndonjë bosht mat më shumë se 1G forcë, atëherë mund të zbulohet lëvizja e shpejtë. (ju lutemi vini re boshtin drejtuar poshtë do të kishte një vlerë 1g dhe duhet të merret parasysh në përputhje me rrethanat në kodin python).
Xhiroskop; Xhiroskopi përdoret për të matur lëvizjen këndore, domethënë gjatë kthesës së mprehtë sensori mund të aktivizohet (varet nga vendosja në kod), kështu që një person që rrotullon ashpër automjetin do të kapet !!
Çdo aktivizim i kufirit të caktuar shfaqet gjithashtu në matricën LED të kapelës shqisore si "!" me të kuqe për nxitim dhe jeshile për aktivizimin e xhiroskopit
Hapi 6: Përshkrimi i Softuerit: Nyja e Kuqe
Node-RED është një mjet programimi i bazuar në rrjedhë, i zhvilluar fillimisht nga Ekipi i Shërbimit të Teknologjisë në Zhvillim të IBM dhe tani një pjesë e Fondacionit JS.
Më shumë informacion mbi nyjen e kuqe mund të merret përmes lidhjes në vijim: nyja-e kuqe
Për rastin tonë ne do të përdorim nyjen -red për aktivitetet e mëposhtme
(1) Ndërveprimi me levë për të filluar funksionet e kamerës
(2) Monitorimi i ndikimeve në automjet dhe transmetimi i informacionit tek përdoruesi përfundimtar duke përdorur MQTT dhe duke pranuar më tej komandat e përdoruesve përfundimtarë përmes MQTT dhe duke filluar aplikimin e nevojshëm në pi
(3) Kryerja e disa gjërave themelore si mbyllja e pi
Hapat e mëtejshëm japin informacionin e detajuar për diagramin e rrjedhës të zbatuar në nyjen e kuqe
Ju lutemi vini re se diagramet e rrjedhës nyje-të kuqe ndërveprojnë me kodin python, prandaj pjesa e fundit mbulon aspektet e kodit python
Hapi 7: Bazat e Nyjes së kuqe
Disa hapa bazë theksohen për të filluar Nyja-e kuqe në një ndezje, por po nyja-e kuqe është shumë e thjeshtë për të filluar dhe përpunuar aplikacione.
- Nyja fillestare-e kuqe: https:// localhost: 1880.
- Fillimi i Nyjes së kuqe kur pi është i lidhur me internetin https:// adresa ip>: 1880
Hapi 8: Nyja-e kuqe: Rrjedha _1a
Flow _1a, monitoron çdo ndryshim në skedarin CSV dhe në bazë të ndryshimeve, domethënë ndikimi i zbuluar, regjistrimi i videokamerës vendoset në modalitet dhe më tej përdoruesi informohet përmes internetit se ka ndodhur një ndikim
Hapi 9: Nyja e Kuqe: Flow_1b
Në rrjedhën e lartpërmendur, regjistrimi i videos mund të fillohet në çdo moment duke shtypur thjesht levën
Hapi 10: Nyja e Kuqe: Flow_2a
Në rrjedhën e përmendur, sa herë që ndonjë fotografi ose video e re ruhet/ngarkohet në drejtori, informacioni i transmetohet përdoruesit të regjistruar përmes internetit
Hapi 11: Nyja e Kuqe: Flow_2b
Ky rrjedhë është projektuar fillimisht për përdoruesit në distancë, në mënyrë që të kontrollojë pajisjen në mënyrën e mëposhtme
(a) pajisja e fikjes
(b) të bëjë fotografi
(c) Regjistroni video
(d) filloni kodin kryesor (kodi i regjistruesit të të dhënave është kodi kryesor që llogarit ndikimin)
Hapi 12: Nyja e Kuqe; Rrjedha_3
Rrjedha është projektuar për qasje lokale, në mënyrë që të fillojë kodin kryesor ose pajisjen e fikjes
Hapi 13: MQTT
MQTT (Message Queuing Telemetry Transport) është një protokoll TCP/IP, ku botuesi dhe pajtimtari ndërveprojnë.
Në rastin tonë Pi është botues, ndërsa aplikacioni i instaluar në celularin/kompjuterin tonë do të jetë pajtimtari.
Në këtë mënyrë në gjenerimin e çdo ndikimi, informacioni i transmetohet përdoruesit nga distanca (një lidhje interneti që funksionon është e domosdoshme)
Më shumë informacion në lidhje me MQTT mund të arrihet nga lidhja e mëposhtme: MQTT
Për të filluar përdorimin e MQTT, ne duhet të regjistrohemi së pari, për mësimin që kam përdorur cloudmqtt (www.cloudmqtt.com), ekziston një plan falas nën "mace e lezetshme", kjo është e gjitha.
Pas regjistrimit krijoni një shembull thoni "pi", pas së cilës do të merrnit detajet e mëposhtme
- Emri i serverit
- port
- emrin e përdoruesit
- fjalëkalimin
Sa më sipër kërkohet gjatë abonimit përmes celularit/pc
Për aplikimin tim, unë kam përdorur aplikacionin MQTT nga google play store (versioni Android)
Hapi 14: MQTT: Abonenti
Aplikacioni MQTT që funksionon në celular (versioni Android)
Ndikimi i zbuluar në pi transmetohet përsëri
Hapi 15: MQTT: Redaktimi i Karakteristikave në Node-red
Me nyje të kuqe pas zgjedhjes së nyjes MQTT, "Emri i serverit" dhe "tema" për t'u përmendur. Kjo duhet të jetë e njëjtë në fund të pajtimtarit
Hapi 16: Kodi Python:
Funksionaliteti i kodit është sipas diagramit të bashkangjitur
Hapi 17: Kodi Përfundimtar
Kodi i pitonit është i bashkangjitur
Në mënyrë që shkrimi ynë python të funksionojë nga terminali, ne duhet t'i bëjmë ato të ekzekutueshëm si chmod +x datalogger.py, sesa më tej pjesa e sipërme e kodit duhet të përmbajë rreshtin #shebang të mëposhtëm #! /usr/bin/python3 (kjo kërkohet në mënyrë që të ekzekutohen funksionet nga nyja-e kuqe)
#!/usr/bin/python3 // shebang linefrom sense_hat import SenseHat nga dataetime import dataetime nga csv import author import RPi. GPIO si GPIO nga koha e importimit të gjumit
sens = SenseHat ()
importo csv
timestamp = datetime.now ()
vonesa = 5 // vonesa është përcaktuar për të ruajtur të dhënat në të dhëna.csv skedari i kuq = (255, 0, 0) jeshil = (0, 255, 0) i verdhë = (255, 255, 0)
#GPIO.setmode (GPIO. BCM)
#GPIO.setup (17, GPIO. OUT)
def get_sense_impact ():
sense_impact = acc = sense.get_accelerometer_raw () sense_impact.append (acc ["x"]) sense_impact.append (acc ["y"]) sense_impact.append (acc ["z"])
gyro = sense.get_gyroscope_raw ()
sense_impact.append (gyro ["x"]) sense_impact.append (gyro ["y"]) sense_impact.append (gyro ["z"])
ktheje sensin_impakt
def ndikim (): // funksioni për të zbuluar ndikimin #GPIO.setmode (GPIO. BCM) #GPIO.setup (4, GPIO. OUT) nxitimi = sense.get_accelerometer_raw () x = nxitimi ['x'] y = nxitimi ['y'] z = nxitim ['z'] x = abs (x) y = abs (y) z = abs (z)
gyro = sense.get_gyroscope_raw ()
gyrox = gyro ["x"] gyroy = gyro ["y"] gyroz = gyro ["z"]
gyrox = i rrumbullakët (gyrox, 2)
gyroy = e rrumbullakët (gyroy, 2) gyroz = e rrumbullakët (gyroz, 2)
ndikim = merr_sense_impact ()
nëse x> 1.5 ose y> 1.5 ose z> 1.5: // vlerat vendosen pasi përsëritja në rrugën aktuale mund të ndryshohet në përputhje me rrethanat për lloje të ndryshme dhe aftësi drejtimi me të hapur ('ndikimi.csv', 'w', newline = ' ') si f: data_writer = shkrimtar (f) data_writer.writerow ([' 'acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO. output (4, GPIO. HIGH) sense.clear () sense.show_letter ("!", red) data_writer.writerow (ndikim)
elif gyrox> 1.5 ose gyroy> 1.5 ose gyroz> 1.5: // vlerat vendosen duke parë shpejtësinë me të cilën inicimet fillojnë me hapje ('ndikimi.csv', 'w', newline = '') si f: data_writer = shkrimtar (f) data_writer.writerow (['acc x', 'acc y', 'acc z', 'gyro x', 'gyro y', 'gyro z']) #GPIO.putput (4, GPIO HIGH) sense.clear () sense.show_letter ("!", Green) data_writer.writerow (ndikim)
tjeter:
# GPIO.putput (4, GPIO. LOW) sense.clear ()
def get_sense_data (): // funksioni për të regjistruar dhe ruajtur vlerat nga sensori sens_data =
sense_data.append (sense.get_temperature ()) sense_data.append (sense.get_pressure ()) sense_data.append (sense.get_h lagështia ())
Orientimi = sensi. merrni_orientimin ()
sense_data.append (orientimi ["yaw"]) sense_data.append (orientimi ["pitch"]) sense_data.append (orientimi ["roll"])
acc = sense.get_accelerometer_raw ()
sense_data.append (acc ["x"]) sense_data.append (acc ["y"]) sense_data.append (acc ["z"]) mag = sense.get_compass_raw () sense_data.append (mag ["x"]) sense_data.append (mag ["y"]) sense_data.append (mag ["z"])
gyro = sense.get_gyroscope_raw ()
sense_data.append (gyro ["x"]) sense_data.append (gyro ["y"]) sense_data.append (gyro ["z"])
sense_data.append (dataetime.now ())
ktheni sensin_data
me hapur ('data.csv', 'w', newline = '') si f:
data_writer = shkrimtar (f)
data_writer.writerow (['' temp ',' pres ',' hum ',' yaw ',' pitch ',' roll ',' acc x ',' acc y ',' acc z ',' mag x ',' mag y ',' mag z ',' gyro x ',' gyro y ',' gyro z ',' dataetime '])
ndërsa e vërtetë:
printoni (merrni_sense_data ()) për ngjarjen në kuptimin.stick.get_events (): # Kontrolloni nëse xhojstiku është shtypur nëse event.action == "shtypet": # Kontrolloni drejtimin nëse event.direction == "up": # sense.shfaq_letër ("U") # Shigjeta për përshpejtim = ndjenjë. merrni_accelerometer_raw () x = nxitim ['x'] y = nxitim ['y'] z = nxitim ['z'] x = raund (x, 0) y = rrumbullak (y, 0) z = rrumbullak (z, 0)
# Përditësoni rrotullimin e ekranit në varësi të rrugës nëse x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) tjetër: sense.set_rotation (0) sense.clear () t = sense.get_temperature () t = round (t, 1) message = "T:" + str (t) sense.show_message (mesazh, tekst_ngjyrë = e kuqe, scroll_speed = 0.09) elif event.direction == "down": acceleration = sense.get_accelerometer_raw () x = nxitim ['x'] y = nxitim ['y'] z = nxitim ['z'] x = raund (x, 0) y = raund (y, 0) z = raund (z, 0)
# Përditësoni rrotullimin e ekranit në varësi të rrugës nëse x == -1: sense.set_rotation (90) elif y == 1: sense.set_rotation (270) elif y == -1: sense.set_rotation (180) tjetër: sense.set_rotation (0) # sense.show_letter ("D") # Shigjetë shigjeta poshtë. e qartë () h = sense.get_humidity () h = raund (h, 1) mesazh = "H:" + str (h) sense.show_message (mesazh, tekst_ngjyrë = jeshile, scroll_speed = 0.09) p = sense.get_pressure () p = raund (p, 1) mesazh = "P:" + str (p) sense.show_message (mesazh, tekst_ngjyr = e verdhë, shpejtësia e lëvizjes = 0.09)
# elif event.direction == "majtas":
#përshpejtim = ndjenjë.get_accelerometer_raw () #x = nxitim ['x'] #y = nxitim ['y'] #z = nxitim ['z'] #x = raund (x, 0) #y = raund (y, 0) #z = raund (z, 0)
#Përditësoni rrotullimin e ekranit në varësi të shtegut // Nuk përdoret dhe kontrollohet nga nyja -e kuqe #nëse x == -1: sense.set_rotation (90) #elif y == 1: sense.set_rotation (270) #elif y == -1: sense.set_rotation (180) #else: sense.set_rotation (0) # sense.show_letter ("L") # Shigjeta e majtë # elif event.direction == "right": # sense.show_letter ("K") # Shigjeta e djathtë # elif event.direction == "mes": # sense.clear ()
ndikim ()
të dhëna = merrni_data_sense_data ()
dt = data [-1] - shenja kohore nëse dt.sekonda> vonesë: data_writer.writerow (të dhëna) timestamp = datetime.now ()
Hapi 18: Monitorimi i videove të drejtpërdrejta
Regjistruesi i Ndikimit mund të përdoret gjithashtu për të monitoruar video të drejtpërdrejta, pasi video mund të fillohet në çdo kohë kudo përmes MQTT
ne do të përdorim VLC player për të transmetuar video, si parazgjedhje në raspbian-in e fundit VLC është para-instaluar, përndryshe instaloni vlc si më poshtë
Më shumë informacion në lidhje me shikimin e rrymës së rrjetit mund të arrihet përmes rrjedhës së Rrjetit VLC
Faleminderit qe lexuat !!
Ka shumë më tepër që regjistruesi i ndikimit mund të bëjë..
Kujdes nga hapësira tjetër për analizën e fushës magnetike në kryerjen e hartave të pengesave
Recommended:
DIY GPS Regjistruesi i të Dhënave për Ju Disku tjetër/Shteg Hiking: 11 Hapa (me fotografi)
DIY GPS Regjistruesi i të Dhënave për Ju Makina/Rrugëtimi i ardhshëm: Ky është një regjistrues GPS i të dhënave që mund ta përdorni për qëllime të shumta, thoni nëse doni të regjistroni makinën tuaj të gjatë që keni marrë gjatë fundjavës për të parë ngjyrat e vjeshtës. ose keni një shteg të preferuar që vizitoni gjatë vjeshtës çdo vit dhe ju
Sensori/Matësi i Temperaturës së Motorit Me Sonda Wireless për Automjetet Klasike: 7 Hapa
Sensori/Matësi i Temperaturës së Motorit Me Sonda Wireless për Automjete Klasike: E bëra këtë sondë për Çipitakun tim të bukur. Një makinë fiat 126 me një motor 2 cilindrash të ftohur me ajër nën kapakun e pasmë. Çipitak nuk ka një matës të temperaturës që tregon se sa i nxehtë është motori, kështu që mendova se një sensor do të ishte i dobishëm. Gjithashtu doja që sensori të ishte me tela
Forca e ndikimit në thembrën dhe këmbën e vrapuesit gjatë vrapimit: 6 hapa
Forca e ndikimit në thembrën dhe këmbën e një vrapuesi gjatë vrapimit: Për projektin tim doja të testoja sasinë e forcës ndaj së cilës ekspozohet thembra dhe këmba e një vrapuesi, dhe nëse këpucët e reja të vrapimit vërtet zvogëlojnë forcën. Përshpejtuesi është një pajisje që zbulon nxitimin në akset X, Y dhe Z. Përshpejtimi është i matshëm
Regjistruesi i të dhënave pa tel GPS për jetën e egër: 9 hapa (me fotografi)
Wireless GPS Data Logger for Wildlife: Në këtë udhëzues, ne do t'ju tregojmë se si të bëni një regjistrues të vogël dhe të lirë të të dhënave me bazë Arduino GPS, me aftësi pa tel! Përdorimi i telemetrisë për të studiuar lëvizjen e kafshëve të egra mund të jetë një mjet shumë i rëndësishëm për biologët. Mund t'ju tregojë se ku një
Sistemi i Ndikimit të kokës Edison: 6 hapa
Sistemi i Ndikimit të Kokës Edison: Qëllimi i këtij projekti ishte krijimi i një pajisjeje që monitoron intensitetin e goditjeve në kokë dhe zbulon ndikimet që kanë një mundësi të madhe për të prodhuar një tronditje. Në futbollin e të rinjve, kjo pajisje mjekësore mund të jetë një shtesë “ set sysh & rdq