Kazalo:

Laserski varnostni sistem Raspberry Pi: 13 korakov (s slikami)
Laserski varnostni sistem Raspberry Pi: 13 korakov (s slikami)

Video: Laserski varnostni sistem Raspberry Pi: 13 korakov (s slikami)

Video: Laserski varnostni sistem Raspberry Pi: 13 korakov (s slikami)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Image
Image
Slika
Slika

Hvala, ker ste preverili moj pouk. Do konca tega navodila boste izdelali sistem laserske tripwire maline pi s funkcijo opozarjanja po e -pošti, ki je prikazana v videoposnetku.

Če želite dokončati ta navodila, boste morali poznati splošno vezje in spajkanje, vedeti, kako uporabljati ploščico, in biti udoben pri uporabi terminala na pi. Koristne bodo tudi izkušnje s pythonom.

Ta projekt je sestavljen iz treh glavnih sistemov. Malina pi, lasersko spojno vezje in opazovalni računalnik. Naš cilj je z malinovim pi zaznati spremembo napetosti v laserskem spojnem vezju in nato opozoriti opazovalni računalnik v obliki e -pošte in videotoka.

Začnimo.

1. korak: Zaokrožite potrebne komponente

Za dokončanje tega projekta boste potrebovali naslednje elemente.

  1. Vsaj ena delujoča Raspberry Pi. V tej zgradbi sem uporabil Pi model B v slogu B, ki je tekel malčansko. Prepričan sem, da bo ta vadba delovala v redu, če uporabljate raspbian jessie.
  2. Zunanji vir napajanja za malino pi. Ko bomo vse to priklopili, bomo potegnili znatno količino amperaže. Med prvo gradnjo sem porabil veliko časa za diagnosticiranje slabega napajanja kot vir težav. Prepričajte se, da imate močan vir napajanja vsaj 2 ampera.
  3. Najcenejši laserski kazalec. Svoje sem našel poleg blagajne na bencinski črpalki. Če želite natančen laser, ga lahko najdete tukaj. Oznaka za valovno dolžino pravi 630-680 nm. Ne glede na to, kateri laser dobite, bodo določene nekatere druge komponente v sestavi. Zato se prepričajte, da oznaka označuje njeno valovno dolžino.
  4. Spletna kamera v usb stilu. Ta spletna kamera ima nastavljivo nogo, ki vam omogoča lepo namestitev fotoaparata. Ugotovil sem, da je USB kabel, priložen spletni kameri, prekratek za mojo aplikacijo, zato sem našel razširitev za monoprice.

  5. Nekakšen prelomni komplet za malinovo pi, tako da imate enostaven dostop do nožic na procesorju.

    Slika
    Slika
    Slika
    Slika
  6. Tla.
  7. Spajkalnik.
  8. Mostične žice za ploščo.
  9. Komponente vezja. Pomnožite z želeno količino odklopnih žic.

    • Eden delovnih vodil
    • En 100 ohmski upor
    • En 1k upor
    • En 10k upor
    • En 200k upor. Res bo primeren za vsak velik upor. Testiral sem ga z 1M uporom in je dobro deloval. FYI 10k je bil premajhen.
    • En tranzistor PNP PN: 2N4403-APCT-ND
    • Ena fotodioda (ujemajte se z vašo lasersko valovno dolžino) PN: PDB-C142-ND

Priložil bom datoteke kicad za vezje, vendar ne bom podrobno opisal izdelave plošče v tem navodilu.

Med tem projektom sem ugotovil, da so pri roki naslednja neobvezna orodja:

  1. Namestitev sinergije na malinovo pi. Če niste seznanjeni, vam bo ta programska oprema omogočala upravljanje miške in tipkovnice maline pi z drugim računalnikom. To je lepo, če ste kot jaz in vam je bolj udobno na drugem računalniku. To je tudi programska oprema, ki bi jo morali imeti vsi.
  2. Usb zvezdišče. Za vsako spletno kamero, ki jo želite uporabljati, potrebujete ena vrata.
  3. Merilnik napetosti ali osciloskop, če ga imate.
  4. Uporaba MobaXterma za nadzor maline pi in upravljanje datotek prek ssh. To je treba imeti za vsakogar, ki je vzgojen na oknih. Za nastavitev uporabe si oglejte to vadnico.

