ዝርዝር ሁኔታ:

DIY የቤት ክትትል በ RaspberryPi እና Cloud4Rpi: 5 ደረጃዎች
DIY የቤት ክትትል በ RaspberryPi እና Cloud4Rpi: 5 ደረጃዎች

ቪዲዮ: DIY የቤት ክትትል በ RaspberryPi እና Cloud4Rpi: 5 ደረጃዎች

ቪዲዮ: DIY የቤት ክትትል በ RaspberryPi እና Cloud4Rpi: 5 ደረጃዎች
ቪዲዮ: {791} Configuring PL2303 USB To TTL Module To Program RYLR998 2024, ህዳር
Anonim
DIY የቤት ክትትል በ RaspberryPi እና Cloud4Rpi
DIY የቤት ክትትል በ RaspberryPi እና Cloud4Rpi

አንድ የክረምት ቅዳሜና እሁድ ወደ አገሬ ቤት ሄድኩ እና እዚያ በጣም እንደቀዘቀዘ አወቅኩ። በኤሌክትሪክ አንድ ነገር ተከሰተ እና የ RCD ሰባሪ አጥፍቶታል ፣ እና ማሞቂያው እንዲሁ ጠፍቷል። እኔ እዚያ በመጣሁ እድለኛ ነበር ፣ አለበለዚያ በበርካታ ቀናት ውስጥ ሁሉም ነገር በረዶ ሆኖ ነበር ይህም ለቧንቧዎች እና ለራዲያተሮች በጣም መጥፎ ነው።

እኔ ብዙ Raspberry Pi በዙሪያዬ ፣ እና የሙቀት ዳሳሽ ነበረኝ ፣ ስለዚህ አሰብኩ - ለምን ቀላል የክትትል መሣሪያ አላደርግም? ከዚህ በታች ያሉት መመሪያዎች ከ Raspbian እና ከአውታረ መረብ ግንኙነት ጋር Raspberry Pi እንዳለዎት ያስባሉ። በእኔ ሁኔታ Raspberry Pi B+ ከ Raspbian (2018–06–27-raspbian-stretch-lite) ጋር ነው።

ደረጃ 1 የሙቀት ቁጥጥር

የሙቀት ቁጥጥር
የሙቀት ቁጥጥር
የሙቀት ቁጥጥር
የሙቀት ቁጥጥር

DS18B20 የሙቀት ዳሳሽ እንዴት እንደሚገናኝ? ይህንን እንዴት ማድረግ እንደሚቻል google ብቻ ያድርጉ ፣ እና እንደዚህ ያሉ ብዙ ሥዕሎችን ያያሉ-

በእኔ ሁኔታ ጥቁር ፣ ቢጫ እና ቀይ ሽቦዎች ነበሩኝ። ጥቁሩ መሬት ነው ፣ ወደ መሬት ፒን ይሄዳል ፣ ቀይው ኃይል ነው - ወደ 3.3 ቪ ፒን ይሄዳል ፣ እና ቢጫው መረጃ ነው - ወደ GPIO4 ፒን መሄድ አለበት ፣ 4.7 ኪ.ሜትር resistor በመረጃ እና ኃይል መካከል ተገናኝቷል። ማስታወሻ ፣ ብዙ ዳሳሾችን ማገናኘት ይችላሉ። በትይዩ (እነሱ ዲጂታል ናቸው ፣ እና የተለያዩ አድራሻዎች አሏቸው) ፣ አንድ ተከላካይ ብቻ ያስፈልግዎታል። ዳሳሽዎን ካገናኙ በኋላ 1Wire ን በ raspi-config ውስጥ ማንቃት አለብዎት

sudo raspi-config

ወደ 5 በይነገጽ አማራጮች ይሂዱ ፣ P7 1-Wire ን ያንቁ እና እንደገና ያስነሱ።

ከዚያ ዳሳሹን ማየት ከቻሉ መሞከር ይችላሉ-

sudo modprobe w1-gpiosudo modprobe w1-thermls/sys/አውቶቡስ/w1/መሣሪያዎች/

