Мазмұны:

IoT қос температуралық деректер сервері: 12 қадам (суреттермен)
IoT қос температуралық деректер сервері: 12 қадам (суреттермен)

Бейне: IoT қос температуралық деректер сервері: 12 қадам (суреттермен)

Бейне: IoT қос температуралық деректер сервері: 12 қадам (суреттермен)
Бейне: Marlin Firmware 2.0.x Explained 2024, Маусым
Anonim
IoT қос температуралы деректер сервері
IoT қос температуралы деректер сервері

Бұл менің нұсқаулықты жазудағы бірінші әрекетім, сондықтан маған жеңіл болыңыз! Егер сіз мұны жаман емес деп ойласаңыз, маған бірінші рет авторлар байқауында дауыс беріңіз.

Бұл менің жылыжайдағы 2 температураны қашықтан бақылауға арналған Lock-Down жобасы, біреуі еден деңгейінде, екіншісі шатырдың астында. Мен бұрын Raspberry Pi -ді (RPi) қолданғаныммен, бұл жоба мен қолданбаған бірнеше элементтерді қамтыды, мен ескірген немесе дұрыс емес бірнеше оқулықтарды таптым. Бұл жол бойында алынған Pi Zero & 2 DS18B20+ One Wire цифрлық температура сенсорларынан жұмыс істейтін қос қашықтан басқарылатын температура мониторын жасауға арналған менің білім жинағым.

Мен білген нәрселер:

  • Деректерді Интернет заттарының бір бөлігі ретінде құрылғыдан алуға болады.
  • 1-сымды интерфейс 2 құрылғымен
  • Мәліметтер
  • JSON деректері
  • UFW брандмауэрін орнату
  • Деректерді көрсету үшін Freeboard.io көмегімен
  • Бағдарламаны автоматты түрде іске қосу үшін RPi теңшеу

Бұл тақырыптардың барлығын қарапайым іздеу арқылы табуға болатын үлкен көлемдегі деректер бар, бірақ бұл жекелеген элементтерді қалай біріктіру керектігі түсініксіз.

Жабдықтар

  • Сізге Raspberry Pi қажет болады (монитор, тінтуір мен пернетақтасы бар, бірақ дайын жобаны іске қоспағанда)
  • Жұмыс істейтін интернет байланысы.
  • Micro USB қосқышы бар PSU
  • DS18B20+ One Wire цифрлық температура сенсорларының 2. Мен Amazon ең арзан деп таптым
  • 4K7 Ом резисторы немесе мен 2 10К Ом 2 резисторды қолдандым.
  • Кішкене нан тақтасы және орындықта сынауға арналған бірнеше ер/әйел сымдары
  • Соңғы жинауға арналған таспаның кішкене бөлігі
  • Дәнекерлеуге және сымды тазартуға арналған қарапайым құралдар.
  • Дайын дизайнды орналастыруға арналған шағын пластикалық қорап

1 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал
Аппараттық құрал
Аппараттық құрал

