Мазмұны:
- 1 -қадам: Жабдықты орнатыңыз
- 2 -қадам: Dropbox орнату
- 3 -қадам: Dropbox қолданба қалтасын дайындау
- 4 -қадам: Кодты бастау
- 5 -қадам: Кодты тереңірек қазу
- 6 -қадам: Dropbox параметрлік файлдарын пайдалану
- 7 -қадам: Қорытынды
Бейне: Dropbox көмегімен Raspberry Pi үй мониторингі: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл оқулық сізге Raspberry Pi, веб -камера, бірнеше электрлік компоненттер мен Dropbox есептік жазбасын қолдана отырып, қарапайым және кеңейтілетін үй мониторингі жүйесін құруды көрсетеді. Аяқталған жүйе сізге веб-камерадан суреттерді қашықтан сұрауға және қарауға мүмкіндік береді, сонымен қатар Dropbox көмегімен үйдегі температураны интернетте бақылау үшін дайын сандық температура сенсорын қолданады.
Бұл Raspberry Pi 2 моделін B алғаннан кейін ойластырған бірінші жоба болды. Менің мақсатым-интернеттен деректерді басқаруға және алуға болатын Python негізіндегі бақылау жүйесін құру. Мұны істеудің әр түрлі әдістері бар болғанымен, мен Dropbox -ты Pi мен интернет арасындағы интерфейс ретінде пайдалануды шештім, өйткені оларда қарапайым қалталардағы файлдарды жүктеуге, өзгертуге және іздеуге мүмкіндік беретін қарапайым Python API бар. код
Мен сонымен қатар менің шешімімнің жеңіл әрі қарапайым болғанын және Пи -ді қажетсіз кітапханалар мен бағдарламалармен шатастырмауды қалаймын. Бұл жобаның бағдарламалық компоненті бір ғана Python сценарийінен тұрады, яғни бақылау жүйесі жұмыс істеп тұрған кезде де сіз Pi -ді қалыпты түрде қолдануды жалғастыра аласыз.
Бұл жоба үшін сізге қажет:
Таңқурай Pi. Кез келген модель жұмыс істеуі керек, мен стартер жинағын қолдандым, бірақ сізге тек орталық қондырғы қажет болуы мүмкін
USB веб -камерасы. Мен арзан ADVENT AWC72015 сатып алдым, ол жақсы жұмыс істеді. Pi -мен жұмыс істеуге рұқсат етілген веб -камералардың осы тізімімен танысқан дұрыс болар. Назар аударыңыз, кейбіреулері қуатты USB хабын қажет етеді (онсыз жұмыс істейді)
Dropbox есептік жазбасы. Мен стандартты тегін есептік жазбамды қолданамын, себебі бұл жоба көп сақтау орнын қажет етпейді
DS18B20 цифрлық температура датчигі және 4.7k резисторы. Сенсорды осы жерден сатып алуға болады, және әр түрлі резисторлар пакетін алудың қажеті болуы мүмкін
Кейбір контурлық аксессуарлар. Мен схеманы құру процесін мүмкіндігінше жеңілдету үшін тақтаны және бірнеше секіргіш кабельдерді қолдануды ұсынамын
[Егер сіз осы өнімдердің кез келгенін сатып алуды шешсеңіз, егер сіз жоғарыда көрсетілген сілтемелерді қолдана отырып, листингке кірсеңіз, мен өте риза болар едім - осылайша мен сізге ешқандай пайдасыз пайданың аз ғана бөлігін аламын!]
1 -қадам: Жабдықты орнатыңыз
Бірінші қадам - сіздің Pi мен байланысты перифериялық құрылғылардың орнатылуын қамтамасыз ету.
Алдымен Pi -ді интернетке қосыңыз. Бұл бақылау бағдарламасы сіздің сұраныстарыңызды қабылдап, деректерді Dropbox -қа жүктей алатынын қамтамасыз ету үшін қажет. Мен сенімділікті қамтамасыз ету үшін Ethernet қосылымын қолданамын, бірақ Wi-Fi қосылымы жақсы жұмыс істеуі керек, сонымен қатар портативтіліктің жақсаруы бар. Егер сіз Wi-Fi желісін таңдасаңыз, мен Pi үшін осы USB кілтін ұсынамын.
Содан кейін, веб -камераны USB порттарының біріне қосу арқылы Pi -ге қосыңыз. Менің Advent веб -камерасының нұсқаулары Linux -пен жұмыс істейтіні туралы нақты айтпаса да, мен оны қосу және Pi -ді жүктеу ғана болды. Қосымша орнату қажет болмады. Басқа веб -камералар әр түрлі болуы мүмкін. Сіз веб -камераңызды Linux арқылы анықтағанын келесі пәрмен арқылы тексере аласыз:
ұйықтау
Жоғарыдағы суретте менің веб -камерам '0c45: 6340 Microdia' деп көрсетілген
Соңында сіз DS18B20 температура сенсорын Pi GPIO тақырыбына қосуға болады. Мен схеманы құру процесін жеңілдету үшін өзімнің тақтаны қолданамын, және мен сізге де осылай істеуді ұсынамын, әсіресе DS18B20 үш түйреуіштің екеуінің арасына 4.7k резисторды қоюды қажет етеді. Бұл сілтеме осы температура сенсорына қосылу үшін тақтаны қалай қолдануға болатынын көрсететін жақсы электр схемасын ұсынады.
Жоғарыдағы оқулықтың келесі бетінде DS18B20 деректерін оқуға қажетті қадамдар да қамтылған және оның жұмыс істеуін қалай тексеруге болатындығы көрсетілген. Бұл жобаға DS18B20 қолданбас бұрын осы орнату қадамдарын орындау маңызды. Біз сондай -ақ оқулықтан Python сценарийін бақылау бағдарламасына енгізетін боламыз, сондықтан сіз бұл кодты жылдам тексеріп алғыңыз келуі мүмкін.
DS18B20 бірегей нөміріне назар аударыңыз. Бұл «28-» санынан басталатын нөмір, оны орнату оқулығында кездестіресіз. Сіз оны температурада оқуға мүмкіндік беру үшін алдағы Python бағдарламасына енгізуіңіз керек.
2 -қадам: Dropbox орнату
Pi сіздің Dropbox -пен жұмыс жасау үшін сізге жаңа Dropbox қосымшасын орнату қажет. Бұл сізге Pi -ге Python көмегімен файлдарды онлайн басқаруды жүзеге асыру үшін қажет мәліметтерді береді. Сіз Dropbox есептік жазбасын құрдыңыз және кірдіңіз деп ойласаңыз, 'Әзірлеушілер' мәзірінің опциясын қолдана отырып, жаңа бағдарлама жасай аласыз. Маңызды қадамдардың қысқаша мазмұнын алу үшін жоғарыдағы суретті қараңыз.
'Әзірлеушілер' мәзірінде 'Менің қолданбаларымды' таңдаңыз, содан кейін 'Қолданба жасау' түймесін басыңыз. Алынған пішінді толтыру үшін 'Dropbox API' таңдаңыз, содан кейін 'Қолданба қалтасы'. Соңында, сіз Dropbox ішіндегі қолданбаға бірегей атауды таңдай аласыз. «Қолданба жасау» түймесін басыңыз.
Содан кейін сіз Dropbox ішіндегі қолданба параметрлерінің бетіне өтесіз. Мұнда тағы бір нәрсе істеу керек - өзіңізге қол жетімділік белгісін жасаңыз. Ол үшін 'OAuth 2' бөліміне төмен жылжыңыз және 'Жасалған қатынас белгісі' астында 'Жасау' түймесін басыңыз.
Бұл сізге Python көмегімен Dropbox есептік жазбаңызға кіру үшін қажет ұзын таңбалар тізімін ұсынады. Осы кіру белгісін жазыңыз, себебі оны кейінірек сіздің кодыңызда көрсетуіңіз керек. Егер таңбалауыш жоғалса, Dropbox «Әзірлеушілер» бөліміндегі «Менің қолданбаларым» түймесін басып, жаңа таңбаны жасау арқылы қолданбаның параметрлеріне оралуға болады.
Басқа параметрлерді сол күйінде қалдыруға болады. Қолданбаңыз Dropbox есептік жазбаңызда қажетті қалталарды құрғанын растау үшін қойманың басты бетіне өтіп, 'Қолданбалар' қалтасын іздеңіз. Бұл қалтада жаңа қолданба үшін таңдаған атауы бар ішкі қалта болуы керек. Бұл жерде сіздің бақылау жүйеңізге арналған барлық файлдар орналастырылады.
3 -қадам: Dropbox қолданба қалтасын дайындау
Dropbox қосымшасын орнатқаннан кейін, Pi -мен өзара әрекеттесу үшін Dropbox есептік жазбасындағы қалтаны қалай пайдалану керектігін ойластыратын кез келді. Бұл өте қарапайым түрде орындалады. Pi-де жұмыс істейтін Python сценарийі қолданба қалтасындағы бос, кеңейтімі жоқ кейбір файлдардың атауын іздеу және өзгерту үшін Dropbox API командаларының жиынын қолданады. Біз бұл файлдарды «параметрлік файлдар» деп атаймыз, себебі олардың әрқайсысы бақылау жүйесінің мінез -құлқының басқа аспектісін басқаруға мүмкіндік береді. Жоғарыдағы суретте осы жоба үшін Dropbox қолданба қалтасында болуы қажет төрт параметрлі файл көрсетілген. Оларды жасау қарапайым:
Қолданбаның қалтасы толығымен бос болғандықтан, компьютерде мәтіндік редактор бағдарламасын ашыңыз. Бұл Pi көмегімен жасалуы мүмкін болса да, мен Windows ноутбукін осы орнату кезеңінде қолдануды жеңілдеттім. Мәтіндік редактор ашылғаннан кейін (мен Windows 7 -де Блокнот қолдандым), сізге тек бос мәтіндік файлды компьютердің кез келген жерінде сақтау қажет. Біздің бірінші мысал ретінде біз тақырыптық суретте бірінші параметрді жасаймыз. Сақтау кезінде файлды 'delay = 10' деп атаңыз.
Ескерту үшін сізде қазір компьютерде 'delay = 10' атымен бос мәтіндік файл сақталуы керек. Файлда '.txt' кеңейтімі болады, ол көрінбеуі мүмкін.
Келесі қадам - бұл файлды Dropbox қолданба қалтасына жүктеу. Бұл кез келген басқа Dropbox жүктеу сияқты. Қолданбаның қалтасына өтіп, «Жүктеу» түймесін басып, 'delay = 10' файлын таңдаңыз.
Бұл файл жүктелген кезде, енді файл атауында көрінетін '.txt' кеңейтімін жою қажет. Мұны істеу үшін файлды тінтуірдің оң жақ түймесімен нұқып, «Атын өзгерту» таңдаңыз. Файл атауының '.txt' бөлігін алып тастаңыз. Сіз енді тақырып кескінінде көрсетілгендей, файлдың кеңейтімі жоқ 'delay = 10' деп аталатын файлмен қалуыңыз керек.
«Кешігу» параметрінің файлы - бақылау бағдарламасы қолданатын төрт файлдың бірі. Басқаларды жасау үшін, сіз «кешіктіру» файлын тінтуірдің оң жақ түймесімен басу арқылы көшіріп, атауын өзгерте аласыз. Сіз үш көшірме жасағаннан кейін, оларды қолданба қалтасы осы қадамның басында көрсетілгенге ұқсас болатындай етіп тақырып суретте көрсетілгендей атаңыз.
4 -қадам: Кодты бастау
Қарастырылғандай, біздің бақылау жүйесінің негізі Dropbox -пен жұмыс істейтін бір Python сценарийінен тұрады. Мониторинг бағдарламасы белсенді болуы үшін бұл сценарий сіздің Pi фонда орындалуы керек. Менің ойымша, бұл «демон» сценарийі ретінде дәл сипатталған, яғни сіз оны іске қосуға болады және оны ұмыта аласыз. Сценарий осы қадамға бекітілген, сондықтан бұл жерде кодты қайталаудың мағынасы жоқ. Енді оны жүктеуге және онымен танысуға жақсы уақыт болуы мүмкін.
Сценарийді іске қоспас бұрын, тиісті Python кітапханаларының орнатылғанына көз жеткізу маңызды. Қажет болғандар бекітілген сценарийдің жоғарғы жағында көрсетілген. Олар:
dropbox терезесін импорттау
pygame.camera импорттау немесе импорттау уақыты
Менің Pi -дегі Python қондырғысы pygame, os және time -ты қамтыды, сондықтан маған тек Dropbox орнату керек болды. Мен мұны pip көмегімен олардың қарапайым орнату нұсқауларын қолдана отырып жасадым.
Кітапханалар орнатылғаннан кейін, сіз Dropbox Access Token мен DS18B20 температура сенсорының бірегей идентификаторына сәйкес келетін сценарийдің жоғарғы екі жолын өңдеуіңіз қажет. Бұл екі түзету қажет жолдар:
APP_ACCESS_TOKEN = '**********'
THERMOMETER_FILE = '/sys/bus/w1/devices/28-**********/w1_slave'
**** -ларды дұрыс мәндермен ауыстырыңыз. Осы сәтте сіз бақылау бағдарламасын қолдануға дайынсыз! Тек секірудің орнына, кодқа жалпы шолу жасау үшін келесі қадамға өтуді ұсынамын.
МАҢЫЗДЫ: Сіз бұл сценарийді іске қосқанда, оның фондық режимде жұмыс істеуін қалайсыз, сонда а) сіз Pi қолдануды жалғастыра аласыз, және б) SSH сеансын жапқан кезде сценарий жұмысын жалғастырады. Бұл сценарийді іске қосқанда қолданатын команда:
nohup python DropCamTherm.py &
Бұл үш нәрсені орындайды: ол сценарийді іске қосады ('python DropCamTherm.py'), ол басқаруды командалық жолға бірден қайтарады, сондықтан сіз Pi ('&') пайдалануды жалғастыра аласыз және ол Python шығысын жібереді. әдетте пәрмен жолында 'nohup.out' деп аталатын файлда көрсетіледі. Мұны Linux мәтіндік редакторының көмегімен оқуға болады (менің сүйікті нано) және ол автоматты түрде сценарий жұмыс істейтін каталогта жасалады.
5 -қадам: Кодты тереңірек қазу
Сценарийді ашқанда, ол үш функциядан тұрады, сценарий іске қосылған кезде осы функцияларды орындайтын код блогынан тұрады. Функциялар Dropbox API пайдаланады және Dropbox пәрмендерін тыңдау және температураның соңғы көрсеткішін жүктеу үшін DS18B20 температура журналына қол жеткізеді. Төменде функциялар не істейтіні және олар бақылау жүйесінің жұмыс істеуі үшін қалай қолданылатыны туралы шолу берілген:
- сауал_параметрі ():
Бұл функция 3 -қадамда жасаған Dropbox параметр файлдарының мақсатын көрсетеді. Ол Dropbox қолданба қалтасында 'param =' мәтіні бар файлды іздейді. Содан кейін ол мәтінді '=' белгісінен кейін шығарады және оны бүтін санға айналдыруға тырысады. Көруге болады, бұл параметр файлдарының соңына тиісті сандарды қолмен қосу арқылы бағдарламаны басқаруға мүмкіндік береді. Келесі қадамда бағдарламаның аспектісін басқару үшін параметрлер файлдарының әрқайсысын қалай пайдалану керектігін көрсететін қысқаша нұсқаулық болады.
- set_parameter ():
Бұл функция бағдарламаға Python ішінен параметр файлының атын өзгертуге мүмкіндік береді. Ол мұны бірнеше рет жасайды, негізінен файлдарды қолмен қайта атау қажеттілігін азайтады.
- set_latest_temp ():
Бұл функция «температура» параметр файлына қосу арқылы Dropbox қолданба қалтасына соңғы температураны жүктеу үшін set_parameter () функциясын қолданады. Функция DS18B20 журналынан соңғы температураны оқиды (ол Linux -те THERMOMETER_FILE айнымалысы көрсететін жолда бар).
Бағдарламаның соңғы бөлігінде сценарий іске қосылған кезде орындалатын код бар. DS18B20 сенсоры үшін кейбір орнату қадамдарынан кейін, ол Access Token көмегімен Dropbox сеансын ашады және веб -камераны іздеу үшін pygame қолданады. Егер веб -камера табылса, ол Dropbox -тан ақпарат алу және оған әрекет ету үшін poll_parameter () қолданатын циклге кіреді.
МАҢЫЗДЫ: Сіз келесі код жолын байқайсыз:
cam = pygame.camera. Camera (cam_list [0], (864, 480))
… бұл pygame анықтайтын бірінші веб -камерадан қолдануға болатын камера интерфейсін жасауға тырысады. Веб -камераға сәйкес келетін ажыратымдылықты өзгерту қажет болуы мүмкін. Ең жақсы жұмыс істейтінін табу үшін бірнеше құндылықтармен тәжірибе жасаңыз.
6 -қадам: Dropbox параметрлік файлдарын пайдалану
Енді сізде жұмыс сценарийі болуы керек, ол 4 -қадамдағы нұсқауларды қолдана отырып, сіздің Pi -ге енгізулеріңіз үшін қолданба қалтасын бақылауды бастауға мүмкіндік береді. Алғашқы іске қосу кезінде бағдарлама қалтасында келесі параметр файлдары болуы керек:
кешігу = 10
exitprogram = 0 imagerequest = 0 температура = 0
Бағдарламамен өзара әрекеттесу параметр файлдарының атын Dropbox арқылы қолмен өзгерту арқылы жүзеге асады. Мұны істеу үшін файлдардың біреуін тінтуірдің оң жақ түймесімен нұқыңыз және «атын өзгерту» таңдаңыз. Әр параметр файлында басқа функция бар:
- кешігу:
Бұл файл бақылау бағдарламасына бақылау циклінің әр қайталануы арасында қанша секунд күту керектігін айтады. Мен бағдарламамен көп араласпайтынымды білсем, оны 60 -қа немесе 120 -ға қойдым. Пи -ден деректерді жиі сұрағым келетінін білсем, оны 10 -ға қойдым.
- шығу бағдарламасы:
Бұл 1 немесе 0 мәніне орнатылуы керек. Егер бағдарлама 1 -ге орнатылғанын анықтаса, ол сценарийді аяқтайды. Егер сіз оны 1 -ге қойсаңыз және сценарий шықса, оны резервтік көшіру үшін Pi -ге қайта кіру қажет болады. Бұл параметр жұмыс істеп тұрған кезде (мысалы, үйге оралғанда және веб -камераны қашықтан бақылағысы келмесе) бақылау бағдарламасын сәтті аяқтауға мүмкіндік береді.
- сурет сұрауы:
Бұл, мүмкін, ең маңызды параметр. Мұны 1 немесе 0 деп орнату керек. Егер бағдарлама оның 1 -ге орнатылғанын анықтаса, ол веб -камерадан суретті сұрайды және оны қолданба қалтасына жүктейді ('image.jpg' атауы бар). Егер басқа 'image.jpg' бар болса, ол оны қайта жазады.
- температура:
Бұл set_latest_temp () функциясымен орнатылған DS18B20 температурасының көрсеткіші. Бұл параметр файлын өңдеудің қажеті жоқ - оны бағдарлама автоматты түрде орнатады.
Назар аударыңыз, егер сіз 'exitprogram' немесе 'imagerequest' мәнін 1 -ге қойсаңыз, бағдарлама тиісті кодты орындамас бұрын оларды автоматты түрде 0 -ге қайтарады. Бұл ыңғайлы болу үшін. Сіз сондай -ақ кодта көптеген сыни функцияларды қоршайтын көптеген 'try' және 'қоспағанда' блоктары бар екенін байқай аласыз. Бұл бірдеңе дұрыс болмай қалса (мысалы, Dropbox кіруін болдырмайтын интернетке қосылу мәселесі) сценарий ерекшелік жасамайтынын (және осылайша жұмысын тоқтатады) қамтамасыз ету үшін.
7 -қадам: Қорытынды
Бұл жоба Raspberry Pi -ді Python мен Dropbox көмегімен басқару әдісін ұсынды. Бұл жобада қолданылатын аппараттық құрал температура сенсоры мен USB веб -камерасы болса да, Pi -ді басқарудың бұл әдісіне көптеген басқа қосымшалар бар. Шын мәнінде, GPIO арқылы қол жетімді кез келген аппараттық компоненттерді бағдарламаның ұқсас құрылымы арқылы басқаруға болады, бұл жүйені кеңейтуді өте жеңілдетеді.
Келесі қадам ретінде сіз Dropbox API -мен бірге Tkinter сияқты GUI кітапханасын қолдана аласыз, ол Dropbox -қа кірмей -ақ параметрлер файлдарын өзгертуге мүмкіндік беретін клиенттік бағдарламаны құруға мүмкіндік береді.
Бұл оқулық түсінікті болды деп үміттенемін, егер сізде сұрақтар туындаса немесе түсініктеме беруді қаласаңыз, түсініктеме беріңіз!
Ұсынылған:
IOT көмегімен Green House мониторингі: 5 қадам
IOT көмегімен Green House мониторингі: Ауыл шаруашылығына келетін болсақ, температураны бақылау & Өсімдіктердің ылғалдылығы олардың тіршілік етуінің маңызды факторы болып табылады. Қазіргі уақытта адамдар жылыжайға бекітілген термометрлерді қолданады, сондықтан фермерлер температураны өлшей алады. Алайда, бұл қолмен жұмыс жасайтын қосымша
RaspberryPi және Cloud4Rpi көмегімен DIY үйінің мониторингі: 5 қадам
RaspberryPi мен Cloud4Rpi көмегімен DIY үйінің мониторингі: Қыстың бір демалысында мен өз үйіме бардым, онда өте суық екенін білдім. Электрмен бірдеңе болды, RCD ажыратқышы оны өшірді, сонымен қатар жылыту да өшіп қалды. Мен оған сәттілікпен келдім, әйтпесе бірнеше күнде
Бөлшек фотоны көмегімен конференц -залдың мониторингі: 8 қадам (суреттермен)
Particle Photon көмегімен конференц -залдарды бақылау: Кіріспе Бұл оқулықта біз Particle Photon көмегімен конференц -зал мониторын жасаймыз. Бұл Бөлшекте Slack -пен Webhooks көмегімен бөлме бар немесе жоқ екендігі туралы нақты уақыттағы жаңартуларды алу үшін біріктірілген. PIR сенсорлары
Сымсыз діріл датчиктерінің көмегімен азаматтық инфрақұрылымдардың құрылымдық денсаулық мониторингі: 8 қадам
Сымсыз діріл датчиктерінің көмегімен азаматтық инфрақұрылымдардың құрылымдық денсаулығына мониторинг: Ескі ғимарат пен азаматтық инфрақұрылымның нашарлауы өлім мен қауіпті жағдайға әкелуі мүмкін. Бұл құрылымдардың тұрақты мониторингі міндетті болып табылады. Құрылымдық денсаулық мониторингі - бұл бағалаудың өте маңызды әдісі
ESP8266 және AskSensors IoT Cloud көмегімен өсімдіктердің мониторингі мен ескертулері: 6 қадам
ESP8266 мен AskSensors IoT Cloud көмегімен өсімдіктердің мониторингі мен ескертулері: Бұл жоба ESP8266 мен AskSensors IoT платформасын қолдана отырып, өсімдіктерді бақылаудың ақылды жүйесін құруға бағытталған. Бұл жүйе суару шешімдерінің объективті критерийлерін қамтамасыз ету үшін топырақтың ылғалдылық деңгейін бақылау үшін пайдаланылуы мүмкін. олар суаруды қамтамасыз етеді