እንደዚህ ያለ ነገር ማየት አለብዎት-

pi@vcontrol: ~ $ ls/sys/bus/w1/devices/28–00044eae2dff w1_bus_master1

28–00044eae2dff የእኛ የሙቀት ዳሳሽ ነው።

ሃርድዌር ዝግጁ ነው። አሁን የክትትል ክፍልን ማዘጋጀት አለብኝ። መሣሪያው ለተወሰነ ጊዜ ከተቋረጠ ወይም ኃይል ከሌለ ወይም የሙቀት መጠኑ ዝቅተኛ ከሆነ ውሂቡን የሚያሳየኝ እና የሚያሳውቀኝ ነገር እፈልጋለሁ። በግልጽ እንደሚታየው ይህ ራስተር እንጆሪ ፓይ ሊሆን አይችልም ፣ በበይነመረቡ ውስጥ መሣሪያዬን የሚቆጣጠር አንዳንድ አገልጋይ ወይም አገልግሎት መኖር አለበት።

ቀለል ያለ አገልጋይ መፍጠር ፣ አስተናጋጅ ማግኘት እና ሁሉንም ነገር ማቀናበር እችላለሁ ፣ ግን በአክብሮት ፣ አልፈልግም። እንደ እድል ሆኖ ፣ አንድ ሰው ስለዚህ ጉዳይ አስቀድሞ አስቦ Cloud4rpi.io - ለመሣሪያዎ የደመና መቆጣጠሪያ ፓነል።

ደረጃ 2 Cloud4Rpi.io ን ማቀናበር

Cloud4Rpi.io ን በማዋቀር ላይ
Cloud4Rpi.io ን በማዋቀር ላይ

Cloud4Rpi መሣሪያዎ MQTT ወይም የኤችቲቲፒ ፕሮቶኮሎችን በመጠቀም ውሂብ እንዲልክ እና እንዲቀበል የሚያስችል አገልግሎት ይሰጣል። ለፓይዘን የደንበኛ ቤተመጽሐፍት አላቸው ፣ ስለዚህ ፓይዘን እጠቀማለሁ።

ከ Cloud4Rpi አገልግሎት ጋር የሚመጡ የፓይዘን ምሳሌዎች ቀድሞውኑ ለ DS18B20 ቴምፕ ዳሳሽ ኮድ ይ containsል።

ስለዚህ ወደ https://cloud4rpi.io ሄድኩ ፣ አካውንት ፈጥሬ እዚያ አዲስ መሣሪያ ጨመርኩ። የመሣሪያው ገጽ ማስመሰያ አለው - መሣሪያውን የሚለይ ሕብረቁምፊ ፣ እና ውሂብን በሚልክበት ፕሮግራም ውስጥ መገለጽ ያለበት።

ለመጀመር ፣ የጥቅል አስተዳዳሪን ማዘመን እና ጥቅሎችን ማሻሻል ሁል ጊዜ ጥሩ ሀሳብ ነው (ማስታወሻ -ለተወሰነ ጊዜ ካላሻሻሉ ሰዓታት ሊወስድ ይችላል)

sudo apt-get update && sudo apt-get ማሻሻል

ከዚያ git ፣ Python ን እና የጥቅል ሥራ አስኪያጁን ፒፕ ይጫኑ።

sudo apt-get install git Python Python-pip ን ይጫኑ

ከዚያ ፣ cloud4rpi Python ቤተ -መጽሐፍትን ይጫኑ ፦

sudo pip ጫን cloud4rpi

በመጨረሻ ፣ የእኔን የቁጥጥር መርሃ ግብር ለመፃፍ ዝግጁ ነኝ። በምሳሌ እጀምራለሁ

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi… cloud4rpicd cloud4rpi

ዋናው የፕሮግራም ፋይል control.py ነው - ለፍላጎቴ መለወጥ አለብኝ። በመጀመሪያ ፕሮግራሙን ያርትዑ እና ምልክት ይለጥፉ-

sudo nano control.py