Менде Raspberry Pi Zero W (сымсыз) бар еді, бірақ бұл қарапайым жоба кез келген RPI -де жақсы жұмыс істейтініне сенімдімін. Менің шеберханамдағы электронды биттер қорапшасында басқалары болды (нан тақтасы, сым, PSU және т. Бұл қарапайым су өткізбейтін корпусқа және 3 м кабельге орнатылған қарапайым DS18B20 чиптері. Кабельден 3 сым бар:

  • Қызыл - қуат - 3.3 винтке қосыңыз 1
  • Қара - қайтару - жерге тұйықтауышқа 6 қосыңыз
  • Сары - деректер - GPIO4 түйреуішіне 7 қосыңыз

Сенсорлар 1-сымды интерфейсті қолданады және оларды қосу және деректерді алу өте оңай болды. Интернетте 1 құрылғыны қосуға арналған бірнеше беттер бар, бірақ 2 (немесе одан да көп) қосуда өте аз.

Орындықта тестілеу үшін схема тақтаның көмегімен жиналды. Мен тапқан оқулықтарда 4K7 резисторы деректер желісін бұрмалау үшін қолданылатыны айтылды, бірақ мен оны таба алмадым, сондықтан параллель 2* 10К қолданылды және ол жақсы жұмыс істеді. Интернетте RPi схемаларын жинау үшін тақтаны қолдануға арналған көптеген ресурстар бар, сондықтан мен оларды мұнда қайталамаймын.

Диаграмма схеманың көмегімен жасалды

2 -қадам: Raspberry Pi OS бағдарламалық жасақтамасын орнату

Raspberry Pi OS бағдарламалық жасақтамасын орнату
Raspberry Pi OS бағдарламалық жасақтамасын орнату
Raspberry Pi OS бағдарламалық жасақтамасын орнату
Raspberry Pi OS бағдарламалық жасақтамасын орнату
Raspberry Pi OS бағдарламалық жасақтамасын орнату
Raspberry Pi OS бағдарламалық жасақтамасын орнату

Мен осы RPi -ді бұрын қолданғандықтан, мен ОЖ -ны таза орнатудан бастауды шештім, SD картаны қайта пішімдедім және NOOBS -тың таза нұсқасын орнаттым. Содан кейін мен Raspian жұмыс үстелінің толық нұсқасын орнаттым (жоғарғы нұсқа), себебі бұл қарапайым нұсқада жоқ PIP & GIT орнатады. Жоба үшін маған графикалық пайдаланушы интерфейсі қажет болмаса да, бұл барлық опцияларды орнатудың қарапайым әдісі және 16 гб SD картасында бос орын жоқ.

Мен WI-FI қатынасын орнаттым, содан кейін толық орнатуды, сосын жаңартулар мен жаңартуларды қосатын шеберді іске қостым. GUI-ді қолдана отырып, мен GUI-ді пайдалану командалық жол интерфейсіне (CLI) қарағанда қарапайым болғандықтан RPI-ді қажет болған жағдайда орнатамын. Мен мәзірден конфигурация терезесіне кірдім, содан кейін:

  • Жүйе қойындысында мен құпия сөзді өзгерттім, CLI -ге жүктеуді қойдым және Авто кіру белгісі қойылмады
  • Интерфейстер қойындысында мен 1 сымды қостым
  • Жарайды түймесін басып, қайта жүктелді

Егер сізге кез келген уақытта GUI -ге қайта оралу қажет болса, CLI -де startx теріңіз

startx

3 -қадам: Қашықтан қатынауға рұқсат ету үшін деректерді реттеу

Қашықтан қатынауға рұқсат ету үшін деректерді реттеу
Қашықтан қатынауға рұқсат ету үшін деректерді реттеу
Қашықтан қатынауға рұқсат ету үшін деректерді реттеу
Қашықтан қатынауға рұқсат ету үшін деректерді реттеу
Қашықтан қатынауға рұқсат ету үшін деректерді реттеу
Қашықтан қатынауға рұқсат ету үшін деректерді реттеу

Мен Dataplicity сайтында https://blog.dataplicity.com/how-to-build-a-raspb… мекен-жайынан өте пайдалы блог жазбасын таптым және оның бірнеше бөлігін қолдандым. Блогтың 3 -бөлімінде RPi -ге қашықтан қатынау үшін Dataplicity параметрін орнату сипатталған. Мен бұрын Dataplicity қолданған емеспін, бірақ айта кету керек, мен оны қашықтан қатынаудың өте қарапайым құралы ретінде ұсынамын. Скриншоттар (жоғарыдағы блогта) сәл ескіргенімен, принцип жақсы.

Компьютерде Dataplicity.com сайтына өтіп, тіркелгі жасаңыз (браузерді GUI -де қолдануға болады, бірақ RPi Zero -да баяу). Содан кейін «жаңа құрылғы қосу» түймесін басыңыз және қалқымалы терезеде код жолы көрсетіледі. Содан кейін RPi бойынша CLI -ге өтіп, мәтін жолын теріңіз. Егер бәрі жақсы болса, Dataplicity логотипі көрсетіледі және орнату бағдарламасы іске қосылады.

Компьютерге оралғанда, жаңа құрылғы Dataplicity веб -сайтында пайда болуы керек. Құрылғыны нұқыңыз және сіз RPi үшін терминал экранын көресіз.

Мұнда бірнеше нәрсені ескеру қажет:

  • Жүйеге кіру үшін «su pi» теріңіз (супер пайдаланушыға кіру үшін) және сізге құпия сөз сұралады (бұрын орнатылған)
  • Сіз Wormhole мүмкіндігін қосуыңыз керек (кейінірек қолданылады)
  • Деректерді кейін көрсету үшін сізге Wormhole мекенжайы қажет болады (қажет болған жағдайда көшіру үшін тінтуірдің оң жақ түймешігімен басыңыз)

Сіз бұл қашықтан қатынауды келесі қадамдардың барлығында пайдалана аласыз және деректерді, бағдарламаларды және т.

4 -қадам: сенсорларды тексеріңіз

Енді келесі барлық бөлімдер үшін Dataplicity RPI -ге қашықтан қатынауды пайдалануға болады.

Егер қазір бәрі жақсы қосылса, сіз DS18B20 құрылғысынан қайтарылған температураны көре аласыз. Мен Pi Hut оқулығымен жұмыс жасадым, бірақ мұның көпшілігі қажет емес. Егер сіз толық ақпарат алғыңыз келсе, оларды мына жерден табуға болады:

Маңызды биттер - бұл құрылғылар каталогына өту және 2 түрлі сенсордың көрсетілгеніне көз жеткізу.

cd/sys/bus/w1/құрылғылар/

Бұл 28 мен автобус шинасынан басталатын 2 құрылғыны көрсетуі керек. Менікі шоулар:

28-011453ebfdaa 28-0114543d5daa w1_bus_master1

Бұл 2 жеке нөмір маңызды және кейін қажет болады! Содан кейін сенсор каталогтарының біріне ауысыңыз:

cd 28-011453ebfdaa

(мысалы), содан кейін сенсордан мәнді оқу үшін

мысық w1_slave

Мәтіннің 2 жолы болуы керек:

53 01 4b 46 7f ff 0c 10 2d: crc = 2d ИӘ

53 01 4b 46 7f ff 0c 10 2d t = 21187

ИӘ сенсордың дұрыс оқылғанын көрсетеді және 21187 температурасы Цельсий бойынша 21,187 көрсетеді (1000 -ға бөлу) Екінші сенсорды тексеру үшін қайталаңыз. Егер екеуі де жақсы оқыса, Python3 көмегімен деректерді оқуға көшуге болады.

Мен Интернеттен тапқан келесі кодты көшірдім және бейімдедім, бірақ қайдан екенін есімде жоқ. Егер бұл сіздің кодыңызға ұқсаса, мен кешірім сұраймын, себебі ешқандай плагиат ойластырылмаған; маған хабарлаңыз, мен сіздің жұмысыңызды мойындаймын.

Жобалар деп аталатын каталог жасаңыз және сол каталогқа өзгертіңіз.

mkdir ~/жобалар

cd ~/жобалар

Бұл каталогта thermo-test.py деп аталатын файлды құру және өңдеу үшін мәтіндік редакторды (нано) қолданыңыз

sudo nano thermo-test.py

Бұл редакторды ашуы керек еді және сіз Dataplicity қолданған кезде төмендегі кодты (thermo-test.py) көшіріп, редакторға қоюға болады. Құрылғының 2 атауын (28- ден бастап) жоғарыда аталғандарға өзгерту қажет болады. Барлығы дұрыс болған кезде, аяқтау үшін ctrl+X пернелер тіркесімін, сақтау үшін Y пернесін басыңыз және бұрыннан бар атауды қолданыңыз. Егер сіз GUI пайдалануды қаласаңыз, онда Тонни де солай жасайды.

Тест бағдарламасын іске қосу үшін:

sudo python3 thermo-test.py

Барлығы жақсы, бұл файлды python 3 көмегімен орындап, экранға 2 температураны әр 10 секунд сайын басып шығаруы керек. Мұзды суға 1 сенсорды қою немесе фенмен ақырын жылыту арқылы бәрі жақсы екенін тексеруге болады. Егер бәрі ойдағыдай болса, біз алға қарай жүре аламыз!

5 -қадам: UFW брандмауэрі

UFW брандмауэрі
UFW брандмауэрі

Бұл RPi интернетке тұрақты қосылатын болғандықтан, мен брандмауэр жақсы идея болады деп шештім, және қарапайым - күрделі емес брандмауэр (ufw). Мұнда өте қарапайым оқулық бар

Мен терең түсінбеймін, себебі бұл нұсқаулықтың мақсаты емес, бірақ қысқаша:

Брандмауэрді мыналармен орнатыңыз:

sudo apt-get ufw орнатыңыз

Әдепкі ережелерді орнатыңыз:

sudo ufw әдепкі бойынша шығуға рұқсат етіңіз

sudo ufw әдепкі бойынша кіруден бас тартады

Мәліметтер үшін 80 портын ашыңыз

sudo ufw 80 рұқсат етіңіз

Брандмауэрді қосыңыз

sudo ufw қосу

Күйді тексеріңіз және бәрі жұмыс істеп тұрғанын тексеріңіз

sudo ufw күйі

6 -қадам: Температура деректерін JSON ретінде аяқтау

S температуралық деректерді JSON ретінде аяқтайды
S температуралық деректерді JSON ретінде аяқтайды

Тим Фернандо блогына және 5 бөліміне оралу.

Көрсетілген қадамдарды орындаңыз (егер біз жобалар каталогын құрмаған болсақ) және бәрі жақсы жұмыс істеуі керек. GIT көмегімен сіз Tim қосымшасының файлдарын жүктейсіз және PIP барлық қажетті бағдарламалардың сіздің RPi -ге орнатылғанына көз жеткізеді. Содан кейін пакеттердің дұрыс орнатылғанына көз жеткізу үшін қайта жүктеу керек екенін білдім.

Содан кейін Tim бағдарламасын іске қосыңыз, содан кейін сіздің RPi бірінші сенсорға JSON деректерін беруі керек.

cd home/pi/жобалар/температура-қызмет-pi

sudo gunicorn температурасы: app -b 0.0.0.0:80

Сіз блог арқылы сенсорлардың 1 -іне деректер берілгенін білетін 6 -бөлімге өтуге болады.

JSON Viewer көмегімен https://codebeautify.org/jsonviewer деректерін көру үшін «URL жүктеу» түймесін басып, бұрын көрсетілген Wormhole мекенжайын қойыңыз. Сол жақта сіз екі жазбаны көруіңіз керек, біреуі Цельсий үшін, екіншісі Фаренгейт үшін.

7 -қадам: деректерді екі сенсордан жіберіңіз

Екі сенсордан да деректерді жіберіңіз
Екі сенсордан да деректерді жіберіңіз

Temperat.py және thermo-test.py кодына сүйене отырып, мен 2temps.py өңдедім, бұрынғыдай /projects /temperature-serve-pi каталогында, кодқа жабыстырылып, сақталды. Содан мен жүгірдім

sudo gunicorn 2temps: app -b 0.0.0.0:80

Енді мен JSON Viewer бағдарламасын қайта іске қосқан кезде temp1 & temp2 мәндерін алдым

Жетістік:)

