Raspberry Pi lāzera drošības sistēma: 13 soļi (ar attēliem)
Raspberry Pi lāzera drošības sistēma: 13 soļi (ar attēliem)
Anonim
Image
Image
Attēls
Attēls

Paldies, ka pārbaudījāt manu pamācību. Līdz šīs pamācības beigām jūs izveidosit aveņu pi lāzera tripwire sistēmu ar e -pasta brīdinājuma funkciju, kas parādīta videoklipā.

Lai izpildītu šo pamācību, jums būs jāpārzina vispārējā shēma un lodēšana, jāzina, kā izmantot maizes dēli, un jums ir ērti lietot termināli uz pi. Palīdzēs arī pieredze darbā ar python.

Šis projekts sastāv no trim galvenajām sistēmām. Aveņu pi, lāzera triju vadu ķēde un novērošanas dators. Mūsu mērķis ir izmantot aveņu pi, lai noteiktu sprieguma izmaiņas lāzera triju vadu ķēdē un pēc tam brīdinātu novērojošo datoru e -pasta un video straumes veidā.

Sāksim.

1. darbība: noapaļojiet nepieciešamos komponentus

Lai pabeigtu šo projektu, jums būs nepieciešami šādi priekšmeti.

  1. Vismaz viens operatīvs Raspberry Pi. Šajā uzbūvē es izmantoju B modeļa Pi stila raspbian sēkšanu. Esmu pārliecināts, ka šī apmācība darbosies lieliski, ja izmantojat raspbian jessie.
  2. Ārējais barošanas avots aveņu pi. Kad tas viss būs savienots, mēs iegūsim ievērojamu strāvas stiprumu. Pirmās būvēšanas laikā es pavadīju daudz laika, lai diagnosticētu sliktu barošanas avotu kā savu problēmu avotu. Pārliecinieties, vai jums ir jaudīga jauda, kas spēj nodrošināt vismaz 2 ampērus.
  3. Lēts lāzera rādītājs. Es atradu savējo pie kases degvielas uzpildes stacijā. Ja vēlaties precīzu lāzeru, to varat atrast šeit. Uz etiķetes norādīts 630-680 nm viļņa garumam. Neatkarīgi no tā, kādu lāzeru jūs iegūsit, tiks noteiktas dažas citas konstrukcijas sastāvdaļas. Tāpēc pārliecinieties, vai tā etiķete identificē tā viļņa garumu.
  4. USB stila tīmekļa kamera. Šai tīmekļa kamerai ir regulējama pēda, kas ļauj labi novietot kameru. Es atklāju, ka tīmekļa kameras komplektācijā iekļautais USB kabelis bija pārāk īss manai lietojumprogrammai, tāpēc es atradu paplašinājumu monoprice.
  5. Kaut kāds aveņu pi sadalīšanas komplekts, lai jūs varētu viegli piekļūt procesora tapām.

    Attēls
    Attēls
    Attēls
    Attēls
  6. Maizes dēlis.
  7. Lodāmurs.
  8. Jumper vadi maizes dēļam.
  9. Ķēdes komponenti. Reiziniet ar vēlamo atvienošanas vadu skaitu.

    • Viens strādājošs vadīja
    • Viens 100 omu rezistors
    • Viens 1k rezistors
    • Viens 10k rezistors
    • Viens 200k rezistors Tiešām derēs jebkurš liels rezistors. Es to pārbaudīju ar 1M rezistoru, un tas strādāja labi. FYI 10k bija pārāk mazs.
    • Viens PNP tranzistors PN: 2N4403-APCT-ND
    • Viens fotodiods (saskaņojiet to ar lāzera viļņa garumu) PN: PDB-C142-ND

Es pievienoju shēmas plates kicad failus, bet šajā instrukcijā nepārbaudīšu plates ražošanu.

Šī projekta gaitā es atklāju, ka ir pieejami šādi papildu rīki:

  1. Sinerģijas instalēšana aveņu pi. Ja neesat pazīstams, šī programmatūra ļaus jums kontrolēt aveņu pi peli un tastatūru ar citu datoru. Tas ir jauki, ja esat līdzīgs man un jums ir ērtāk izmantot citu datoru. Arī šī ir programmatūra, kas ikvienam vajadzētu būt.
  2. USB centrmezgls. Katrai tīmekļa kamerai, kuru vēlaties izmantot, būs nepieciešams viens ports.
  3. Sprieguma mērītājs vai osciloskops, ja jums tas ir.
  4. Izmantojot MobaXterm, lai kontrolētu aveņu pi un manipulētu ar failiem, izmantojot ssh. Tas ir obligāts ikvienam, kas audzis uz logiem. Skatiet šo pamācību, lai sagatavotos tās lietošanai.