አንድ መስመር DEVICE_TOKEN = '…'] ይፈልጉ እና እዚያ የመሣሪያ ማስመሰያ ይግለጹ። ከዚያ በኋላ ፕሮግራሙን በቀላሉ ማካሄድ እችላለሁ - ይሠራል እና በ RoomTemp ተለዋዋጭ ውስጥ የሙቀት መጠንን ሪፖርት ያደርጋል-

sudo Python control.py

በ RoomTemp ተለዋዋጭ ውስጥ ይሠራል እና ሪፖርት ያደርጋል።

ሁሉንም onewire ds18b20 ዳሳሾችን እንደሚያገኝ ልብ ይበሉ

ds_sensors = ds18b20. DS18B20.find_all ()

እና የመጀመሪያውን የተገኘ ዳሳሽ ይጠቀማል-

RoomTemp ': {' type ':' ቁጥራዊ '፣' bind ': ds_sensors [0] ds_sensors ሌላ ከሌለ}

እሺ ፣ ያ ቀላል ነበር ፣ ምክንያቱም የናሙና ፕሮግራሙ በ Raspberry Pi ላይ ከ ds18b20 ዳሳሽ ጋር ለመስራት የሚጠየቀው ሁሉ አለው። አሁን የኃይል ሁኔታውን ሪፖርት ለማድረግ መንገዱን መፈለግ አለብኝ።

ደረጃ 3 የዩፒኤስ ክትትል

የ UPS ክትትል
የ UPS ክትትል

እኔ መከታተል የምፈልገው ቀጣይ የ UPS ሁኔታ ነው ፣ ስለዚህ የኃይል መቋረጥ ካለ ፣ ሁሉም ነገር ከመቋረጡ በፊት ስለእሱ አውቃለሁ።

እኔ የዩኤስቢ መቆጣጠሪያ ያለው ኤፒሲ ዩፒኤስ አለኝ ፣ ስለሆነም በፍጥነት ጉግል አድርጌ apcupsd እንደሚያስፈልገኝ አገኘሁ። https://www.anites.com/2013/09/monitoring-ups.html… በአፕ-get በኩል ለመጫን ብዙ ጊዜ ሞከርኩ ፣ እና በተለያዩ ምክንያቶች ለእኔ አልሰራም። ከምንጭዎቹ እንዴት እንደሚጭኑት አሳያለሁ።

wget https://sourceforge.net/projects/apcupsd/files/ap…tar xvf apcupsd-3.14.14.tar.gz ሲዲ apcupsd-3.14.14

ከዚያ በዩኤስቢ በኩል ከእኔ UPS ጋር ለመገናኘት apcupsd.conf ን አርትዕ አደርጋለሁ።

sudo nano /etc/apcupsd/apcupsd.conf# #UPSCABLE smart UPSCABLE usb ##UPSTYPE apcsmart #DEVICE/dev/ttyS0 UPSTYPE usb DEVICE

አሁን የዩኤስቢ ገመድ ከዩፒኤስ ወደ RaspberryPi መሰካት እና ዩፒኤስ ከተገኘ መሞከር እችላለሁ።

sudo apctest

ምንም የስህተት መልዕክቶች ሊሰጥዎት አይገባም።

አሁን የ sevice apcupsd መጀመር አለበት-

sudo systemctl apcupsd ን ይጀምሩ

የ UPS ሁኔታን ለመጠየቅ የሁኔታ ትዕዛዙን መጠቀም እችላለሁ-

sudo /etc/init.d/apcupsd ሁኔታ

እና እንደዚህ ያለ ነገር ያወጣል-