2. korak: Zaženite Pi in zaženite

  • Slika
    Slika

    Pi z minimalnimi komponentami

  • Preden lahko posnamemo kateri koli laser, je treba zgraditi več plasti programske opreme. Da bi imeli najboljše možnosti za uspeh, je dobro začeti s čistimi listi. Če želite to narediti, odklopite vse nepotrebne predmete iz Pi. To bo zmanjšalo možnosti motenj povezane naprave.

    Nato se prepričajte, da je vaš Raspberry Pi nameščen z najnovejšo programsko opremo, tako da v terminal vnesete naslednje

    sudo apt-get posodobitev

    S posodobljenim malinovim pi je čas za naslednji korak

    3. korak: Ustvarite vezje za odkrivanje laserja

    Sestavite komponente na ploščo, kot je prikazano. Napajajte ploščo s pomočjo 5v izhoda pi ali namiznega napajalnika. Na sliki 1 je napajanje 5V priključeno na pozitivno letev v spodnjem levem kotu slike in na tla v zgornjem levem kotu. To vezje uporablja fotodiodo kot stikalo za sprožitev tranzistorja. Tranzistor pretvori majhno spremembo napetosti na fotodiodi v nekoliko digitalni signal, ki ga pi lahko prebere. Za vse nadaljnje korake bo točka med 100ohm in signalno lučko vzorčila vezje s pi.

    • Slika
      Slika

      Slika 1: Zgornja postavitev vezja

    • Slika
      Slika

      Slika 2: Nadomestni pogled na postavitev vezja

    Če želite čistejši videz, sem priložil datoteke kicad za ploščo, ki je prikazana spodaj.

    • Slika
      Slika

      Slika 3: Pogled od zgoraj na senzorsko ploščo

    • Slika
      Slika

      Slika 4: Senzorska plošča ISO

    • 4. korak: Spremenite laser za zunanje napajanje

      V naslednjih korakih boste izdelali sklop laserskega kazalca.

      - Razstavite laserski kazalec. Pri tem bodite pozorni na usmerjenost baterijskih sponk glede na laserski oddajnik.- Nato odlepite vzmet za priključitev akumulatorja in trenuten pritisk na gumb iz laserja.- Spajajte kos žice med priključki, kjer je bil gumb. Zdaj, ko se laser napaja, se bo samodejno vklopil.- Zdaj spajkajte pozitivne in negativne vodi do laserja. Če uporabljate isti laser s seznama delov, si lahko na spodnji sliki ogledate točke spajkanja. Če niste, boste morda morali sami poiskati spajkalne točke. Usmerjenost baterije lahko uporabite kot namig za pozitiven ali negativen vod. Če želite najti zadnjo točko spajkanja, lahko uporabite napajalnik 5V in preverite vezje z dvema preskusnima vodiloma. Ko ustvarite pravilno vezje, ste našli mesto spajkanja in laser se bo prižgal.

      • Slika
        Slika

        Oranžna žica nadomešča trenutni gumb

      • Slika
        Slika

        Prikaz pozitivnih in negativnih sledi

      - Zadnji korak je izdelava usmerjenega nosilca za laser, tako da ga je mogoče enostavno nastaviti tako, da cilja na lasersko posodo. Ugotovil sem, da je večina kompletov lego bionicle odličen vir za poceni žogico v vtičnih spojih. En del krogličnega sklepa z super lepilom prilepite na laserski kazalec. Zdaj lahko vtičnico pritrdite na katero koli površino in lasersko zaskočite.

      • Slika
        Slika

        Kroglični zglob

      • Slika
        Slika

        Vtičnica

      • Slika
        Slika

        Krogla in vtičnica sestavljena

      • 5. korak: Vklopite laser in preizkusite vezje za zaznavanje

        Laser priključite na svojo ploščo. Pozitivni bo treba priključiti na 5v in ozemljiti negativno žico. Če se laser dobro vklopi, če ne, dvakrat preverite, ali imate ustrezno napetost z multimetrom. Če še vedno ne deluje, poskusite zamenjati kable, če ste jih priklopili nazaj. Če še vedno ne deluje, morda niste spajkali na desne blazinice, se vrnite na zadnji korak.

        • Slika
          Slika

          Delovni laser z zdravim žarkom

        Ko imate laserski žarek, je čas, da preizkusite vezje za zaznavanje. Laser usmerite proti fotodiodi. LED mora izklopiti, kar pomeni, da je žarek aktiven. Z roko pomahajte skozi žarek in LED se mora vklopiti, kar signalizira potovanje.

        • Slika
          Slika

          Žarek ni pokvarjen in led je izklopljen

        • Slika
          Slika

          Vsiljivec prekine žarek, zaradi česar se prižge led

        • 6. korak: Povežite spletno kamero in preizkusite njeno funkcionalnost

          Spletno kamero priključite na vrata USB. Za pretakanje videoposnetka moramo dobiti pripomoček mjpg-streamer. Tukaj je odlična vadnica o tem, kako to narediti. Ko imate pravilno nameščen mjpg-streamer. Začnite pretakati video tako, da v terminal vnesete naslednji ukaz.

          cd /kjer ste namestili mjpg-streamer /mjpg-streamer

          ./mjpg_streamer -i "./input_uvc.so -y/dev/video0" -o "./output_http.so -w./www -p 8081"

          Ta ukaz bo nastavil tok na vratih 8081 z uporabo vira video0. Če želite več spletnih kamer, znova vnesite zgornji ukaz, vendar spremenite video0 v video1 in 8081 v 8082. Na ta način sem pretočil do 3 spletne kamere in pi ni bil preobremenjen.

          Preverite, ali povezava deluje, tako da odprete brskalnik v drugem računalniku in vnesete ip-address-of-pi: 8081 ali na pi lahko vnesete localhost: 8081. Če ne poznate svojega ip pi, vnesite naslednje v terminal

          ifconfig

          Če vse deluje, bi morali videti domačo stran mpg-streamer. Kliknite zavihek tok, če si želite ogledati tok spletne kamere. Spodaj je posnetek zaslona vmesnika.

          • Slika
            Slika

            mjpg-streamer vzorec

          Pri drugi vadbi sem lahko dostopila do domače strani mjpg-streamer, vendar nisem videla toka. Če želite to popraviti, sem prebral to objavo (povezava je zdaj prekinjena), zlasti del o formatu slikovnih pik YUYV. Če naletite na prazen tok, se morate posvetovati tudi z njim.

          7. korak: Odmor

          V redu, na tem mestu bi morali imeti malinovo pi pripravljeno. Naš laser je bil spremenjen za zunanje napajanje. Naše vezje za odkrivanje je zgrajeno in potrdili ste, da se mora LED, ko laserski žarek udari v fotodiodo, izklopiti, pri prekinitvi žarka pa se mora vklopiti. Nazadnje bi morali imeti spletno kamero priključeno in funkcionalno pretakati.

          Zdaj je čas, da vse skupaj sestavimo. Začnimo preprosto s poskusom zaznati sprožitev laserskega žarka s programsko opremo.

          Priključite vezje zaznavanja na mizo, kot je prikazano. Pripravite na naslednji korak signalni kabel senzorja na pin 25. Spustni upor ni opcijski. Okrog sem imel 10k, vendar bi moral vsak upor.

          • Slika
            Slika

            Postavitev lesene plošče s PiCoblerjem

          • 8. korak: S programsko opremo spremljajte laser

            Napišemo kratek program za poslušanje laserskega signala in objavimo ta izhod na terminalu. Kodo lahko prenesete kot prilogo.

            Verjetno boste morali namestiti odvisnosti za ta skript. Python in modul gpio. Če jih želite namestiti, vnesite

            sudo apt-get install python-rpi.gpio python3-rpi.gpio

            Ko uspešno namestite python, prenesite priloženi skript python z imenom read_pin.py in zaženite

            cd /imenik, kamor vstavite datoteko /chmod 777 read_pin.py

            Ukaz chmod bo skriptu omogočil izvajanje. Nato s tekom preizkusite, ali je vse v redu in elegantno

            sudo python3 read_pin.py

            Če je vse v redu, bi morali videti izhod konzole, kot je prikazano spodaj. Za izhod iz skripta python vnesite

            Ctrl-C

          • Slika
            Slika

            Pravilen izhod konzole (prikazano z uporabo MobaXterma)

          Zamahnite z roko pred laserskim žarkom in na konzoli bi morali videti nekaj izhodov, ki vas opozarjajo, da je žarek zlomljen. Ne pozabite se poigrati s skriptom, da bo vaš sistem deloval na različne načine.

          9. korak: Ustvarite spletno stran za prikaz svojega toka

          Zdaj moramo nastaviti vmesnik za ogled spletne kamere. Za ta korak boste morali namestiti spletni strežnik apache. Obstaja veliko vaj za nastavitev enega. Tu pa je kratek seznam z minimalno konfiguracijo.

          sudo apt-get namestite apache2

          ko bo nameščen, boste morali vnesti v svoj brskalnik na malino pi

          lokalni gostitelj

          Videti bi morali pozdravno stran apache. Če prvič nastavljate spletni strežnik, boste verjetno želeli konfigurirati svoj pi tako, da ima statični naslov ip, tako da bo usmerjevalnik vedno dodelil ustrezen ip, če izvedete cikel napajanja. Če si želite varnostni sistem ogledati z druge lokacije, boste morali na usmerjevalniku nastaviti posredovanje vrat. Minilo je že nekaj časa, vendar mislim, da boste morali posredovati tudi vsa vrata, ki imajo tudi spletno kamero. Obstaja veliko vaj, ki pokrivajo te postopke. Zavedajte se, da lahko vašo spletno kamero vidi vsak, če se odločite za nastavitev posredovanja vrat na usmerjevalniku.

          Priložene datoteke so vzorčne spletne strani, s katerimi lahko nastavite svoje spletno mesto. Razširitev datoteke html datoteke boste morali spremeniti, ker mi ne dovolijo, da jo naložim. Nato postavite datoteke v mapo www, poklicano v konfiguracijski datoteki apache. Privzeta lokacija je

          cd /var /www

          Če želite spremeniti lokacijo, kjer spletni strežnik išče vaše datoteke html, lahko uredite datoteko z omogočenimi spletnimi mesti tako, da vnesete

          sudo nano/etc/apache2/sites-enabled/000-default

          Spremenite kateri koli primerek/var/www/na želeno lokacijo. Jaz sem svojega dal v/home/pi/Desktop/www/

          Ko imate datoteke html v spletni mapi, vnesite localhost v brskalnik ali IP naslov pi iz drugega računalnika. Moral bi videti nekaj takega.

          • Slika
            Slika

            Posnetek zaslona priloženih datotek, ki delujejo

          SWEEEEET!

          10. korak: Nastavite e -poštna opozorila

          Dobre stvari se dogajajo! Poskusimo poslati e -poštno opozorilo s pi na vnaprej določen e -poštni naslov. Priloženi skript python bo ustvaril vaše e -poštno sporočilo, ki ga želite poslati, vzpostavilo povezavo z ponudnikom e -pošte, kot je gmail, in poslalo e -poštno sporočilo prek ponudnika e -pošte. To se doseže z uporabo smtp paketa python. Predlagam, da naredite lažni e -poštni naslov samo za svoj varnostni sistem, saj bomo morali zmanjšati varnost vašega računa gmail, da bo paket smtp deloval.

          Za uspešen prenos boste morali na več mestih spremeniti skript. Je močno komentiran in bo za vaše udobje proizvedel veliko izhodov na terminalu.

          Stvari, ki jih boste morali spremeniti, bodo

          • your_ip = "192.168.0.177"
          • your_ip_optional_port = ": 8080"
          • port_to_camera = ": 8081"
          • send_email_username = "vaše e -poštno uporabniško ime"
          • send_email_password = "vaše geslo"

          your_ip_optional_port bo najverjetneje prazen, razen če vaš apache strežnik deluje na vratih, ki niso privzeta 80. Na 80 sem že imel strežnik, zato sem nastavil pi, da deluje na 8080. Port_to_camera bodo vrata, za katera določite kamero zaženite z uporabo mjpeg streamerja.

          Ko spremenite te spremenljivke na začetku skripta, zaženite program tako, da v terminal vnesete naslednje.

          cd /mapo, kamor ste dali skript /

          sudo python3 send_mail.py

          Če so zvezde pravilno poravnane in so vse spremenljivke pravilne, morate prejeti e -poštno sporočilo, podobno spodnjemu.

          • Slika
            Slika

            Posnetek zaslona priloženih datotek, ki delujejo

          Obstaja veliko krajev, kjer lahko ta skript ne uspe. Ne razočarajte se, če prvič ne deluje. S točkami za odpravljanje napak v skriptu zožite problematična področja in se nato osredotočite na eno težavo naenkrat.

          11. korak: Sproži skript po e -pošti, ko se sproži laser

          Zdaj, ko lahko pi pošilja e -poštna sporočila, ga avtomatizirajmo, tako da ob vsakem sprožitvi laserja prejmemo e -poštno sporočilo. Prenesite priloženo datoteko, ki je spremenjena različica read_pin.py, ki vsebuje novo funkcijo za izvajanje poštnega skripta. Glavna dodatna vrstica je naslednja

          sm_pid = os.spawnlp (os. P_NOWAIT, "/usr/bin/python3", "python3", "/home/pi/Desktop/security/send_mail.py")

          Ta vrstica bo vzporedno s skriptom za lasersko zaznavanje sprožila skript za pošiljanje pošte. To je zaželeno, ker skript za pošiljanje pošte traja nekaj sekund in bi blokiral izvajanje skripta laserskega zaznavanja do pošiljanja e -pošte. To ni problem za en sam sistem kamer, če pa bi imeli več kamer, bi želeli zaznati laserski izklop na kameri 1, tudi če je kamera 2 sprožila e -poštni dogodek. Spremenljivka sm_pid bo vsebovala pid procesa, ki se zažene s tem ukazom. Ta ID preverimo, če se sprožilec e -pošte znova pokliče, če obstaja, e -pošta še vedno pošilja, zato dogodek prezremo. Če ne obstaja, je to verjetno nov dogodek in poslano je e -poštno sporočilo.

          Preizkusi, da vse deluje tako, da teče

          cd /imenik, kamor ste dali datoteko /

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Ko prekinete laserski žarek, bi morali prejeti e -poštno sporočilo s posnetkom iz spletne kamere.

          12. korak: Ustvarite glavni skript za zagon sistema

          Na tej točki je projekt večinoma zaključen. Zadnji korak je poenostavitev zagona sistema z zadnjim skriptom. Začel bo vse podprograme in spletno kamero nastavil z enim skriptom. Priloženo datoteko lahko zaženete ob zagonu z urejanjem datoteke /etc/rc.local. Če ste skripte postavili na drugo mesto, boste morali spremeniti razširitev datoteke in morda boste morali urediti skript tako, da bo vključeval ustrezne poti.

          13. korak: Zaključek

          No to je to. Upam, da ste uživali v tem navodilu! Sporočite mi v komentarjih, če imate kakršna koli vprašanja ali potrebujete podrobnejše informacije na katerem koli področju. Kar nadaljuj!

          • Slika
            Slika

    Priporočena: