Sisukord:
- Samm: nõutavad peamised üksused
- 2. samm: süsteem
- 3. samm: aja kodeerimine
- 4. samm: pange see kokku
- 5. samm: tulemused
- 6. samm: valepositiivsed tulemused
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Probleem - kassid kasutavad teie aeda tualettruumina
Lahendus - kulutage liiga palju aega kasside vihmuti projekteerimisele YouTube'i automaatse üleslaadimisfunktsiooniga
See pole samm -sammult, vaid ülevaade ehitusest ja mõnest koodist
#BeforeYouCallPETA - Kassidega on kõik korras, selle madalrõhulohkur on täpselt nagu vihm, et nad suudavad enne seda isegi ümber pöörata. Projekt ei ole kassi leotamine, vaid nende ärasaatmine enne, kui nad minu aeda Barkers Eggs kassi versiooniga risustavad.
Samm: nõutavad peamised üksused
Raspberry Pi null- ja SD -kaart
Raspberry Pi kaamera
Relee
Taimer 555 … (või arduino ja teine relee, kui teie 555 taimerit ei jõua kohale)
Solenoid
Sprinkler
Mingi elektroonika korpus
Valmisolek lüüa metafoorset naela 6 -tonnise kelguhaamriga
Nii väikese eraldusvõimega kaamera näeb vaevu vett, kuid näeb siiski kasse jooksmas
2. samm: süsteem
1, Pi -kaamera tuvastab kassi suuruse objekti, mis liigub mõne kaamera kaadri jaoks (näiteks järgmises etapis)
2, Pi käivitab sprinkleri
3, Kass jookseb varju
4, video laaditi automaatselt YouTube'i üles naudingu vaatamiseks
3. samm: aja kodeerimine
Kasutades openCV -d, kasutades kaadrite lahutamist, leiate kaadri alad, mis aja jooksul muutuvad, kasutades mõningaid funktsioone, saate aru saada, kui suured need muudatused on ja kas need püsivad aja jooksul, ning mis kõige tähtsam, kas need on kassi suuruses.
Kaadrite lahutamise kohta on üsna palju õpetusi, mis lähevad Google'i otsingu tegemisel väga üksikasjalikult.
Ülevaade koodi toimimisest
1, Kaamera jätkab kaadrite võtmist ja võrdleb neid viimasega
2, kui tuvastatakse kassi suurune kuju, märgitakse see üles
3, Kui kassi suuruse muutus püsib umbes 4 kaadrit, kasutab pi arduino käivitamiseks relee toiteks oma GPIO -d
4, arduino saadab signaali teise relee toiteks 5 sekundiks, mis aktiveerib solenoidi
5, elektrivoolu solenoid võimaldab sprinklerile vett
6, Kui sprinkler on aktiivne, lõpetab kaamera tuvastamise ja salvestab video
7, video laaditakse Youtube'i üles
8, Pildid on üles laaditud dropboxi peenhäälestussüsteemi jaoks
Märkus - miks ma lõpuks kasutasin solenoidi 5 sekundiks sisselülitamiseks 2 releed ja arduinot …
1, Pi ei saa video salvestamise ajal solenoidi käivitada ega peatada, kuna python skripib pause, kuni video on lõpetatud, seega on vaja arduino (või taimer 555), mis võimaldab solenoidil avada ja sulgeda sõltumata skriptist. video salvestatakse endiselt.
2, esimese relee ja arduino saab asendada 555 taimeriga, kuid see ei tulnud selle projekti jaoks õigeaegselt, 555 säästaks palju aega ja samme.
3, pi ei saa solenoidi otse käivitada, kuna Pi GPIO töötab 3.3v ja 51mA max ning solenoid soovib käivitada 5V ja palju rohkem kui 51mA.
4, iga kaadrit saab kärpida, et eemaldada liikumistuvastus soovimatutel aladel, näiteks naabrite aias. Kui te seda ei tee, toob naaber teie aeda segased pilgud, sest vihmuti lülitub välja iga kord, kui ta tahab oma kuuri minna.
5, ma jäin ilmselt millestki ilmsest ilma ja raiskasin oma aega selle seadistamiseks.
Kood allpool
import cv2import numpy kui np import argparse #kassi importimise aeg import RPi. GPIO kui GPIO importi os import importkastist picamera.array import PiRGBArray picamerast import PiCamera #------------------ ------------------------------ Laadige YouTube'i üles ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger relee GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Video tegemine") proovige: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Üleslaadimine youtube printimisse ("YouTube'i üleslaadimine") os. süsteem ('sudo youtube-upload --title = "Cat Got Wet {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Eemalda videofail, kui see on tehtud os.remove ('vid {0}.h264'.format (vidname)) print ("Video laaditi üles ja eemaldati Pi-st"), välja arvatud: pass #-------------------- ---------------------------- pildid dropboxi ------------------- -------------------- def illsToDropbox (): print ("Fotode üleslaadimine Dropboxi funktsiooni") access_token = 'Ah ah ah, sa ei öelnud võlusõna … Ah ah ah, sa ei öelnud maagilist sõna' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") try: filename =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (failinimi) klient = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (failinimi, pilt) image.close () os.remove ("ToDropbox-j.webp
#HowToTriggerRealProgrammersWithBadCode
4. samm: pange see kokku
Paigaldage elekter veekindlasse korpusesse, keerake asjad seintesse ja kasutage palju kleeplinti ja kuuma liimi
5. samm: tulemused
Kui see töötab, see töötab
6. samm: valepositiivsed tulemused
Kui see ei õnnestu, pihustab see kassi varje, teie naine ja teie tütar.
Vihje - pange ukse juurde lüliti, mis peatab liikumistuvastuse programmi ….. siis unustage seda kasutada ja kastete välja pannes leotada.
Loodan, et panin programmeerimise, elektroonika ja isetegemise eksperdid kõikide vigade tõttu, mida ma ilmselt tegin, ja eriti loodan, et teile meeldisid kõik minu õigekirjavead.
Soovitan:
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Vision Fidget Spinner püsivus: 8 sammu (piltidega)
Vision Fidget Spinner püsivus: see on fidget spinner, mis kasutab nägemise püsivuse efekti, mis on optiline illusioon, mille abil mitmed diskreetsed pildid sulanduvad inimmõistuses üheks pildiks. Teksti või graafikat saab muuta Bluetooth Low Energy lingi kaudu, kasutades a P
Ehitage kaugjuhitav sprinkler PiFace'i ja Ubidotide abil: 13 sammu
Ehitage kaugjuhitav sprinkler PiFace'i ja Ubidotite abil: see on lahe näide, mis õpetab teile, kuidas kasutada Raspberry Pi, PiFace'i ja Ubidoteid oma aia kaugelt kastmiseks. Saate oma telefoni kasutades oma taimi igast kohast kaugjuhtimiseks kaugjuhtida
Botletics LTE CAT-M/NB-IoT + GPS-kilp Arduino jaoks: 10 sammu (koos piltidega)
Botletics LTE CAT-M/NB-IoT + GPS-kilp Arduino jaoks: ülevaade /Compass, Galileo, QZSS standardid) asukoha jälgimiseks. SIM7000-seeria mooduleid on mitu
Cat Murdlar Joule varas: 6 sammu (piltidega)
Kassi sissemurdja Joule varas: Tehke kassist sissemurdja, kes " varastab " kasutatud patareidest jäid džaulid. Kui kassimurdja saab oma väikesed käpad akule, süttib LED -nina, kuni kõik džaulid on kadunud. Kui aku on tühi, suunake see ringlusse. Sa magad rahulikumalt