APC: 001 ፣ 035 ፣ 0855 ቀኑ: 2018-10-14 16:55:30 +0300 አስተናጋጅ: vcontrol VERSION: 3.14.14 (31 May 2016) debian UPSNAME: vcontrol CABLE: USB ገመድ DRIVER: USB UPS Driver UPSMODE: ብቻውን ይቆዩ የመነሻ ሰዓት: 2018-10-14 16:54:28 +0300 ሞዴል-Back-UPS XS 650CI STATUS: ONLINE LINEV: 238.0 Volts LOADPCT: 0.0 Percent BCHARGE: 100.0 Percent TIMELEFT: 293.3 minutes MBATTCHG: 5 Percent MINTIMEL: 3 minutes MAXTIME: 0 ሰከንዶች ስሜት: መካከለኛ ሎተራን: 140.0 ቮልት HITRANS: 300.0 ቮልት ALARMDEL: 30 ሰከንዶች BATTV: 14.2 ቮልት LASTXFER: ከዞን ቁጥር ጀምሮ ምንም ማስተላለፎች የሉም: 0 TONBATT: 0 ሴኮንድ CUMONBATT: 0 ሰከንድ XOFFBATT: N/A STATFLA4: 0B05: 0B0T0004: 0A: 2014-06-10 NOMINV: 230 ቮልት NOMBATTV: 12.0 Volts NOMPOWER: 390 Watts FIRMWARE: 892. R3. I USB FW: R3 END APC: 2018-10-14 16:55:38 +0300

ሁኔታ እፈልጋለሁ - “STATUS:” መስመር ነው።

የ Cloud4rpi ቤተ -መጽሐፍት እንደ የአስተናጋጅ ስም ወይም የሲፒዩ የሙቀት መጠን ያሉ የ Raspberry Pi ስርዓት መለኪያዎችን የሚመልስ ‹rpy.py› ሞዱል ይ containsል። እነዚያ ሁሉም መመዘኛዎች አንዳንድ ትዕዛዞችን የማስኬድ እና የውጤት መተንተን ውጤቶች በመሆናቸው ፣ እኔ ደግሞ የሚያስፈልገኝን የሚያደርግ ምቹ ‹parse_output› ተግባርን ይ containsል። የእኔን የ UPS ሁኔታ እንዴት ማግኘት እንደሚቻል -

def ups_status (): ውጤት = rpi.parse_output (r'STATUS / s+: / s+(S+) ', [' /etc/init.d/apcupsd ',' status ']) ውጤት ከተገኘ ውጤት ተመላሽ ሌላ - ተመለስ 'ያልታወቀ'

ይህንን ሁኔታ ወደ cloud4rpi ለመላክ ፣ ተለዋዋጭ UPSStatus ን ማወጅ እና ከእኔ ups_status ተግባር ጋር ማያያዝ አለብኝ - አሁን ፕሮግራሜን ማሄድ እችላለሁ

ተለዋዋጮች = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}

እና የእኔን ተለዋዋጭ በ cloud4rpi መሣሪያ ገጽ ላይ ወዲያውኑ ማየት እችላለሁ።

ደረጃ 4 - ወደ “ምርት” በመዘጋጀት ላይ

ወደ “ምርት” በመዘጋጀት ላይ
ወደ “ምርት” በመዘጋጀት ላይ

ሁለንተናዊ ሥራ እየሠራ ነው ፣ እና አሁን መሣሪያዬን ወደማይከታተል ሁኔታ ማዘጋጀት አለብኝ።

ለመጀመር ፣ የጊዜ ክፍተቶችን ለማስተካከል እሄዳለሁ። የሕዝብ አስተያየት ክፍተት ፕሮግራሙ የሙቀት መጠንን እና የ UPS ሁኔታን ምን ያህል ጊዜ እንደሚፈትሽ ይወስናል - ለአንድ ሰከንድ ያዋቅሩት።

ውጤቶች በየ 5 ደቂቃዎች ወደ ደመና ይላካሉ ፣ እና የምርመራ መረጃ - በየሰዓቱ።

# የማያቋርጥ ውሂብ_መላክ_ኢንተርቪል = 300 # ሰከንድ DIAG_SENDING_INTERVAL = 3600 # ሴኮንድ POLL_INTERVAL = 1 # ሴኮንድ

የ UPS ሁኔታ ሲቀየር - መሣሪያዬ ለ 5 ደቂቃዎች እንዲቆይ አልፈልግም ፣ እና ወዲያውኑ ውሂብ እልካለሁ። ስለዚህ ዋናውን loop በመጠኑ ቀይሬያለሁ እና እንደዚህ ይመስላል