2. solis: izveidojiet Pi un sāk darboties

  • Attēls
    Attēls

    Pi ar minimālām sastāvdaļām

  • Pirms mēs varam uzņemt lāzerus, ir jāizveido vairāki programmatūras slāņi. Lai gūtu lielākās izredzes gūt panākumus, ir laba prakse sākt ar tīru šīfera lapu. Lai to izdarītu, atvienojiet nevajadzīgos priekšmetus no Pi. Tas samazinās iespēju radīt traucējumus no pievienotās ierīces.

    Pēc tam pārliecinieties, vai jūsu Raspberry Pi ir izveidots un darbojas ar jaunāko programmatūru, ievadot terminālī šādu informāciju

    sudo apt-get update

    Kad aveņu pi ir atjaunināts, ir pienācis laiks nākamajam solim

    3. darbība: izveidojiet lāzera noteikšanas ķēdi

    Novietojiet komponentus uz maizes dēļa, kā parādīts attēlā. Barojiet maizes dēli, izmantojot pi 5V izeju vai galda barošanas avotu. 1. attēlā 5V barošana ir savienota ar pozitīvo maizes dēļa sliedi attēla apakšējā kreisajā stūrī un zeme augšējā kreisajā stūrī. Šī shēma izmanto fotodiodi kā slēdzi, lai iedarbinātu tranzistoru. Tranzistors pārveido nelielas fotodiodes sprieguma izmaiņas par nedaudz digitālu signālu, ko pi var nolasīt. Visās turpmākajās darbībās punkts starp 100 omiem un signāla vadību būs vieta, kur mēs ņemam paraugu no shēmas ar pi.

    • Attēls
      Attēls

      1. attēls: shēmas maizes dēļa izkārtojuma augšdaļa

    • Attēls
      Attēls

      2. attēls: shēmas maizes dēļa izkārtojuma alternatīvais skats

    Ja vēlaties tīrāku izskatu, es pievienoju kicad failus tāfelei, kas parādīta zemāk.

    • Attēls
      Attēls

      3. attēls: sensora paneļa skats no augšas

    • Attēls
      Attēls

      4. attēls: sensora plāksne ISO

    • 4. solis: pārveidojiet lāzeru ārējai barošanai

      Turpmākajās darbībās jūs izveidosit lāzera rādītāju komplektu.

      - Izjauciet lāzera rādītāju. To darot, ievērojiet akumulatora spaiļu orientāciju attiecībā pret lāzera izstarotāju.- Pēc tam atskrūvējiet akumulatora savienojuma atsperi un īslaicīgo spiedpogu no lāzera.- Lodējiet stieples gabalu starp spailēm, kur atradās poga. Tagad, kad lāzeram tiek piegādāta barošana, tas automātiski ieslēgsies.- Tagad pielodējiet pozitīvos un negatīvos vadus pie lāzera. Ja jūs izmantojat to pašu lāzeru no detaļu saraksta, varat izmantot zemāk redzamo attēlu, lai redzētu lodēšanas punktus. Ja neesat, jums, iespējams, būs jāatrod lodēšanas punkti paši. Akumulatora orientāciju varat izmantot kā mājienu pozitīvam vai negatīvam vadam. Lai atrastu pēdējo lodēšanas punktu, varat izmantot 5 V barošanas avotu un zondēt ķēdi ar diviem testa vadiem. Kad esat izveidojis pareizo ķēdi, esat atradis lodēšanas punktu, un lāzers iedegsies.

      • Attēls
        Attēls

        Oranžais vads aizstāj īslaicīgo spiedpogu

      • Attēls
        Attēls

        Parādot pozitīvos un negatīvos potenciālos klientus

      - Pēdējais solis ir izveidot lāzera virziena stiprinājuma stabu, lai to varētu viegli noregulēt, lai tas būtu vērsts uz lāzera tvertni. Es atklāju, ka lielākā daļa lego bionicle komplektu ir lielisks avots lētai bumbiņai kontaktligzdās. Līmējiet vienu lodīšu savienojuma gabalu ar lāzera rādītāju, izmantojot superlīmi. Tagad kontaktligzdas savienojumu var uzstādīt uz jebkuras virsmas un iespraust lāzeru.

      • Attēls
        Attēls

        Bumbas locītava

      • Attēls
        Attēls

        Ligzdas savienojums

      • Attēls
        Attēls

        Bumba un kontaktligzda samontēti

      • 5. darbība: ieslēdziet lāzeru un pārbaudiet noteikšanas ķēdi

        Pievienojiet lāzeru maizes dēlim. Pozitīvais būs jāpievieno 5V un jāzemē negatīvais vads. Ja lāzers ieslēdzas lieliski, ja nē, vēlreiz pārbaudiet, vai ar multimetru ir pareizs spriegums. Ja tas joprojām nedarbojas, mēģiniet nomainīt vadus gadījumam, ja to pievienojat atpakaļ. Ja tas joprojām nedarbojas, iespējams, neesat pielodējis pareizos spilventiņus, atgriezieties pie pēdējā soļa.

        • Attēls
          Attēls

          Darba lāzers ar veselīgu staru

        Kad esat saņēmis lāzera staru, ir pienācis laiks pārbaudīt noteikšanas ķēdi. Pavērsiet lāzeru pret fotodiodi. Gaismas diodei jāizslēdz signāls, ka gaisma ir aktīva. Pavirziet roku ar staru, un gaismas diodei jāieslēdzas, signalizējot par braucienu.

        • Attēls
          Attēls

          Sijas nav salauztas un gaismas diode ir izslēgta

        • Attēls
          Attēls

          Ielauzējs pārtrauc staru, izraisot gaismas iedegšanos

        • 6. darbība: pievienojiet savu tīmekļa kameru un pārbaudiet tās funkcionalitāti

          Pievienojiet savu tīmekļa kameru USB portam. Lai straumētu video, mums ir jāiegūst utilīta mjpg-streamer. Šeit ir lieliska apmācība par to, kā to izdarīt. Kad esat pareizi instalējis-j.webp

          cd /kur instalējāt mjpg-streamer /mjpg-streamer

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

          Šī komanda izveidos straumi 8081 portā, izmantojot video0 avotu. Ja vēlaties vairākas tīmekļa kameras, vēlreiz ievadiet iepriekš minēto komandu, bet mainiet video0 uz video1 un 8081 uz 8082. Šādā veidā esmu straumējis līdz 3 tīmekļa kamerām, un pi netika pārslogots.

          Pārbaudiet, vai savienojums darbojas, atverot pārlūkprogrammu citā datorā un ievadot ip-address-of-pi: 8081, vai arī, ievadot pi, vienkārši ievadiet localhost: 8081. Ja jūs nezināt savu pi, ievadiet terminālī šādu informāciju

          ifconfig

          Ja viss darbojas, jums vajadzētu redzēt mpg-streamer mājas lapu. Noklikšķiniet uz straumes cilnes, lai redzētu savu tīmekļa kameras straumi. Zemāk ir saskarnes ekrānuzņēmums.

          • Attēls
            Attēls

            mjpg-streamer parauga izeja

          Veicot šo apmācību otro reizi, es varēju piekļūt mjpg-streamer mājaslapai, bet neredzēju straumi. Lai to labotu, es izlasīju šo ziņu (saite tagad ir salauzta), jo īpaši daļu par YUYV pikseļu formātu, ja, saskaroties ar tukšu straumi, arī to vajadzētu apskatīt.

          7. solis: pārtraukums

          Labi, tāpēc šajā brīdī mums vajadzētu izveidot savu aveņu pi. Mūsu lāzers ir pārveidots ārējai barošanai. Mūsu noteikšanas ķēde ir izveidota, un jūs esat apstiprinājis, ka tad, kad lāzera stars nokļūst fotodiodē, gaismas diode izslēdzas un, pārtraucot staru, gaismas diodei jāieslēdzas. Visbeidzot, jums vajadzētu būt savienotai ar tīmekļa kameru un funkcionāli straumēt.

          Tagad ir pienācis laiks to visu salikt kopā. Sāksim vienkārši, mēģinot noteikt lāzera staru iedarbināšanu ar programmatūru.

          Pievienojiet noteikšanas ķēdi pie maizes dēļa, kā parādīts attēlā. Noteikti pievienojiet sensora signāla vadu 25. tapai, gatavojoties nākamajam solim. Nolaižamais rezistors nav obligāts. Man bija 10k, kas apkārt, bet jebkuram rezistoram vajadzētu darīt.

          • Attēls
            Attēls

            Maizes dēļa izkārtojums ar PiCobler

          • 8. solis: uzraugiet lāzeru, izmantojot programmatūru

            Uzrakstīsim īsu programmu, lai klausītos lāzera signālu un ievietotu šo izvadi terminālī. Jūs varat lejupielādēt kodu kā pielikumu.

            Jums, iespējams, būs jāinstalē šī skripta atkarības. Python un gpio modulis. Lai tos instalētu, ievadiet

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

            Kad esat veiksmīgi instalējis python, lejupielādējiet pievienoto python skriptu ar nosaukumu read_pin.py un palaidiet

            cd /direktoriju, kurā ievietojat failu /chmod 777 read_pin.py

            Komanda chmod dos skriptam atļauju darboties. Pēc tam skrienot pārbaudi, vai viss ir kārtībā un smieklīgi

            sudo python3 read_pin.py

            Ja viss iet labi, jums vajadzētu redzēt konsoles izvadi, kā parādīts zemāk. Lai izietu no python skripta, ievadiet

            Ctrl-C

          • Attēls
            Attēls

            Pareiza konsoles izvade (parādīta, izmantojot MobaXterm)

          Paviciniet roku lāzera stara priekšā, un konsolē vajadzētu redzēt kādu izvadi, kas brīdina, ka stars ir salauzts. Jūtieties brīvi spēlēties ar skriptu, lai jūsu sistēma darbotos dažādos veidos.

          9. darbība: izveidojiet tīmekļa lapu, lai parādītu savu straumi

          Tagad mums ir jāiestata tīmekļa kameras apskates saskarne. Šim solim jums būs jāinstalē apache tīmekļa serveris. Tur ir daudz pamācību, kā to izveidot. Bet šeit ir īss saraksts ar minimālu konfigurāciju.

          sudo apt-get instalēt apache2

          pēc instalēšanas jums vajadzētu būt iespējai ierakstīt pārlūkprogrammā aveņu pi

          vietējais saimnieks

          Jums vajadzētu redzēt apache sveiciena lapu. Ja šī ir pirmā reize, kad iestatāt tīmekļa serveri, iespējams, vēlēsities konfigurēt savu pi, lai tam būtu statiska IP adrese, lai maršrutētājs vienmēr piešķirtu pareizo ip, ja veicat barošanas ciklu. Ja vēlaties apskatīt savu drošības sistēmu no citas vietas, maršrutētājā būs jāiestata portu pāradresācija. Ir pagājis kāds laiks, bet es arī domāju, ka jums būs jāpārsūta arī visas ostas, kurās ir tīmekļa kamera. Tur ir daudz pamācību, kas aptver šīs procedūras. Ņemiet vērā, ka ikviens var redzēt jūsu tīmekļa kameru, ja izvēlaties maršrutētājā iestatīt portu pāradresāciju.

          Pievienotie faili ir tīmekļa lapu paraugi, kurus varat izmantot savas vietnes iestatīšanai. Jums būs jāmaina faila paplašinājums html failā, jo viņi neļāva man to augšupielādēt. Pēc tam ievietojiet failus savā www mapē, kas izsaukta jūsu apache konfigurācijas failā. Noklusējuma atrašanās vieta ir

          cd /var /www

          Ja vēlaties mainīt vietu, kur tīmekļa serveris meklē jūsu html failus, varat rediģēt vietnēs iespējoto failu, ievadot

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

          Mainiet jebkuru/var/www/gadījumu uz vēlamo atrašanās vietu. Es ievietoju savējos/home/pi/Desktop/www/

          Kad tīmekļa mapē ir html faili, pārlūkā ievadiet localhost vai cita datora pi IP adresi. Jums vajadzētu redzēt kaut ko līdzīgu šim.

          • Attēls
            Attēls

            Ekrānuzņēmums ar pievienotajiem failiem, kas darbojas

          SALDUMS!

          10. darbība: iestatiet e -pasta brīdinājumus

          Notiek labas lietas! Ļaujiet mums izdarīt veiksmi, mēģinot nosūtīt e -pasta brīdinājumu no pi uz iepriekš noteiktu e -pasta adresi. Pievienotais python skripts izveidos jūsu e -pastu, kuru vēlaties nosūtīt, izveidos savienojumu ar e -pasta pakalpojumu sniedzēju, piemēram, gmail, un nosūtīs e -pastu, izmantojot e -pasta pakalpojumu sniedzēju. Tas tiek panākts, izmantojot python smtp pakotni. Es iesaku jums izveidot fiktīvu e -pasta adresi tieši jūsu drošības sistēmai, jo mums būs jāsamazina jūsu gmail konta drošība, lai smtp pakotne darbotos.

          Lai panāktu veiksmīgu pārraidi, jums būs jāmaina skripts vairākās vietās. Tas ir ļoti komentēts un jūsu ērtībai terminālī radīs daudz izejas.

          Lietas, kas jums būs jāmaina, būs

          • jūsu_ip = "192.168.0.177"
          • your_ip_optional_port = ": 8080"
          • port_to_camera = ": 8081"
          • send_email_username = "tavs e -pasta lietotājvārds"
          • send_email_password = "tava parole"

          jūsu_ip_opcionālais_ports, visticamāk, būs tukšs, ja vien jūsu apache serveris nedarbosies citā portā, nevis noklusējuma 80. Man jau bija serveris, kurā darbojas 80, tāpēc es iestatīju savu pi, lai tas darbotos ar 8080. Port_to_camera būs ports, kurā norādīsit savu kameru darbiniet, izmantojot mjpeg straumētāju.

          Kad esat mainījis šos mainīgos skripta sākumā, palaidiet programmu, terminālī ievadot šo.

          cd /mape, kurā ievietojat skriptu /

          sudo python3 send_mail.py

          Ja zvaigznes ir pareizi izlīdzinātas un visi mainīgie ir pareizi, jums vajadzētu saņemt e -pasta ziņojumu, kas līdzīgs zemāk redzamajam.

          • Attēls
            Attēls

            Ekrānuzņēmums ar pievienotajiem failiem, kas darbojas

          Ir daudzas vietas, kur šis skripts var neizdoties. Neuztraucieties, ja tas nedarbojas pirmo reizi. Izmantojiet skripta atkļūdošanas punktus, lai sašaurinātu problemātiskās jomas un pēc tam koncentrētos uz vienu problēmu vienlaikus.

          11. darbība: aktivizējiet e -pasta skriptu, kad tiek iedarbināts lāzers

          Tagad, kad pi var nosūtīt e -pastus, automatizēsim to, lai katru reizi, kad tiek iedarbināts lāzers, mēs saņemtu e -pastu. Lejupielādējiet pievienoto failu, kas ir read_pin.py modificēta versija, kas nodrošina jaunu funkciju pasta skripta palaišanai. Galvenā papildu rinda ir šāda

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

          Šī līnija sāks pasta sūtīšanas skriptu paralēli lāzera uztveršanas skriptam. Tas ir vēlams, jo pasta sūtīšanas skripta pabeigšana prasa dažas sekundes un bloķētu lāzera uztveršanas skripta darbību līdz e -pasta nosūtīšanai. Šī nav problēma vienas kameras sistēmai, bet, ja jums būtu vairākas kameras, jūs vēlētos noteikt lāzera izvadīšanu 1. kamerā, pat ja 2. kamera ir izraisījusi e -pasta notikumu. Mainīgais sm_pid saturēs ar šo komandu uzsāktā procesa pid. Mēs pārbaudām šo ID, ja e -pasta aktivizētājs tiek izsaukts vēlreiz, ja tas pastāv, e -pasts joprojām tiek sūtīts, tāpēc mēs ignorējam notikumu. Ja tā nav, tas, iespējams, ir jauns notikums un tiek nosūtīts e -pasts.

          Pārbaudiet, vai viss darbojas, skrienot

          cd /direktorijs, kurā ievietojat failu /

          chmod 777 read_pin_with_mail.py

          sudo python3 read_pin_with_mail.py

          Pārtraucot lāzera staru, jums vajadzētu saņemt e -pastu ar momentuzņēmumu, kas uzņemts no tīmekļa kameras.

          12. darbība: izveidojiet galveno skriptu, lai sāktu sistēmu

          Šajā brīdī projekts lielākoties ir pabeigts. Pēdējais solis ir vienkāršot sistēmas palaišanu, izmantojot pēdējo skriptu. Tas sāks visas apakšprogrammas un iestatīs tīmekļa kameru ar vienu skriptu. Pievienoto failu var palaist startēšanas laikā, rediģējot /etc/rc.local failu. Ja skriptus ievietojat citā vietā, jums ir jāmaina faila paplašinājums un, iespējams, būs jārediģē skripts, lai iekļautu pareizos ceļus.

          13. darbība. Secinājums

          Nu tā tas ir. Es ceru, ka jums patika šī pamācība! Paziņojiet man komentāros, ja jums ir kādi jautājumi vai nepieciešama sīkāka informācija par kādu jomu. Turpiniet muldēt!

          • Attēls
            Attēls

    Ieteicams: