Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Problem - Macet që përdorin kopshtin tuaj si tualet
Zgjidhja - Kaloni shumë kohë për të krijuar një spërkatës mace me funksionin e ngarkimit automatik në youtube
Ky nuk është një hap pas hapi, por një përmbledhje e ndërtimit dhe një kodi
#Para se të thërrisniPETA - Macet janë mirë, është një spërkatës me presion të ulët ashtu si shiu, që ata mund të kalojnë para se të rrotullohet rreth tyre. Projekti nuk është për të njomur një mace, por për t'i larguar ata para se të më pjellin kopshtin me versionin e maceve të Barkers Eggs.
Hapi 1: Kërkohen artikujt kryesorë
Raspberry Pi zero & kartë SD
Kamera Raspberry Pi
Stafetë
Kohëmatësi 555…. (ose një arduino dhe një stafetë tjetër nëse kohëmatësit tuaj 555 nuk mbërrijnë)
Solenoid
Spërkatës
Një lloj strehimi për pajisjet elektronike
Gatishmëria për të goditur një gozhdë metaforike me një çekiç me sajë 6 ton
Një aparat fotografik me aq pak rezolucion sa mezi mund të shihni ujin, por prapë mund të shihni macet që vrapojnë për mbulim
Hapi 2: Sistemi
1, kamera Pi zbulon një objekt me madhësinë e një mace që lëviz për disa korniza të kamerës (e përshkruar në hapin tjetër)
2, Pi nis spërkatësin
3, Mac vrapon për mbulesë
4, Video ngarkohet automatikisht në youtube për shikimin e kënaqësisë
Hapi 3: Koha e kodimit
Duke përdorur openCV duke përdorur zbritjen e kornizës, mund të gjeni zona të kornizës që ndryshojnë me kalimin e kohës, duke përdorur disa funksione të mrekullueshme mund të kuptoni se sa të mëdha janë këto ndryshime dhe nëse ato vazhdojnë me kalimin e kohës, dhe më e rëndësishmja të zbuloni nëse ato janë të përmasave të maceve.
Ka shumë mësime mbi zbritjen e kornizës që hyjnë në detaje të shkëlqyera nëse bëni një kërkim të shpejtë në Google.
Pasqyrë se si funksionon kodi
1, Kamera vazhdon të marrë korniza dhe i krahason ato me të fundit
2, Nëse zbulohet një formë e një madhësie maceje, vihet re
3, Nëse ndryshimi i madhësisë së maceve vazhdon për rreth 4 korniza, pi përdor GPIO -në e tij për të stafetuar fuqinë për të filluar arduino
4, arduino dërgon një sinjal për të fuqizuar stafetën e dytë për 5 sekonda i cili aktivizon solenoidin
5, Solenoidi kur mundësohet i lejon ujë spërkatës
6, Ndërsa spërkatësi është aktiv kamera ndalon zbulimin dhe regjistron video
7, Video është ngarkuar në Youtube
8, Stills ngarkuar në dropbox për sistem të mirë akordimi
Shënim - Pse përfundova duke përdorur 2 stafetë dhe një arduino për të ndezur një solenoid për 5 sekonda…..
1, Pi nuk mund të fillojë dhe ndalojë solenoidin gjatë regjistrimit të videos ndërsa python scrups ndalon derisa të përfundojë videoja, kështu që nevoja që arduino (ose kohëmatësi 555) të lejojë që solenoidi të hapet dhe mbyllet pavarësisht nga skenari ndërsa video është ende duke u regjistruar.
2, Stafeta e parë dhe arduino mund të zëvendësohen me një kohëmatës 555, por që nuk erdhi në postim në kohë për këtë projekt, 555 do të kursente shumë kohë para dhe hapa.
3, pi nuk mund të shkaktojë solenoidin drejtpërdrejt pasi Pi GPIO punon në 3.3v dhe 51mA max, dhe solenoidi dëshiron 5V dhe shumë më tepër se 51mA për të shkaktuar.
4, Çdo kornizë mund të shkurtohet për të hequr zbulimin e lëvizjes në zona të padëshiruara, të tilla si një kopsht i fqinjëve. Dështimi për ta bërë këtë do të rezultojë që fqinji i dhënë të shikojë të hutuar në kopshtin tuaj, sepse spërkatësi fiket sa herë që dëshiron të hyjë në hambarin e tij.
5, me siguri kam humbur diçka të qartë dhe kam humbur kohën duke e vendosur atë kështu.
Kodi më poshtë
import cv2import numpy si np import argparse #cat kohë import import import RPi. GPIO si GPIO import os import dropbox nga picamera.array import PiRGBArray nga picamera import PiCamera #------------------ ------------------------------ Ngarko në youtube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Tlayger stafetë GPIO.output (11, E vërtetë) time.sleep (.5) GPIO.putput (11, False) print ("Marrja e videos") provoni: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Ngarko në printimin e youtube ("Ngarkimi në YouTube") os. system ('sudo youtube-upload --title = "Macja u lag {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Hiq skedarin e videos kur të bëhet os.remove ('vid {0}.h264'.format (vidname)) print ("Video u ngarkua dhe u hoq nga Pi") përveç: kalimit #-------------------- ---------------------------- Ende në dropbox ------------------- -------------------- def Rr illsToDropbox (): print ("Ngarkimi akoma në funksionin Dropbox") access_token = 'Ah ah ah, nuk e the fjalën magjike … Ah ah ah, nuk e the fjalën magjike' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") provo: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (emri i skedarit) klienti = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (emri i skedarit, imazhi) image.close () os.remove ("ToDropbox.jpg ") përveç: kalimit #------------------------------------------ ------ Zbuloni lëvizjen --------------------------------------------- def DetectMotion (): #Përcaktoni vars min_area = 400 tolerancë = 25 #ndryshim në pixel bluramount = 21 timetoforget = 0.5 kernel = np.ones ((5, 5), np.uint8) #përdorur për dilatim MotionCounter = 0 MinTargetArea = 600 # madhësia më e vogël për të zbuluar MaxTargetArea = 5000 #Madhësia më e madhe për të zbuluar tani = koha.kohë () atëherë = kohë.kohë () #initialize camera camera = PiCamera () camera.resolution = (640, 480) camera.framerate = 10 raw Capture = PiRGBArray (kamera, madhësia = (640, 480)) #ngrohja e kohës së kamerës. Gjumë (1) #Kapni kornizën e parë dhe përgatiteni për të hyrë në cv2. Grumbulloni peshë të kamerës. Kapje (rawCapture, format = "bgr") mes = rawCapture.array #Prer rajonin e padëshiruar PolyCrop = np.array (
#SiToTriggerRealProgramuesitWithBadCode
Hapi 4: Vendosja së bashku
Mblidhni pajisjet elektrike në një strehim të papërshkueshëm nga uji, vidhosini gjërat në mure dhe përdorni shumë shirit ngjitës dhe zam të nxehtë
Hapi 5: Rezultatet
Kur punon funksionon
Hapi 6: Pozitivë të rremë
Kur jo, spërkat hijet e maceve, gruan tuaj dhe vajzën tuaj.
Këshillë - Vendosni një çelës pranë derës që ndalon programin e zbulimit të lëvizjes ….. pastaj harroni ta përdorni dhe njomuni kur i vendosni koshat jashtë.
Shpresoj se kam bërë ndonjë ekspert në programim, elektronikë dhe DIY duke u ngacmuar me të gjitha gabimet që ndoshta kam bërë, dhe veçanërisht shpresoj që të keni shijuar të gjitha gabimet e mia drejtshkrimore.