data_timer = 0diag_timer = 0 prevUPS = 'ONLINE' እውነት ሲሆን newUPS = ups_status () ከሆነ (data_timer <= 0) ወይም (newUPS! = prevUPS): device.publish_data () data_timer = DATA_SENDING_INTERVAL prevUPS = 0UIM: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL እንቅልፍ (POLL_INTERVAL) diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL

ሙከራ: ስክሪፕት አሂድ

sudo Python control.py

እና በመሣሪያዬ ገጽ ላይ የ UPS ሁኔታን ማየት እችላለሁ።

የዩፒኤስ ኃይልን ካጠፋሁ ሁኔታው በጥቂት ሰከንዶች ውስጥ ይለወጣል ፣ ስለዚህ ሁሉም ነገር እየሰራ ነው። አሁን በስርዓት ጅምር ላይ apcupsd ን እና የእኔን ቁጥጥር.ፒ መጀመር አለብኝ። Apcupsd አገልግሎት ያረጀ እና በዘመናዊው ራሽቢያን ላይ ለመጀመር ፣ እነዚህን መስመሮች ከላይ ያለውን ቦታ በማከል /etc/init.d/apcupsd ፋይልን ማሻሻል አለብኝ -

### የመነሻ መግቢያ መረጃ # ያቀርባል: apcupsd # ያስፈልጋል-ጀምር: $ ሁሉ # ተፈላጊ-አቁም: # ነባሪ-ጀምር: 2 3 4 5 # ነባሪ-አቁም: # አጭር መግለጫ-APC UPS daemon… ### END INIT መረጃ#

ከዚያ አገልግሎቱን ያንቁ -

sudo systemctl apcupsd ን ያንቁ

ከዚያ አገልግሎቱን ይጀምሩ-

sudo systemctl apcupsd ን ይጀምሩ

አሁን apcupsd በስርዓቱ ጅምር ላይ ይጀምራል።

Control.py ን እንደ አገልግሎት ለመጫን ፣ የቀረበውን service_install.sh ስክሪፕት እጠቀም ነበር።

sudo bash service_install.sh ~/cloud4rpi/control.py

አሁን አገልግሎቱ ተጀምሯል እና እንደገና ማስነሳት በሕይወት መትረፍ አለበት።

ደረጃ 5 የቁጥጥር ፓነልን ማቀናበር

የቁጥጥር ፓነልን ማቀናበር
የቁጥጥር ፓነልን ማቀናበር

Cloud4rpi ለመሣሪያዬ የቁጥጥር ፓነልን እንዳዋቀር ይፈቅድልኛል። «ንዑስ ፕሮግራሞችን» ማከል እና ከመሣሪያ ተለዋዋጮች ጋር ማያያዝ ይችላሉ።

የእኔ መሣሪያ ሁለት ተነባቢ -ብቻ ተለዋዋጮችን ይሰጣል - RoomTemp እና UPSStatus:

ተለዋዋጮች = {'RoomTemp': {'type': 'numeric', 'bind': ds_sensors [0]}, 'UPSStatus': {'type': 'string', 'bind': ups_status}}

እኔ 3 ንዑስ ፕሮግራሞችን ጨመርኩ - ለ RoomTemp ቁጥር ፣ ለ UPSStatus ጽሑፍ እና ለክፍል ቴምፕ ገበታ።

ማንቂያዎችን ማቀናበር እችላለሁ ፣ ስለዚህ የሙቀት መጠኑ ከተጠቀሰው ክልል ሲያልቅ ኢሜል ይደርሰኛል ፣ ዩፒኤስ ከመስመር ውጭ ሄዷል ወይም መሣሪያው ራሱ ውሂብ በሚፈለገው ጊዜ አይልክም። አሁን የሀገሬ ቤት ደህና መሆኑን እርግጠኛ መሆን እችላለሁ ፣ እና ማሳወቅ የሆነ ነገር ሲከሰት ፣ ለጎረቤቶች ስልክ በመደወል እና ምን እየተደረገ እንዳለ እንዲፈትሹ እጠይቃለሁ። የቁጥጥር.py ትክክለኛው ኮድ እዚህ አለ።

የሚመከር: