Мазмуну:
- 1 -кадам: Аппаратты орнотуу
- 2 -кадам: Dropboxту орнотуңуз
- 3 -кадам: Dropbox колдонмо папкаңызды даярдоо
- 4 -кадам: Кодексти баштоо
- 5 -кадам: Кодду тереңирээк казуу
- 6 -кадам: Dropbox параметр файлдарын колдонуу
- 7 -кадам: Жыйынтык
Video: Dropbox менен Raspberry Pi Home Monitoring: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул окуу куралы сизге Raspberry Pi, веб -камера, бир нече электр компоненттерин жана Dropbox каттоо эсебиңизди колдонуп, жөнөкөй жана кеңейтилүүчү үй мониторинг системасын кантип түзүүнү көрсөтөт. Даяр система сизге веб камераңыздан алыстан сурам жөнөтүүгө жана көрүүгө мүмкүнчүлүк берет, ошол эле учурда Dropbox аркылуу үйүңүздүн температурасын интернеттен көзөмөлдөө үчүн санарип температура сенсорун колдонот.
Бул Raspberry Pi 2 моделин алгандан кийин ойлонгон биринчи долбоорум B. Менин максатым интернеттен маалыматтарды көзөмөлдөп жана кабыл ала турган Python негизделген мониторинг системасын түзүү болчу. Мунун ар кандай жолдору бар болсо да, мен Dropboxту Пи менен интернеттин ортосундагы интерфейс катары колдонууну чечтим, анткени алар жөнөкөй Python APIге ээ, бул сизге белгилүү бир папкалардагы файлдарды жүктөөгө, өзгөртүүгө жана издөөгө мүмкүндүк берет. код
Мен ошондой эле менин чечимимдин жеңил жана жөнөкөй болушун жана Пиимди керексиз китепканалар жана программалар менен байланыштырбоону кааладым. Бул долбоордун программалык компоненти бир Python сценарийинен турат, демек, мониторинг системасы иштеп турганда да, Пиңизди кадимкидей колдоно берсеңиз болот.
Бул долбоор үчүн сизге керек болот:
A Raspberry Pi. Кандай гана модель болбосун иштеши керек, мен баарында биригүүчү башталгыч комплект колдондум, бирок, балким, сизге борбордук блок гана керек
USB веб -камерасы. Мен жакшы иштеген AWC72015 арзан ADVENT сатып алдым. Пи менен иштөө ырасталган веб -камералардын бул тизмесине кайрылуу жакшы идея болушу мүмкүн. Белгилей кетүүчү нерсе, кээ бирлери кубаттуу USB хабын талап кылат (меники ансыз жакшы иштейт)
Dropbox эсеби. Мен стандарттуу акысыз эсебимди колдоном, анткени бул долбоорго көп орун талап кылынбайт
DS18B20 санарип температура сенсору жана 4.7k каршылыгы. Сенсорду бул жерден сатып алсаңыз болот, жана ар кандай резисторлордун пакетин басып алсаңыз болот
Кээ бир райондук курулуш аксессуарлары. Мен схеманы куруу процессин мүмкүн болушунча жеңилдетүү үчүн нан жана айрым секирүүчү кабелдерди колдонууну сунуштайм
[Эгерде сиз бул продуктулардын бирин сатып алууну чечсеңиз, эгер сиз жогорудагы шилтемелерди колдонуп тизмеге кирсеңиз, мен абдан ыраазы болом - ошентип, мен сизге эч кандай кошумча чыгымсыз кирешенин кичинекей бир бөлүгүн алам!]
1 -кадам: Аппаратты орнотуу
Биринчи кадам - Piңиздин жана ага байланышкан перифериялык түзүлүштөрдүн орнотулушун камсыз кылуу.
Биринчиден, Пиңизди интернетке туташтырыңыз. Бул мониторинг программасы сиздин суроо -талаптарыңызды кабыл алып, маалыматтарды Dropboxко жүктөй алышы үчүн керек. Мен ишенимдүүлүктү камсыз кылуу үчүн Ethernet туташуусун колдоном, бирок Wi-Fi байланышы дагы жакшы иштеши керек, ошол эле учурда жакшыртылган портативдүүлүккө ээ. Эгерде сиз Wi-Fiны тандасаңыз, мен бул USB донглун Pi үчүн сунуштайт элем.
Андан кийин, веб -камераңызды USB портторунун бирине туташтырып, Pi менен туташтырыңыз. Менин Advent веб -камерамдын көрсөтмөлөрү Linux менен иштээрин ачык айтпаса да, мен аны плагинге салып, Пиди жүктөөм керек болчу. Мындан ары орнотуунун кажети жок болчу. Башка веб -камералар ар кандай болушу мүмкүн. Төмөнкү буйрукту колдонуп, веб -камераңыз Linux тарабынан аныкталганын текшере аласыз:
lsusb
Жогорудагы сүрөттө менин веб -камерам '0c45: 6340 Microdia' деп көрсөтүлгөн
Акырында, сиз DS18B20 температура сенсорун Пионун GPIO башына туташтыра аласыз. Мен схемаларды түзүү процессин жеңилдетүү үчүн нан табакчамды колдоном жана мен дагы ушундай кылууну сунуштайт элем, айрыкча DS18B20 4.7k каршылыгын үч казыктын экөөнүн ортосуна коюуну талап кылат. Бул шилтеме бул температура сенсоруна туташуу үчүн нанды кантип колдонсо болорун көрсөткөн жакшы зымдардын диаграммасын камсыз кылат.
Жогорудагы окуу куралынын кийинки баракчасы DS18B20 маалыматын окуу үчүн керектүү кадамдарды камтыйт жана анын иштеп жатканын кантип текшерүү керектигин көрсөтөт. Бул долбоор үчүн DS18B20 колдоноордон мурун бул орнотуу кадамдарын аткаруу маанилүү. Биз ошондой эле үйрөткүчтөн Python скриптин үлгүсүн биздин мониторинг программабызга киргизебиз, андыктан сиз бул кодду тезирээк карап чыгууну каалашыңыз мүмкүн.
Сураныч, DS18B20 уникалдуу номериңизди да белгилеңиз. Бул "28-" менен башталган сан, сиз орнотуу үйрөткүчүндө кездешет. Сиз аны температурада окууга уруксат берүү үчүн алдыдагы Python программасына киргизишиңиз керек.
2 -кадам: Dropboxту орнотуңуз
Сиздин Pi Dropbox менен иштеши үчүн, сиз жаңы Dropbox колдонмосун орнотушуңуз керек. Бул сизге Python аркылуу онлайн файл башкарууну аткаруу үчүн Piңизге керектүү деталдар менен камсыз кылат. Сиз 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 жүктөөлөрүнө окшош. Жөн гана колдонмоңуздун папкасына өтүңүз жана "Жүктөө" баскычын чыкылдатыңыз жана "кечигүү = 10" файлын тандаңыз.
Бул файл жүктөлүп берилгенде, азыр файлдын атында көрүнүшү керек болгон '.txt' кеңейтүүсүн алып салышыңыз керек. Бул үчүн, файлды оң баскыч менен чыкылдатып, "Атын өзгөртүү" дегенди тандаңыз. Файл аталышынын '.txt' бөлүгүн алып салыңыз. Сиз азыр баш сүрөтүндө көрсөтүлгөндөй, эч кандай файл кеңейтүүсү жок 'delay = 10' деп аталган файл менен калышыңыз керек.
'Кечигүү' параметр файлы мониторинг программасы тарабынан колдонула турган төртөөнүн бири. Башкаларды түзүү үчүн, сиз жөн гана көчүрүп, оң баскычын чыкылдатып, "кечиктирүү" файлыңыздын атын өзгөртө аласыз. Үч көчүрмөсүн түзгөндөн кийин, аларды колдонмо папкаңыз ушул кадамдын башында көрсөтүлгөндөй бирдей болушу үчүн, аталыш сүрөтүндө көрсөтүлгөндөй атагыла.
4 -кадам: Кодексти баштоо
Талкылангандай, биздин мониторинг системабыздын өзөгү Dropbox менен иштей турган бир Python скриптинен турат. Мониторинг программасы активдүү болушу үчүн, бул скрипт сиздин Пиңиздин фонунда иштеши керек болот. Менимче, бул эң так "демон" сценарийи катары сүрөттөлөт, демек сиз аны иштетип коюп, унутуп коюңуз. Сценарий бул кадамга тиркелген, андыктан бул жерде кодду кайталоонун мааниси жок. Эми аны жүктөп алуу жана аны менен таанышуу үчүн жакшы убакыт болушу мүмкүн.
Сценарийди иштетүүдөн мурун, тиешелүү Python китепканаларын орнотушуңуз керек. Сизге керектүү нерселер тиркелген скрипттин жогору жагында көрсөтүлгөн. Алар:
импорттук кутуча
pygame.camera импорттоо импорттоо убактысы
Менин Piдеги Python орнотуусу буга чейин pygame, os жана убакытты камтыган, ошондуктан мен Dropboxту гана орнотушум керек болчу. Мен муну алардын эң жөнөкөй орнотуу көрсөтмөлөрүн пип менен кылдым.
Китепканаларыңыз орнотулгандан кийин, тиркелген скрипттин жогорку эки сабын 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нун температуралык журналына киришет. Төмөндө функциялар эмне экенин жана алар мониторинг системасынын иштеши үчүн кандайча колдонуларын карап чыгуу:
- poll_parameter ():
Бул функция биз 3 -кадамда Dropbox параметр файлдарынын максатын көрсөтөт. Ал "param =" текстин камтыган файл үчүн Dropbox колдонмо папкасын издейт. Андан кийин текстти '=' кийин чыгарат жана аны бүтүн санга айландырууга аракет кылат. Сиз бул бизге кол менен параметр файлдарынын аягына тиешелүү сандарды кошуу менен программаны башкарууга мүмкүндүк берерин көрө аласыз. Кийинки кадам программанын аспектилерин көзөмөлдөө үчүн ар бир параметр файлын кантип колдонууну көрсөткөн кыска нускаманы камтыйт.
- set_parameter ():
Бул функция программага Python ичиндеги файлдын атын өзгөртүүгө мүмкүнчүлүк берет. Ал муну бир нече жолу жасайт, негизинен файлдардын кол менен кайра аталышын азайтуу үчүн.
- set_latest_temp ():
Бул функция set_parameter () аркылуу акыркы температураны Dropbox колдонмо папкасына "температура" параметр файлына кошуу менен жүктөйт. Функция 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 -кадамдагы көрсөтмөлөрдү колдонуу менен иштегенде, сиздин пиңизге кирүүлөрүңүз үчүн колдонмо папкасына байкоо жүргүзүүнү баштоочу жумушчу скрипт болушу керек. Биринчи иштетүүдө колдонмо папкасында төмөнкү параметр файлдары болушу керек:
кечигүү = 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го кайтарат. Бул ыңгайлуулук үчүн. Сиз ошондой эле коддо көптөгөн маанилүү функцияларды курчап турган көптөгөн "аракет" жана "кошпогондо" блоктору бар экенин байкасаңыз болот. Бул бир нерсе туура эмес болуп калса (мисалы, Dropboxко кирүүгө тоскоол болгон интернет байланышы көйгөйү), скрипт өзгөчөлүктөрдү (жана демек, иштебей калат) ыргытпашын камсыз кылуу үчүн.
7 -кадам: Жыйынтык
Бул долбоор Raspberry Pi менен Python жана Dropboxту башкаруунун жолун сунуштады. Бул долбоордо колдонулган жабдыктар температура сенсору жана USB веб -камерасы болсо да, Пиди башкаруунун бул ыкмасы үчүн башка көптөгөн тиркемелер бар. Чынында, GPIO аркылуу жеткиликтүү болгон ар кандай аппараттык компоненттерди системанын кеңейтүүсүн оңой кылып, ушул сыяктуу программалардын түзүлүшү аркылуу башкарууга болот.
Кийинки кадам катары, Dropbox API менен бирге GUI китепканасын колдонсоңуз болот, ал Dropboxко кирбей туруп эле файл файлдарын өзгөртүүгө мүмкүндүк бере турган кардар программасын түзө алат.
Бул окуу куралы түшүнүктүү болду деп үмүттөнөм, эгер сизде кандайдыр бир суроолор болсо же бир нерсени тактоону кааласаңыз, комментарий калтырыңыз!
Сунушталууда:
Элестетүү BBU Dropbox: 16 кадам
Элестетүүчү BBU Dropbox: Бул кичинекей компьютер батареясынын резервдик бирдиги, пентестинг кутучасына айланды. Бул компьютердин же кандайдыр бир кичинекей тармактык жабдуунун артында орнотуу жана байкалбоо үчүн, ал эми пентестер ал аркылуу тармакка алыстан кире алат. Максат
AC Current Monitoring Data Logger: 9 Кадам (Сүрөттөр менен)
AC Current Monitoring Data Logger: Саламатсыздарбы, менин биринчи үйрөткүчүмө кош келиңиз! Күндүз мен өнөр жай жылытуучу жабдуулар менен камсыз кылган компаниянын сыноо инженери болом, түнкүсүн мен технологияга кызыккан хоббист жана DIY'erмин. Менин жумушумдун бир бөлүгү жылыткычтардын ишин текшерүүнү камтыйт, о
Android тиркемеси менен IoT Home Weather Monitoring System (Mercury Droid): 11 кадам
Android тиркемесин колдонгон IoT Home Weather Monitoring System (Mercury Droid): IntroductionMercury Droid IoTдин бир түрү (нерселердин Интернети) Камтылган системасы Mercury Droid Android Mobile Application. Кайсы & үйдөгү аба ырайынын активдүүлүгүн көзөмөлдөө. бул үйдөгү аба ырайынын мониторинг системасы абдан арзан
Temp Monitoring менен Smart Touch Switchтин ичине Broken Switch Board оңдоо: 4 кадам
Temp Monitoring менен Smart Touch Switchтин ичине сынган которуштуруу тактасын оңдоо: Мен баарыңар бул көйгөйгө туш болгондоруңарды билесиңер, жок дегенде бир жолу жашооңордо коммутатор тактасы үзгүлтүксүз колдонуу менен бузулган. көп учурда же которгучтун ичиндеги булак жылып кетет же м
DIY Google Home Raspberry Pi Zero Docking Hub'дагы Bluetooth спикери менен: 7 кадам (сүрөттөр менен)
DIY Google Home Raspberry Pi Zero Docking Hubдагы Bluetooth спикери менен: Бизде Amazon Amazon Echo Alexa боюнча үйрөтмө бар - Raspberry Pi Zero Docking Hub боюнча Alexa Voice Assistant. Бул жолу биз сизге DIY Google Үйүн кантип курууну көрсөткүбүз келет. Бул нускамада биз Google Жардамчыны кантип орнотууну жана орнотууну көрсөтөбүз