8 -қадам: Автоматты түрде іске қосу

Автоматты түрде іске қосу
Автоматты түрде іске қосу

Жылыжайдың қуаты анда -санда өшіп қалатындықтан, мен RPi бағдарламаны автоматты түрде жүктеп, деректерді дәлелдей бастағанын қалаймын. Ең қарапайым әдіс - rc.local файлын өңдеу және 0 кодының төменгі жағында қажетті кодты қосу.

cd және т

sudo nan rc.local

содан кейін қосымша

ұйықтау 10

cd home/pi/projects/temperature-serve-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &

  • & Соңында компьютерге сценарийді ішкі қабықта іске қосуды айтады, сонда сіздің компьютер функцияның аяқталуын күтпейді және жүктеуді жалғастырады.
  • Ұйқы 10 [секунд] қызметті бастамас бұрын барлық алдыңғы әрекеттердің аяқталғанына көз жеткізеді.

Шығыңыз және бұрынғыдай сақтаңыз. Содан кейін бәрі жақсы екенін тексеру үшін JSON Viewer бағдарламасын қайта жүктеңіз.

Егер сіз автоматты түрде орындалатын бағдарламалар туралы қосымша ақпарат алғыңыз келсе, мұнда керемет оқулық бар

9 -қадам: Freeboard.io -да деректерді көрсету (1)

