Мазмуну:
- Жабдуулар
- 1 -кадам: Аппараттык жабдууну чогултуу
- 2 -кадам: Сиздин Пи Интернетке туташканын текшериңиз
- 3 -кадам: Камераны орнотуу
- 4 -кадам: Колбаны орнотуңуз
- 5 -кадам: Форма классын түзүңүз
- 6 -кадам: Колба шаблонун түзүү
- 7 -кадам: Калыпты түзүңүз
- 8 -кадам: Камера операторунун классын түзүү
- 9 -кадам: Жазуу модулун түзүңүз
- 10 -кадам: Серверди баштаңыз
- 11 -кадам: СЫНАП КӨРҮҢҮЗ
Video: Raspberry Pi коопсуздук камерасы: 11 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Бул Raspberry Pi аркылуу IoT, кыймылдын активдештирилген коопсуздук камерасын кантип түзүү керектиги боюнча этап -этабы менен. Сиз колдонуучунун камеранын сезгичтигин жана жазуу убактысын жөнгө салууга, жазууну кол менен баштоого/токтотууга жана/же жергиликтүү түрдө сактала турган сүрөткө тартууга мүмкүнчүлүк берген колбада веб -серверди жана форманы кантип түзүүнү үйрөнөсүз.
Жабдуулар
- Raspberry Pi 3
- Pi камерасы
- PIR кыймыл сенсору
- SD карта
- Кубат булагы
1 -кадам: Аппараттык жабдууну чогултуу
Пи өчүрүлгөндө, микро-SD картаны Пи-ге салыңыз. Камера модулунун лентасын кабелди Piдеги камера модулунун портуна салыңыз. Андан кийин, PRI кыймыл детекторунун 3 казыгын (VCC, OUT жана GND деп белгиленген) Pi GPIO казыктарына туташтырыңыз. VCCди 5.5V кубатына, GNDди жерге жана OUTту Пи 11ге туташтырыңыз.
2 -кадам: Сиздин Пи Интернетке туташканын текшериңиз
Эми, Пиди кубат булагына туташтырып күйгүзүңүз жана ping буйругу менен интернетке туташканыңызды ырастаңыз. Эгерде сиз Пиңизди интернетке кантип туташтырууну билбесеңиз, бул жерди басыңыз.
sudo ping www.google.com
Эгер ийгиликтүү болсоңуз, анда маалымат Google тарабынан кабыл алынганын көрүшүңүз керек.
Кошумча катары, сиз IP дарегиңизди көрүү үчүн ifconfig колдоно аласыз.
sudo ifconfig
3 -кадам: Камераны орнотуу
Конфигурация интерфейсин ачуу үчүн төмөнкү буйрукту колдонуңуз жана камераны "интерфейс параметрлеринде" иштетиңиз.
sudo raspi-config
Кайра жүктөөдөн кийин, камераңыздын туура туташкандыгын текшерүү үчүн анын статусун көрсөтө аласыз.
vcgencmd get_camera
Акырында, пикамера модулун орнотуңуз.
пикамераны орнотуу
4 -кадам: Колбаны орнотуңуз
Python үчүн колбаны жана идишке эс алуучу модулду орнотуңуз:
sudo apt-get python-dev python-pip орнотуу
python -m пип колбаны колбаса -тынч
Андан кийин, формаларды түзүү үчүн колдонулган питон колбасынын модулун орнотобуз.
pip flask-wtf орнотуу
5 -кадам: Форма классын түзүңүз
Бардык файлдарыңызды сактоо үчүн iotProject деп аталган каталог түзүңүз.
sudo mkdir iotProject
"CamControl.py" аттуу питон файлын түзүңүз.
Sudo нано camControl.py
Бул файлда биз өзүбүздүн класс классты түзөбүз, ал бизге текст кутучалары бар веб -форма түзүүгө жана колдонуучунун камеранын жөндөөлөрүн өзгөртүүгө, жазууну кол менен баштоого/токтотууга жана видеого тартууга мүмкүнчүлүк берүүчү менюсун ачат.
flask_wtf импорттон FlaskFormfrom wtforms.validators импорттоо DataRequired
class camFrame (FlaskForm):
videoDuration = IntegerField ('Жазуу убактысы (секундада)')
сезимталдык = IntegerField ('Кыймылдын сезгичтиги (диапазону 2500-10000) nСанар канчалык жогору болсо, камера ошончолук сезимтал эмес', валидаторлор = [validators. NumberRange (min = 2500, max = 10000, билдирүү = 'Маанисинен тышкары')])
options = SelectField ('Options', choices = [('none', 'Action'), ('rec', 'Start Recording'), ('stop', 'Stop Stop'), ('сүрөт', 'Сүрөткө тартуу')])
тапшыруу = SubmitField ('Жөнөтүү')
6 -кадам: Колба шаблонун түзүү
Колдонуучу интерфейсин түзүү үчүн, сиз жаңы эле түзгөн форманы колдонгон Flask шаблонун иштеп чыгуу керек. Бул файл htmlде жазылат жана шаблондор деп аталган папкада сакталат, алар сиздин формаңыз менен бир каталогдо болушу керек.
Калыптар папкаңыздын ичинде index.html деп аталган файлды түзүңүз. Бул файлдын ичинде жогоруда көрсөтүлгөн кодду кайталаңыз.
7 -кадам: Калыпты түзүңүз
Эми шаблонду көрсөтүүчү файлды түзүүгө убакыт келди. AppCam.py аттуу файлды түзүңүз (мындан ары шаблондор папкасында жок экениңизди текшериңиз). Калыпта колдонулган ар кандай динамикалык мазмун render_template () чакыруусунда аталган аргумент катары колдонулушу керек.
import camControlfrom колбадан импорттоо Колбасы, render_template, суроо, flask_restful импорттун жообу Resource, Api, reqparse
app = Flask (_ name_)
app.config ['SECRET_KEY'] = '13542' api = Api (app)
талдоочу = reqparse. RequestParser ()
parser.add_argument ('dur', type = int, help = 'Кыймыл аныкталганда видеонун узактыгы') parser.add_argument ('sens', type = int, help = 'Жазууну иштетүү үчүн керектүү кыймылдын деңгээли') талдоочу.add_argument ('opt', type = str, help = 'Кол менен видео жаздыруу же сүрөт тартуу')
класс жаңыртуусу (булак):
Wtforms def post үчүн посттор (өзүнчө): args = parser.parse_args () #rc.input (args ['dur'], args ['sens'], args ['opt']) #текст файлына жазуу параллелдүү иштеп жаткан камера менен сүйлөшөт cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile.write (args ['dur'] + '\ n') #wr Dur dur cameraSettingsFile.write (args ['sens'] + '\ n') #write sens cameraSettingsFile.write (args ['opt'] + '\ n') #write opt cameraSettingsFile.close () return {'dur': args ['dur'], 'sens': args ['сезим'], 'тандоо': args ['тандоо']}
@app.route ('/', ыкмалар = ['Get', 'POST'])
def index (): "" "Контроллердин башкы бети" "" form = camControl.camFrame () #бул форма, эгер request.method == 'POST': print (request.form) args = [i for i in request in.form.items ()] #rc.input (int (args [0] [1]), int (args [1] [1]), args [2] [1]) cameraSettingsFile = open ("cameraSettings.txt ", 'w') cameraSettingsFile.write (args [0] [1] + '\ n') #write dur cameraSettingsFile.write (args [1] [1] + '\ n') #wriss sensor cameraSettingsFile.write (args [2] [1] + '\ n') #write opt cameraSettingsFile.close () imageDictionary = {"файл аты": "image.jpg"} кайтуу render_template ('index.html', форма = форма, image = imageDictionary))
api.add_resource (Жаңыртуу, '/update/')
эгер _name_ == '_main_':
app.run (host = '0.0.0.0', port = 80, debug = True, threaded = True)
8 -кадам: Камера операторунун классын түзүү
Эми биз camOperator.py аттуу файлды түзгүбүз келет. Анда биз буга чейин жеткиликтүү PiCamera функцияларын колдонуп, камераны иштетүү ыкмалары менен камера классын түзөбүз. Биз бул объекттин мисалын кийинки кадамда колдонобуз, анда камеранын жана кыймыл сенсорунун функционалдуулугун бириктиребиз.
Бул класста аныкталган методдор, колдонуучу киргизбесе, бул өзгөрмөлөр үчүн демейки маанилерди орнотуу менен бирге, колдонуучу камсыз кылган сезгичтигин жана узактыгын киргизүү аркылуу коопсуздук камерасындагы "жазуу" орнотууларын өзгөртөт.
RPi. GPIO импорттоо GPIO импорттоо убактысын импорттоо datetime импорттук датадан
GPIO.setmode (GPIO. BOARD)
GPIO.setup (11, GPIO. IN)
аныктоо = 0
класс камера Оператор:
def _init _ (өзүн):
#конструктор self.cam = picamera. PiCamera () self.data = self.dur = 10 self.sens = 2500 self.opt = "none"
def рекорд (өзүн, дур):
#Рекорддор көзөмөлдөөчү тарабынан коюлган videoName = str (datetime.now ()) videoName = videoName.replace (':', ') videoName = videoName.replace ('. ',') Self.cam.start_recording ('/home/pi/iotProject/videos/' + videoName + '.h264') time.sleep (dur) self.cam.stop_recording ()
def операциясы (өзүн, дур, сезим):
#Камеранын негизги иштеши, адамдын жанында экенин текшерет, эгерде адам жетишерлик көп отурса, биз жазууну баштайбыз! глобалдык аныктоо i = GPIO.input (11) if i == 0: #Кыймыл сенсорунан чыгаруу LOW аныкталса = 0 убакыт. кыймыл аныкталды " +str (аныктоо)) if detect> = sens*10: self.record (dur) print (" RECORDED ") detect = 0 time.sleep (0.1) detect += 1
9 -кадам: Жазуу модулун түзүңүз
Бул долбоор үчүн керектүү акыркы программа rec.py аттуу файлга жазылат. Бул файл камерага качан жазуу керек, канча убакыт жазуу керек жана качан/качан сүрөткө тартуу керектигин айтат. Ал муну 5 -кадамдан баштап тексттик файлга жазылган колдонуучу маалыматын дайыма текшерүү жана окуу аркылуу жасайт. Эгерде файл жаңыртылган болсо, ал ошого жараша сезгичтигин жана узактыгын баалайт, андан кийин жазуу же сүрөт тартылган болсо, ал мазмунду сактайт. pi, же.h264 же-j.webp
'' 'Колбанын серверине параллелдүү түрдө иштейт, сервердин формалары тарабынан коюлган башкаруу өзгөрмөлөрүн окуйт. Формалар тапшырылгандан кийин серверди башкаруунун өзгөрмөлөрү өзүнчө файлга коюлат. Rec модулу бул өзгөрмөлөрдү окуйт жана алардын негизинде камераны жаңыртат. '' 'импорттоо убактысынан camOperator импорттоо датасы импорттук убактысы
rc = camOperator.cameraOperator ()
cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile.close () #бул жерде, негизги цикл иштей электе файлдын ичиндегилерди жок кылуу үчүн, жазуу режиминде ачабыз жана жабабыз.
#Үзгүлтүксүз цикл, адамдардын жанында экенин көрөт. Эгер алар болсо, анда
#камера жазууну баштайт. Бул функция бул камераны көзөмөлдөгөн #server колбасына параллель иштейт. recordInProcess = Туура, жалган болсо: #текшерүү/жазуу эгер ((жазууInProcess == False): rc.operation (rc.dur, rc.sens) #камеранын жөндөөлөрүн сервердин негизинде өзгөртүү камераSettingsFile = open ("cameraSettings.txt", 'r') settingNum = 0 cameraSettingsFile.readlines ичинде орнотуу үчүн (): if settingNum == 0: #Duration өзгөртүү rc.dur = int (жөндөө) elif settingNum == 1: #Сезгичтик rc.sens = int (жөндөө)) elif settingNum == 2: #Action change rc.opt = setting settingNum += 1 cameraSettingsFile.close ()
#аракетти аткарыңыз
# if rc.opt == "none": # Continue if rc.opt == "rec / n" and recordingInProcess == False: print ("Controllerден жазуу буйругун иштетүү") # Учурдагы убакытка жараша видео үчүн аталышты жаратуу videoName = "snappedVid _"+str (datetime.now ()) videoName = videoName.replace (':', ') videoName = videoName.replace ('. ',') rc.cam.start_recording ('/home/pi/iotProject /videos/' + videoName +'.h264 ') recordInProcess = True elif rc.opt == "stop / n" and recordInProcess == True: print ("Controller'ден жазуу буйругун токтотуу") rc.cam.stop_recording () recordInProcess = Жалган cameraSettingsFile = ачык ("cameraSettings.txt", 'w') cameraSettingsFile.write (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile. write ("none / n") rc.opt = "none / n" elif rc.opt == "pic / n" and recordInProcess == False: print ("Controllerден pic командасын алуу") pictureName = "snappedPic_ "+str (datetime.now ()) pictureName = pictureName.replace (':', ') pictureName = pictureName.replace ('. ',') rc.cam.st art_preview () time.sleep (5) rc.cam.capture ('pictures/' + pictureName + '.jpg') rc.cam.stop_preview () cameraSettingsFile = open ("cameraSettings.txt", 'w') cameraSettingsFile. write (str (rc.dur)+'\ n') cameraSettingsFile.write (str (rc.sens)+'\ n') cameraSettingsFile.write ("none / n") rc.opt = "none / n"
10 -кадам: Серверди баштаңыз
SSHди piге киргизиңиз жана серверди жогоруда көрсөтүлгөн буйрук сабын колдонуп баштаңыз.
11 -кадам: СЫНАП КӨРҮҢҮЗ
IP дарегин колдонуп веб -баракчага кириңиз жана камераны алыстан башкара билиңиз!
Сунушталууда:
Raven Pi коопсуздук камерасы: 7 кадам (сүрөттөр менен)
Raven Pi Коопсуздук Камерасы: Бул пластикалык кузгун практикалык, бирок коркунучтуу коопсуздук камерасы Raven Pi катары жаңы жашоодон ырахат алып жатат. Анын курсагында Raspberry Pi жана мойнуна Pi камерасы орнотулган, кыймыл аныкталган сайын HD видеого тартат. Ошол эле учурда анын
ESP32 CAM менен иштөөнү баштоо - Wifi аркылуу ESP CAMди колдонуу менен Streaming Video - ESP32 коопсуздук камерасы долбоору: 8 кадам
ESP32 CAM менен иштөөнү баштоо | Wifi аркылуу ESP CAMди колдонуу менен Streaming Video | ESP32 Коопсуздук Камерасы Долбоору: Бүгүн биз бул жаңы ESP32 CAM тактасын кантип колдонууну жана аны коддоп, коопсуздук камерасы катары колдонууну жана wifi аркылуу агымдык видеону алууну үйрөнөбүз
DIY Professional Open Source Night Vision коопсуздук камерасы: 10 кадам (сүрөттөр менен)
DIY Professional Open Source Night Vision Коопсуздук Камерасы: Бул жаңы үйрөткүчтө биз Raspberry Pi ачык булак видео байкоочу камерасын түзөбүз. Ооба, биз бул жерде түнкү көрүнүштү жана кыймылды аныктоого жөндөмдүү чыныгы ачык булактан тышкаркы байкоочу камера жөнүндө айтып жатабыз. баары биздин Jeed менен байланышкан
WoodThing IOT коопсуздук камерасы: 8 кадам (сүрөттөр менен)
WoodThing IOT коопсуздук камерасы: Бул Raspberry PIге негизделген күчтүү IP камера. Бул motionEyeOS иштейт, андыктан бир нече алыскы IP камераларды башкаруу үчүн, ошондой эле төрт кошумча арзан USB веб камерасын тиркөө үчүн колдонсо болот. Өзгөчөлүктөрү: USB менен иштейт, кыймылдын сезгичтери менен
VHS Library Pi коопсуздук камерасы: 3 кадам (сүрөттөр менен)
VHS Library Pi Коопсуздук Камерасы: Бул VHS Видео Китепканасынын эски иши, ал азыр Raspberry Pi коопсуздук камерасы үчүн эң сонун үйдү камсыздайт. Корпуста Pi Zero бар жана камера жасалма китептин омурткасын карайт. Бул эски дүйнөнүн көрүнүшү менен чынында эле жөнөкөй курулуш