Freeboard.io -да деректерді көрсету (1)
Freeboard.io -да деректерді көрсету (1)

Тим блогындағы қадамдар жақсы жұмыс істейді; www.freeboard.io сайтында тіркелгі жасаңыз, содан кейін жаңа Freeboard жасаңыз, мен SHEDTEMPERATURES деп атадым.

Алдымен, деректер көзін қосыңыз, жоғарғы оң жақтағы ҚОСУ түймесін басыңыз және қалқымалы терезеден JSON түрін таңдаңыз, деректер көзіне АТЫ беріңіз, URL мекенжайы ретінде бұрынғыдан бұрын құрт тесік адресін қосыңыз және THINGPROXY СЫНАУ үшін ЖОҚ түймесін басыңыз. Температура өте баяу өзгереді, сондықтан әр 15 секунд сайын жаңартыңыз. САҚТАУ түймесін басыңыз.

10 -қадам: Freeboard.io -да деректерді көрсету (2)

Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)
Freeboard.io -да деректерді көрсету (2)

Бірінші виджетті қосу үшін ADD PANE, содан кейін + түймесін басыңыз. Сіз әр түрлі типтерді таңдай және ойнай аласыз, бірақ мен Gauge жақсы екенін білдім. Қолданбаңызға сәйкес келетін TITLE, UNITS (C), MINIMUM және MAXIMUM беріңіз. DATASOURCE үшін + түймесін басыңыз, сонда жоғарыда жасалған көз пайда болады.

Ашылмалы тізім бұрын салынған 2 JSON деректер көзін (temp2 & temp2) көрсетуі керек. Сәйкес көзді таңдап, Сақтау түймесін басыңыз.

Мұны екінші өлшеуіш үшін қайталаңыз және біз дайынбыз.

Деректер енді 2 өлшеуіште көрсетілуі керек және егер сізде әлі де PRi мониторға қосылған болса, Freeboard.io -дан келген кезде олардың сұраныстарын көруге болады.

11 -қадам: Жобаны қорапқа салыңыз

Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз
Жобаны қорапқа салыңыз

Осы уақытқа дейін RPi және басқа компоненттер үстелге үстелге жиналды. Нан тақтасын ауыстыру үшін таспаның кішкене бөлігі қолданылды және сымдардың бәрі дәнекерленген.

Ашық қызғылт кішкентай Lego сақтау қорабы табылды, онда көп орын бар және RPI тым ыстық болмайтын жерде. қораптың бүйірлерінде тесіктер бұрғыланды және RPi мен таспалы тақтаны орнында ұстау үшін 3 мм нейлонды бекіту тіректері қолданылды.

GPIO, 3.3v, GND және деректерден тек 3 байланыс қажет.

  • 3.3 вольт кернеуі 1
  • GND PIN 6
  • Деректер (GPIO4) түйреуіші 7

Сонымен қатар температура сенсорларына USB қуаты мен кабельдерге арналған саңылаулар қосылды. Барлығы өз орнына қойылғаннан кейін, өрмекшілердің қысты жақсы жылы орын деп ойламауын қамтамасыз ету үшін аз мөлшерде силиконды тығыздағыш қосылды!

12 -қадам: Аяқталды

Аяқталды
Аяқталды
Аяқталды
Аяқталды

Қорап жылыжайға қойылды және USB зарядтағышынан қуат алды. Көшеттердің түнде қаншалықты суық болғанын тексеру үшін екі датчикті біреуі жылыжайдың жоғарғы жағына, екіншісін өсімдік кастрөліне қойды.

Бұл менің бірінші нұсқаулығым, және сіз оны дұрыс деп ойлайсыз деп үміттенемін. Егер сіз қандай да бір қателерді тапсаңыз, маған хабарлаңыз, мен қажет болған жағдайда түзетемін. Келесі қадам деректерді әр 60 секунд сайын тіркеу болуы мүмкін, бірақ бұл кейінірек келеді.

Ұсынылған: