ዝርዝር ሁኔታ:

Oolል ፒ ጋይ - አይአይ የሚነዳ የማንቂያ ስርዓት እና Raspberry Pi ን በመጠቀም የoolል ክትትል 12 ደረጃዎች (ከስዕሎች ጋር)
Oolል ፒ ጋይ - አይአይ የሚነዳ የማንቂያ ስርዓት እና Raspberry Pi ን በመጠቀም የoolል ክትትል 12 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: Oolል ፒ ጋይ - አይአይ የሚነዳ የማንቂያ ስርዓት እና Raspberry Pi ን በመጠቀም የoolል ክትትል 12 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: Oolል ፒ ጋይ - አይአይ የሚነዳ የማንቂያ ስርዓት እና Raspberry Pi ን በመጠቀም የoolል ክትትል 12 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Ibadah Pembaptisan, 26 Mei 2021 Sesi 1 - Pdt. Daniel U. Sitohang 2024, ሰኔ
Anonim
Oolል ፒ ጋይ - አይአይ የሚነዳ የማንቂያ ስርዓት እና Raspberry Pi ን በመጠቀም መዋኛ ክትትል
Oolል ፒ ጋይ - አይአይ የሚነዳ የማንቂያ ስርዓት እና Raspberry Pi ን በመጠቀም መዋኛ ክትትል

በቤት ውስጥ ገንዳ መኖሩ አስደሳች ነው ፣ ግን በታላቅ ሀላፊነት ይመጣል። የእኔ ትልቁ ጭንቀት ማንም ሰው በገንዳው አቅራቢያ (በተለይም ታናናሽ ልጆች) የሚገኝ ከሆነ መከታተል ነው። የእኔ ትልቁ ብስጭት የኩሬው የውሃ መስመር በጭራሽ ከፓም entry መግቢያ በታች አለመሆኑን ማረጋገጥ ነው ፣ ይህም ፓም pumpን ያደርቅ እና በጥገና ውስጥ $$$ ያስከፍለዋል።

ሁለቱንም ችግሮች ለመፍታት ከውኃ ደረጃ ዳሳሽ እና ከሶሎኖይድ ቫልቭ ጋር ከ ‹OpenCV› እና ‹‹TensorFlow›› ጋር ‹Raspberry Pi› ን እንዴት እንደሚጠቀሙ ተረድቻለሁ - እና ይህን በማድረግ ይደሰቱ!

እሱ እንዲሁ ታላቅ የማስጠንቀቂያ ስርዓት ሆኖ ተገኝቷል - እንቅስቃሴ ገብሯል ፣ በአይአይ ቁጥጥር የሚደረግ ፣ ያለገደብ ሊበጅ የሚችል።

ወደ ውስጥ እንውጣ።

ደረጃ 1 - ታላቁ ዕቅድ

በዚህ ትምህርት ውስጥ እንዴት ማድረግ እንደሚቻል እናሳያለን-

  1. Raspberry Pi ን ከ OpenCV እና TensorFlow ጋር ያዋቅሩ
  2. በረጅም የዩኤስቢ ገመድ በኩል የድር ካሜራ ያገናኙ
  3. እንቅስቃሴን ለመለየት የ OpenCV ስልተ ቀመር ይፃፉ
  4. ለዕቃ ማወቂያ TensorFlow ን ይጠቀሙ
  5. አስደሳች ምስሎችን ለማሳየት በ Raspberry Pi ላይ የድር አገልጋይ ያዘጋጁ
  6. አንድ ሰው ከተገኘ የሞባይል ማንቂያዎችን ለመቀስቀስ ከ IFTTT ጋር ይዋሃዱ
  7. የቅብብሎሽ ኮፍያ ከ Raspberry Pi ጋር ያያይዙ እና ወደ ገንዳው ውስጥ ውሃ ከሚጨምር የሶላኖይድ ቫልቭ ጋር ያገናኙት።
  8. የውሃ ደረጃ ዳሳሽ ወደ Raspberry Pi ያያይዙ እና የ Pi ን ጂፒኦ በመጠቀም ከእሱ ጋር ይገናኙ
  9. ሁሉንም በአንድ ላይ ለማጣበቅ አንዳንድ ኮድ ይፃፉ

ደረጃ 2 - የግዢ ዝርዝር

የግዢ ዝርዝር
የግዢ ዝርዝር

ሁሉም ክፍሎች ከአማዞን በቀላሉ ይገኛሉ። ክፍሎችን ለመሞከር እና ለመለዋወጥ ነፃነት ይሰማዎት - ያ አስደሳችው ግማሽ ነው!

  1. Raspberry Pi
  2. Raspberry Pi የኃይል አቅርቦት (እዚህ አያምልጡ)
  3. የማህደረ ትውስታ ካርድ (ትልቅ ይሻላል)
  4. መያዣ (ይህ አንድ ሰው ፒ እና ኮፍያ ለመያዝ በቂ ነው)
  5. የዩኤስቢ ዌብካም (ማንኛውም የድር ካሜራ ይሠራል ፣ ግን ጥሩ ምስሎችን የሚያገኝ እና መብራትን በደንብ የሚዛመድ ይፈልጋሉ)
  6. የዩኤስቢ ማራዘሚያ ገመድ (አስፈላጊ ከሆነ - በ Pi እና ካሜራውን በሚያስቀምጡበት ቦታ መካከል ያለውን ርቀት ይለኩ)
  7. የቅብብሎሽ ሰሌዳ HAT (ይህ 3 ቅብብሎች አሉት እና እኛ አንድ ብቻ እንፈልጋለን ፣ ግን ለሌሎቹ ብዙም ሳይቆይ መጠቀሙን ያገኛሉ!)
  8. ሶለኖይድ
  9. Solenoid fitting 1 እና Fitting 2 (ያ በእውነቱ እርስዎ በሶሎኖይድ በሚመጥኑት ላይ የተመሠረተ ነው ፣ ግን እነዚህ ለእኔ ሠርተዋል)
  10. Solenoid የኃይል አቅርቦት (ማንኛውም 24V ኤሲ ያደርጋል)
  11. ገመድ (እንደገና ፣ ማንኛውም 2 ገመድ ገመድ ማለት ይቻላል ይሠራል - የአሁኑ ዝቅተኛ ነው)
  12. የውሃ ደረጃ ተንሳፋፊ መቀየሪያ (ይህ ምሳሌ ብቻ ነው ፣ ከመዋኛዎ ጋር በቀላሉ ሊገናኝ የሚችለውን ይመልከቱ)
  13. አንዳንድ የጁምፐር ሽቦዎች እና የሽቦ አያያorsች

ደረጃ 3 - የራስዎን እንጆሪ ፒን ያዋቅሩ

Raspberry Pi ን ያዋቅሩ
Raspberry Pi ን ያዋቅሩ

Raspberry Pi ታላቅ ትንሽ ኮምፒውተር ነው። ዋጋው 35 ዶላር ብቻ ነው ፣ ያለማቋረጥ ይሠራል ፣ እና ብዙ ተኳሃኝ ሶፍትዌሮች እና ሃርድዌር አለው። እሱን ማዋቀር በጣም ቀላል ነው-

  1. የእርስዎን ኤስዲ ካርድ ቅርጸት ይስሩ። ይህ ልዩ እንክብካቤ ይፈልጋል - Raspberry Pi ከ FAT ቅርጸት ካለው ኤስዲ ካርድ ብቻ ማስነሳት ይችላል። እነዚህን መመሪያዎች ይከተሉ።
  2. Raspberry Pi ን ከዩኤስቢ ቁልፍ ሰሌዳ እና መዳፊት ፣ ከኤችዲኤምአይ ማሳያ ጋር ያገናኙ እና በ Raspberry Pi NOOBS አጋዥ ስልጠና ውስጥ ያሉትን መመሪያዎች ይከተሉ። WiFi ማዋቀሩን እና የ SSH መዳረሻን ማንቃትዎን ያረጋግጡ። ለነባሪ ፓይ መለያ የይለፍ ቃል ማዘጋጀትዎን አይርሱ።
  3. በቤትዎ አውታረ መረብ ላይ ለ Raspberry Pi የማይንቀሳቀስ አይፒን ያዋቅሩ - ወደ ኤስ ኤስ ኤች ለመግባት በጣም ቀላል ያደርገዋል።
  4. በእርስዎ ዴስክቶፕ/ላፕቶፕ ላይ የ ssh ደንበኛ መጫኑን ያረጋግጡ። ለፒሲ እኔ ከዚህ መጫን የሚችሉትን tyቲ እመክራለሁ።
  5. ዩኤስቢውን እና ኤችዲኤምአይውን ከ Raspberry Pi ያላቅቁት ፣ እንደገና ያስነሱት እና ወደ ውስጥ ያስገቡ - ሁሉም ከሰራ እንደዚህ ያለ ነገር ማየት አለብዎት

Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l

ከዲቢያን ጂኤንዩ/ሊኑክስ ስርዓት ጋር የተካተቱት ፕሮግራሞች ነፃ ሶፍትዌር ናቸው ፤ ለእያንዳንዱ ፕሮግራም ትክክለኛ የስርጭት ውሎች በ/usr/share/doc/*/የቅጂ መብት ውስጥ ባሉ በግል ፋይሎች ውስጥ ተገልፀዋል። ደቢያን ጂኤንዩ/ሊኑክስ በሚመለከተው ሕግ እስከሚፈቅድ ድረስ ሙሉ በሙሉ ምንም ዋስትና አይሰጥም። የመጨረሻው መግቢያ: ሰኞ ግንቦት 13 10:41:40 2019 ከ 104.36.248.13 pi@raspberrypi: ~ $

ደረጃ 4: OpenCV ን ያዋቅሩ

OpenCV ን ያዋቅሩ
OpenCV ን ያዋቅሩ

OpenCV ለኮምፒዩተር እይታ አስደናቂ የምስል አያያዝ ተግባራት ስብስብ ነው። ከድር ካሜራ ምስሎችን እንድናነብ ፣ የእንቅስቃሴ ቦታዎችን እንድናስተናግድ ፣ እንድናስቀምጣቸው እና ሌሎችንም እንድናስችል ያስችለናል። Raspberry Pi ላይ ማዋቀር አስቸጋሪ አይደለም ነገር ግን የተወሰነ እንክብካቤ ይፈልጋል።

Virtaulenvwrapper ን በመጫን ይጀምሩ -ሁሉንም መርሃግብሮቻችንን ለማድረግ ፓይዘን እንጠቀማለን ፣ እናም ቪርቫለንቭ ለ OpenCV እና TensorFlow vs Flask ወይም GPIO ጥገኝነትን ለየብቻ እንድንቆይ ይረዳናል።

pi@raspberrypi: ~ $ sudo pip ጫን virtualenvwrapper

አሁን አዲስ አከባቢን ለመፍጠር ፣ በእሱ ላይ ለመሥራት “ሥራን” እና ሌሎችንም ለመፍጠር “mkvirtualenv” ን ማስፈጸም ይችላሉ።

ስለዚህ ፣ Python 3 ን እንደ ነባሪ አስተርጓሚ (እኛ 2019 ነው ፣ ከአሮጌው ፓይዘን 2 ጋር የሚጣበቅበት ምንም ምክንያት የለም) ለምስል ምስል አያያዝ ሁኔታ እንፍጠር።

pi@raspberrypi: ~ $ mkvirtualenv cv -p python3

… (Cv) pi@raspberrypi: ~

አሁን OpenCV ን ለመጫን ዝግጁ ነን። እኛ በ OpenCV ይማሩ ውስጥ በጣም ጥሩውን መማሪያ እንከተላለን። በተለይም የእነሱን ደረጃ 1 እና 2 ይከተሉ -

sudo apt -y updatesudo apt -y ማሻሻል ## ጥገኛዎችን ይጫኑ sudo apt-get -y install ግንባታ-አስፈላጊ ቼክ ጫን cmake pkg-config yasm sudo apt-get -y install git gfortran sudo apt-get -y install libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y install libtiff5-dev sudo apt-get -y install libtiff-dev sudo apt-get -y ጫን libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get- y libxine2-dev libv4l-dev cd/usr/ያካትታሉ/linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0 ን ይጫኑ። 10-dev sudo apt-get -y ጫን libgtk2.0-dev libtbb-dev qt5-default sudo apt-get -y install libatlas-base-dev sudo apt-get -y install libmp3lame-dev libtheora-dev sudo apt-get -y ጫን libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y ጫን libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y install libavresample-dev sudo apt-get -y ጫን x264 v4l-utils sudo apt -get -y ጫን libprotobuf -dev protobuf-compiler sudo apt-get -y install libgoogle-glog-dev libgflags-dev sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libqtgui4 sudo apt-get install libqt4- ፈተና

አሁን እኛ በሲ.ቪ ቪቫሌንቭ ውስጥ (አሁንም እርስዎ ውስጥ ነዎት?)

pip install opencv-contrib-python ን ይጫኑ

እና ያ ብቻ ነው! ፎቶዎችን እና ቪዲዮዎችን ለማንሳት ፣ እነሱን ለማቀናበር እና ለማቀዝቀዝ ዝግጁ በሆነው በእኛ Raspberry Pi ላይ OpenCV ተጭነናል።

የፓይዘን አስተርጓሚ በመክፈት እና opencv ን በማስመጣት ያረጋግጡ እና ምንም ስህተቶች አለመኖራቸውን ያረጋግጡ።

(cv) pi@raspberrypi: ~ $ python

Python 3.5.3 (ነባሪ ፣ ሴፕቴምበር 27 2018 ፣ 17:25:39) [GCC 6.3.0 20170516] በሊኑክስ ላይ “እገዛ” ፣ “የቅጂ መብት” ፣ “ክሬዲት” ወይም “ፈቃድ” ለተጨማሪ መረጃ ይተይቡ። >>> ማስመጣት cv2 >>>

ደረጃ 5: TensorFlow ን ያዋቅሩ

TensorFlow ን ያዋቅሩ
TensorFlow ን ያዋቅሩ

TensorFlow በ Google የተገነባ እና የተያዘ የማሽን ትምህርት / አይአይ ማዕቀፍ ነው። በምስሎች ውስጥ የነገር ማወቂያን ጨምሮ ለተለያዩ ተግባራት ጥልቅ ትምህርት ሞዴሎች ሰፊ ድጋፍ አለው ፣ እና አሁን በ Raspberry Pi ላይ ለመጫን በጣም ቀላል ነው። በጥቃቅን Pi ላይ ቀላል ክብደት ያላቸው ሞዴሎቹ አፈፃፀም በሰከንድ 1 ክፈፍ አካባቢ ነው ፣ ይህም እንደ እኛ ላሉት ትግበራ ፍጹም በቂ ነው።

በቅርብ ጊዜ በ TensorFlow ስርጭቶች በተደረጉ ማሻሻያዎች በኤድጄ ኤሌክትሮኒክስ እጅግ በጣም ጥሩውን ትምህርት እንከተላለን-

pi@raspberrypi: ~ $ workon cv

(cv) pi@raspberrypi: ~ $ pip tensorflow (cv) pi@raspberrypi: ~ $ sudo apt-get install libxml2-dev libxslt-dev (cv) pi@raspberrypi: ~ $ pip ትራስ ይጫኑ lxml jupyter matplotlib cython (cv)) pi@raspberrypi: ~ $ sudo apt-get install Python-tk ን ይጫኑ

አሁን የ Google ፕሮቶቢሉን ማጠናቀር አለብን። በተመሳሳዩ እጅግ በጣም ጥሩ መማሪያ ደረጃ 4 ውስጥ ያሉትን መመሪያዎች ብቻ ይከተሉ

በመጨረሻም ፣ የ TensorFlow ን ሞዴል ትርጓሜዎች ይደብቁ እና ያዋቅሩ - በኤድጄ ኤሌክትሮኒክስ ትምህርት ውስጥ ደረጃ 5 ን ይከተሉ

በደረጃ 6 እንዲሁ የእነሱን ምሳሌ ለመከተል ነፃነት ይሰማዎት ፣ በ Raspberry Pi ላይ የነገር ማወቂያ ታላቅ መግቢያ ነው።

ደረጃ 6: OpenCV ን በመጠቀም የእንቅስቃሴ ማወቂያ

በ OpenCV ከዌብ ካሜራችን ጋር መስተጋብር መፍጠር እንደሚችል በመሞከር እንጀምር - ssh ወደ Raspberry Pi ፣ ወደ cv virtualenv (workon cv) ይሂዱ ፣ የፓይዘን አስተርጓሚ ይክፈቱ (ልክ ፓይቶን ይተይቡ) እና የሚከተሉትን የፓይዘን ትዕዛዞችን ያስገቡ።

ማስመጣት cv2

cap = cv2. VideoCapture (0) cap.set (cv2. CAP_PROP_FRAME_WIDTH ፣ 1920) cap.set (cv2. CAP_PROP_FRAME_HEIGHT ፣ 1080) ret ፣ frame = cap.read () ህትመት ('የክፈፍ መጠን ያንብቡ ፦ {} x {}').format (frame.shape [1], frame.shape [0])

በማንኛውም ዕድል OpenCV ከካሜራ የኤችዲ ፍሬም ማንበብ መቻሉን ያያሉ።

ያንን ፍሬም ወደ ዲስክ ለመፃፍ እና ትክክለኛውን እይታ ለማየት መልሰው ለመገልበጥ cv2.imwrite (ዱካ ፣ ፍሬም) መጠቀም ይችላሉ።

እንቅስቃሴን ለመለየት ስትራቴጂው በቀጥታ ወደ ፊት ቀጥ ያለ ነው-

  1. በዝቅተኛ ጥራት ክፈፎች ላይ ይስሩ - እዚህ በሙሉ ኤችዲ ላይ መሥራት አያስፈልግም
  2. በተጨማሪም ፣ በተቻለ መጠን ትንሽ ጫጫታ ለማረጋገጥ ምስሎቹን ያደበዝዙ።
  3. የመጨረሻዎቹን የ N ክፈፎች አሂድ አማካኝ ያቆዩ። ለዚህ ትግበራ ፣ የክፈፉ መጠን በ 1 FPS አካባቢ (TensorFlow በአንድ ክፈፍ የተወሰነ ጊዜ ስለሚወስድ) ፣ N = 60 ጥሩ ውጤቶችን እንደሚመልስ አገኘሁ። እና ጥንቃቄ የተሞላ ትግበራ እሺ ባሉ ብዙ ክፈፎች ብዙ ሲፒዩ ስለማይወስድ (ብዙ ማህደረ ትውስታን ይወስዳል - ግን ከዝቅተኛ ጥራት ክፈፎች ጋር ስንሠራ ያ ቸል ነው)
  4. የአሁኑን ምስል ከአሂድ አማካይ ይቀንሱ (በመተየብ ብቻ ይጠንቀቁ - አዎንታዊ እና አሉታዊ እሴቶችን መፍቀድ ያስፈልግዎታል [-255.. 255] ፣ ስለዚህ ክፈፉ ወደ int መለወጥ አለበት)
  5. በፍሬም (እና አማካይ) ግራጫ-ልኬት ልወጣ ላይ መቀነስን ማከናወን ፣ ወይም ለእያንዳንዱ የ RGB ሰርጦች በተናጠል ማድረግ እና ከዚያ ውጤቱን ማዋሃድ (እሱ የመረጥኩት ስትራቴጂ ፣ ለቀለም ለውጦች ተጋላጭ ያደርገዋል)
  6. በዴልታ ላይ ደፍ ይጠቀሙ እና በአፈር መሸርሸር እና በማስፋፋት ጫጫታ ያስወግዱ
  7. በመጨረሻ ከዴልታ ጋር ያሉ ቦታዎችን ቅርፅ ይፈልጉ - እነዚህ አካባቢዎች እንቅስቃሴ የተከሰተበት እና የአሁኑ ምስል ከቀዳሚው ምስሎች አማካይ የተለየ ነው። አስፈላጊ ከሆነ ለእነዚህ ቅርፀቶች አስገዳጅ ሳጥኖችን ማግኘት እንችላለን።

እኔ እዚህ በ githubዎ ውስጥ ሊያገኙት በሚችሉት በዴልታክታይን ፓይዘን ክፍል ውስጥ ይህንን ለማድረግ ኮዱን አጠናቅሬያለሁ።

ደረጃ 7: TensorFlow ን በመጠቀም ዕቃዎችን ያግኙ

የ TensorFlow የመጫን ሂደቱን ከተከተሉ ፣ TensorFlow ተጭነው እየሰሩ መሆኑን አስቀድመው ሞክረዋል።

በአጠቃላይ ከቤት ውጭ ትዕይንት ውስጥ ሰዎችን ለመለየት ፣ በ COCO የመረጃ ስብስብ ላይ ቅድመ ሥልጠና የወሰዱ ሞዴሎች በጥሩ ሁኔታ ይሰራሉ - ይህ እኛ በ TensorFlow መጫኛ መጨረሻ ላይ ያወረድነው ሞዴል ነው። እኛ ለግንዛቤ ብቻ መጠቀም አለብን!

እንደገና ፣ ነገሮችን እዚህ ለማቅለል በ TFClassify Python ክፍል ውስጥ የሞዴሉን ጭነት እና ግምት ጠቅለል አድርጌያለሁ።

ደረጃ 8 በ Raspberry Pi ላይ የድር አገልጋይ ያዘጋጁ

በ Raspberry Pi ላይ የድር አገልጋይ ያዘጋጁ
በ Raspberry Pi ላይ የድር አገልጋይ ያዘጋጁ

የነገር ማወቂያ ውጤቶችን ለመድረስ ቀላሉ መንገድ የድር አሳሽ ነው ፣ ስለዚህ በ Raspberry Pi ላይ የድር አገልጋይ እናዘጋጅ። ከዚያ ስዕሎችን ከተጠቀሰው ማውጫ ለማገልገል ልናዋቅረው እንችላለን።

ለድር አገልጋይ ማዕቀፍ በርካታ አማራጮች አሉ። Flask ን መርጫለሁ። ከፓይዘን ጋር ለማራዘም እጅግ በጣም የሚዋቀር እና ቀላል ነው። እኛ የምንፈልገው “ልኬት” ተራ ስለሆነ ከበቂ በላይ ነበር።

በአዲስ virtualenv ውስጥ እንዲጭኑት ሀሳብ አቀርባለሁ ፣ ስለዚህ-

pi@raspberrypi: ~ $ mkvirtualenv webserv

(webserv) pi@raspberrypi: ~ $ pip Flask ን ይጫኑ

ከተለመደው የአውታረ መረብ ቅንብር ጋር ሊደረስበት የሚችል መሆኑን አሳሽዎ ልክ እንደ Raspberry Pi በተመሳሳይ ገመድ አልባ ላን ላይ ነው። የውጭ መዳረሻን ለመፍቀድ በበይነመረብ ራውተርዎ ላይ የወደብ ካርታ / NAT ውቅረትን መፍጠር ይችላሉ - ግን እኔ በተቃራኒው እመክራለሁ። የጻፍኩት ኮድ አጠቃላይ የበይነመረብ መዳረሻን ወደ Raspberry Pi ሲፈቅዱ እርስዎ የሚፈልጉትን ደህንነት ለማቅረብ አይሞክርም።

የፍላሽ ፈጣን ጅምር መመሪያን በመከተል ጭነትዎን ይፈትሹ

ደረጃ 9 - IFTTT ን በመጠቀም ከ Raspberry Pi የተንቀሳቃሽ ማስታወቂያዎች

IFTTT ን በመጠቀም የሞባይል ማሳወቂያዎች ከ Raspberry Pi
IFTTT ን በመጠቀም የሞባይል ማሳወቂያዎች ከ Raspberry Pi

ክስተቶች ሲከሰቱ የሞባይል ማሳወቂያዎችን በእውነት ማግኘት እፈልጋለሁ። በዚህ ሁኔታ አንድ ሰው ሲታወቅ እና የውሃው ደረጃ ሲቀንስ። ያንን ለማድረግ ያገኘሁት ቀላሉ መንገድ ፣ ብጁ የሞባይል መተግበሪያን መጻፍ ሳያስፈልግ ፣ IFTTT ን እየተጠቀመ ነው። IFTTT “ይህ ከሆነ ያ” ን የሚያመለክት ሲሆን ብዙ ዓይነት ድርጊቶችን ብዙ ዓይነት ድርጊቶችን እንዲያስነሳ ያስችለዋል። በእኛ ሁኔታ ፣ እኛ በ IFTTT Maker Webhook ማስነሻ ላይ ፍላጎት አለን። ይህ ለኤፍቲቲቲ አገልጋዩ የኤችቲቲፒ ፖስት ጥያቄን ለኛ መለያ በተመደበ ልዩ ቁልፍ ፣ ምን እንደተከሰተ ከሚገልፅ ውሂብ ጋር በመሆን የ IFTTT እርምጃን እንድናነሳ ያስችለናል። እኛ የምንወስደው እርምጃ IFTTT የሞባይል መተግበሪያን ወይም ከዚያ የበለጠ የተወሳሰበ ማንኛውንም ነገር በሞባይል መሣሪያችን ላይ ማሳወቂያ እንደመፍጠር ቀላል ሊሆን ይችላል።

ያንን እንዴት ማድረግ እንደሚቻል እነሆ-

  1. በ ifttt.com ላይ የ IFTTT መለያ ይፍጠሩ
  2. በመለያ በገቡበት ጊዜ ወደ የድር መንጠቆ አገልግሎት ቅንብሮች ገጽ ይሂዱ እና በአሳሽዎ ውስጥ ዩአርኤሉን ያስገቡ (እንደ https://maker.ifttt.com/use/ ያለ አንድ ነገር። ያ ድረ -ገጽ እርምጃዎችን ለመቀስቀስ የሚጠቀሙበት ቁልፍዎን እና ዩአርኤሉን ያሳየዎታል።.
  3. የድር መንጠቆው በዝግጅቱ ዝርዝሮች ሲቀሰቀስ የሞባይል ማሳወቂያ የሚያመነጨውን የ IFTTT አፕሌት ይፍጠሩ

    1. “የእኔ አፕልቶች” እና ከዚያ “አዲስ አፕል” ን ጠቅ ያድርጉ።
    2. “+ይህንን” ጠቅ ያድርጉ እና “የድር መንጠቆዎችን” ይምረጡ። ወደ ዝርዝሮቹ ለመቀጠል “የድር ጥያቄ ይቀበሉ” የሚለውን ጠቅ ያድርጉ
    3. ክስተትዎን ስም ይስጡ ፣ ለምሳሌ። “PoolEvent” እና “ቀስቅሴ ፍጠር” ን ጠቅ ያድርጉ
    4. “+ያንን” ጠቅ ያድርጉ እና “ማሳወቂያዎችን” ይምረጡ። ከዚያ “ከ IFTTT መተግበሪያ ሀብታም ማስታወቂያ ይላኩ” ን ይምረጡ
    5. ለ “ርዕስ” እንደ “PoolPi” ያለ ነገር ይምረጡ
    6. ለ “መልእክት” “oolል ፒ ተገኝቷል” ብለው ይፃፉ እና “ንጥረ ነገር አክል” ን ጠቅ ያድርጉ.. “እሴት 1”።
    7. ወደ ደረጃ ወደቀዱት ዩአርኤል ይመለሱ። አዲስ የተፈጠረውን አፕሌት ለመጥራት የሚጠቀምበትን ዩአርኤል ያሳያል። ያንን ዩአርኤል ይቅዱ ፣ የቦታ ያ {ውን {ክስተት} በክስተት ስም (በውጪ ምሳሌ PoolEvent) በመተካት
  4. ለተንቀሳቃሽ መሣሪያዎ ወደ IFTTT መተግበሪያ ያውርዱ ፣ ይጫኑ እና ይግቡ
  5. ሲሠራ ለማየት ይህንን የፓይዘን ስክሪፕት በእርስዎ Raspberry Pi ላይ ያሂዱ (በተንቀሳቃሽ መሣሪያዎ ላይ ለመቀስቀስ ጥቂት ሰከንዶች ወይም ደቂቃዎች ሊወስድ እንደሚችል ልብ ይበሉ)

የማስመጣት ጥያቄዎች

questions.post ('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json = {"value1": "ሰላም ማሳወቂያዎች"})

ደረጃ 10 - ወደ ራፕቤሪ ፓይ የቅብብሎሽ ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት

ወደ Raspberry Pi ቅብብል ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት
ወደ Raspberry Pi ቅብብል ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት
ወደ Raspberry Pi ቅብብል ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት
ወደ Raspberry Pi ቅብብል ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት
ወደ Raspberry Pi ቅብብል ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት
ወደ Raspberry Pi ቅብብል ኮፍያ ያክሉ እና ከሶሌኖይድ ቫልቭ ጋር ያገናኙት

ወደዚህ ደረጃ ከመቀጠልዎ በፊት የእርስዎን Raspberry Pi: ssh ን ያጥፉት እና “የሱዶ መዘጋት አሁን” ብለው ይተይቡ ፣ ከዚያ ከኃይል ያላቅቁት

ግባችን የኃይል አቅርቦቱን ወደ ሶሎኖይድ ቫልቭ ማብራት እና ማጥፋት ነው - ከኃይል አቅርቦት በሚያገኘው 24V ኤሲ ኃይል መሠረት የውሃ አቅርቦቱን ሊከፍት ወይም ሊዘጋ የሚችል ቫልቭ። ሪሌይስ የእኛ Raspberry Pi ሊሰጥ በሚችለው ዲጂታል ምልክት ላይ በመመርኮዝ ወረዳውን ሊከፍቱ ወይም ሊዘጉ የሚችሉ የኤሌክትሪክ ክፍሎች ናቸው። እዚህ የምናደርገው ለእነዚህ የ “Raspberry Pi” ዲጂታል የምልክት ፒንዎች ቅብብል ማገናኘት እና በ 24 ቮ ኤሲ የኃይል አቅርቦት እና በኤሌክትሮኖይድ ቫልቭ መካከል ያለውን ወረዳ እንዲዘጋ ማድረግ ነው።

እንደ ዲጂታል ግብዓት ወይም ውፅዓት ሆነው ሊያገለግሉ የሚችሉት በ Raspberry Pi ላይ ያሉት ፒኖች GPIO - አጠቃላይ ዓላማ ግብዓት/ውፅዓት ተብለው ይጠራሉ እና እነሱ በፒ ጎን በኩል የ 40 ፒኖች ረድፍ ናቸው። ፓይ አጥፍቶ ቅብብል ኮፍያውን ወደ ውስጥ በጥብቅ ያስገቡ። እኔ የመረጥኩት ኮፍያ በውስጡ 3 ቅብብሎች አሉት ፣ እና አንዱን ብቻ እንጠቀማለን። ከሌሎቹ ሁለቱ ጋር ማድረግ የሚችለውን ሁሉ አስቡት:)

አሁን Raspberry Pi ን እንደገና ያብሩ። በቅብብሎሽ ኮፍያ ላይ ያለው ቀይ “ኃይል” ኤልዲ በጂፒዮ በኩል ከፓይ ኃይል እያገኘ መሆኑን ማብራት አለበት። እኛ ልንቆጣጠረው እንደምንችል እንፈትሽ - ssh እንደገና ወደ Pi ፣ ፓይዘን ያስገቡ እና ይተይቡ

አስገባ gpiozero

dev = gpiozero. DigitalOutputDevice (26, initial_value = True) dev.off ()

ቅብብሎሹ ተሳታፊ መሆኑን የሚያመለክት የሚሰማ “ጠቅታ” መስማት አለብዎት ፣ እና የመጀመሪያው ቅብብል በተገናኘው ቦታ ላይ መሆኑን የሚያሳይ የ LED ማብራት ይመልከቱ። አሁን መተየብ ይችላሉ

dev.on ()

የትኛው ቅብብሎሹን ወደ “ጠፍቷል” ቦታ (ያልተለመደ ፣ እኔ አውቃለሁ…) እና ከፓይዘን መውጣት () ይሆናል።

አሁን የ jumper ገመዶችን በመጠቀም እና ረዥሙ ገመድ በ 24 ቮ የኃይል አቅርቦት እና በኤሌክትሮኖይድ ቫልቭ መካከል ያለውን ቅብብል ያገናኛል። ስዕላዊ መግለጫውን ይመልከቱ። በመጨረሻም ፣ አስማሚዎቹን በመጠቀም የሶላኖይድ ቫልቭን ከቧንቧ ጋር ያገናኙ እና ከላይ ያሉትን ትዕዛዞች በመድገም ሁሉንም ለመፈተሽ ይዘጋጁ - ውሃውን ማብራት እና ማጥፋት አለባቸው።

ከኤሌክትሮኖይድ ቫልቭ አንድ ቱቦ ያያይዙ እና ሌላውን ጫፍ በገንዳው ውስጥ በጥልቀት ያስገቡ። አሁን በኮምፒተር ቁጥጥር የሚደረግበት የመዋኛ ገንዳ አናት ስርዓት አለዎት ፣ እና መቼ እንደሚሰራ ለመንገር ዳሳሽ ማገናኘት ጊዜው አሁን ነው።

ደረጃ 11 የውሃ ደረጃ ዳሳሽ ያገናኙ

የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ
የውሃ ደረጃ ዳሳሽ ያገናኙ

የውሃ ደረጃ ዳሳሽ በቀላሉ ተንሳፋፊው ሲወድቅ የኤሌክትሪክ ዑደትን የሚያገናኝ ተንሳፋፊ ነው ፣ እና ሲንሳፈፍ ይሰብራል። በትክክለኛው ከፍታ ላይ ባለው ገንዳ ውስጥ ካስገቡት የውሃው መጠን በቂ በሚሆንበት ጊዜ ተንሳፋፊው ከፍ ይላል ፣ ግን በቂ ውሃ በማይኖርበት ጊዜ ይወድቃል።

Raspberry Pi ሁኔታውን ለማወቅ የውሃ ደረጃ ዳሳሽ እኛ ክፍት ወይም ዝግ ወረዳ እንዲሰማን ፒ እንፈልጋለን። እንደ እድል ሆኖ ያ በጣም ቀላል ነው - ቅብብሎቹን ለመቆጣጠር እንደ ዲጂታል ውፅዓት የምንጠቀምባቸው ተመሳሳይ የ GPIO አያያorsች እንደ ግብዓቶች ሆነው ሊያገለግሉ ይችላሉ (ስለዚህ እኔ በጂፒዮ ውስጥ እኔ)። በተለይ ፣ በጂፒኦ አያያዥ ላይ አንድ የአነፍናፊውን ሽቦ ወደ +3.3V እና ሌላውን አነፍናፊ ሽቦን እንደ መጎተት ግብዓት (እኛ በመደበኛነት በ GND ቮልቴጅ ደረጃ ይሆናል) ወደሚለው ፒን ካገናኘን ያ ፒን ይለካል ዲጂታል “ከፍተኛ” ወይም “በርቷል” ቮልቴጅ የውሃ ደረጃ ዳሳሽ ወረዳውን ሲዘጋ ብቻ - የውሃው ደረጃ ዝቅተኛ በሚሆንበት ጊዜ። እኔ ከላይ በምስሉ ላይ ምልክት ያደረግኩትን የ GPIO ፒን 16 ን እንደ ግብዓት እጠቀም ነበር።

ፒኑን እንደ ግብዓት ለማዋቀር እና የአሁኑን ሁኔታ ለመፈተሽ የፓይዘን ኮድ

አስገባ gpiozero

level_input = gpiozero. Button (16) water_low = level_input.is_pressed

አንድ ሊገጥም የሚችል ችግር አነፍናፊው ሁኔታውን ሲቀይር በአከባቢ እና በውጭ ግዛቶች መካከል በፍጥነት ማወዛወዝ ነው። ለዚያ መፍትሔው “ማወዛወዝ” በመባል የሚታወቅ ሲሆን እርምጃ ከመውሰዱ በፊት ወጥ የሆነ የስቴት ለውጥን ይፈልጋል። የ GPIOZERO ቤተ -መጽሐፍት ያንን ለማድረግ ኮድ አለው ፣ ግን በሆነ ምክንያት ያ ኮድ ለእኔ በደንብ አልሰራም። አንድ ወጥ የሆነ የስቴት ለውጥ ሲታወቅ ፣ እዚህ በማከማቻዬ ውስጥ ሊያገኙት የሚችሉት የ IFTTT ማንቂያዎችን ለመቀስቀስ ቀለል ያለ loop ጻፍኩ።

ደረጃ 12 ሁሉንም አንድ ላይ ለማሰር ኮድ ይፃፉ

ሁሉንም ለማሰር ኮድ ይፃፉ
ሁሉንም ለማሰር ኮድ ይፃፉ

ይሀው ነው. የእኛ ማዋቀር ተጠናቅቋል። ነገሮችን ወደ ሙሉ ስርዓት ለማያያዝ የራስዎን ኮድ መጻፍ ወይም እኔ የምሰጠውን ኮድ መጠቀም ይችላሉ። ይህንን ለማድረግ የማውጫውን አወቃቀር ይፍጠሩ እና የውሂብ ማከማቻውን እንደዚያ ያድርጉት -

mkdir poolpi

cd poolpi git clone

በመቀጠል ifttt_url.txt የተሰየሙትን ፋይሎች በሚስጥር ቁልፍዎ ለእራስዎ IFTTT ድር መንጠቆ ዩአርኤል እንዲኖራቸው በእንቅስቃሴ_አለርት እና የውሃ_ደረጃ ማውጫዎች ውስጥ ያርትዑ። ለተለያዩ ድርጊቶች ሁለት የተለያዩ የድር መንጠቆዎችን መጠቀም ይችላሉ።

በመጨረሻም ፣ ይህ ኮድ በራስ -ሰር እንዲሠራ እንፈልጋለን። ያንን ለማከናወን ቀላሉ መንገድ በሊኑክስ ክራንታብ አገልግሎት በኩል ነው። ለሁለት ዋና ተግባራት አንዳንድ የ crontab መስመሮችን ማከል እንችላለን-

  1. በእያንዳንዱ ዳግም ማስነሳት ላይ የእኛን ሶስት መርሃግብሮች ያካሂዱ - የነገር መፈለጊያ ፣ የውሃ ደረጃ ዳሳሽ እና የድር አገልጋይ
  2. የድሮ ስዕሎችን እና የድሮ ቪዲዮ ፋይሎችን በመሰረዝ የውጤት ማውጫውን ያፅዱ (ከ 1 ቀን በላይ የቆዩ ፋይሎችን እና ከ 7 ቀናት በላይ የቆዩ ስዕሎችን ለመሰረዝ መርጫለሁ - ለመሞከር ነፃነት ይሰማዎ)

ያንን ዓይነት crontab -e ለማድረግ የናኖ ጽሑፍ አርታዒዎን ይከፍታል። የሚከተሉትን መስመሮች በፋይሉ ግርጌ ላይ ያክሉ ፦

0 1 * * * አግኝ/ቤት/pi/poolpi/output -type f -name " *.avi" -mtime +1 -delete

0 2 * * * አግኝ/ቤት/pi/poolpi/output -type f -name " *.jpg" -mtime +7 -delete @reboot python3 /home/pi/poolpi/motion_alert/webserv/webserv.py @reboot python3 /ቤት /pi/poolpi/motion_alert/motion_obj_alert.py @reboot python3 /home/pi/poolpi/water_level/test_water_level.py

በመጨረሻም የእርስዎን Raspberry Pi እንደገና ያስነሱ። ገንዳዎ ሙሉ እና ደህንነቱ የተጠበቀ እንዲሆን አሁን ዝግጁ ነው።

ከማዋቀሩ ፣ ከኮዱ ጋር ያስቡ እና ጠቃሚ ሆኖ ካገኙት የእኔን የ github ማከማቻን ኮከብ ማድረጉ እና በትምህርቱ ላይ አስተያየት መስጠትን አይርሱ። ሁል ጊዜ የበለጠ ለማወቅ እጓጓለሁ።

ደስተኛ መስራት!

የ IoT ፈተና
የ IoT ፈተና
የ IoT ፈተና
የ IoT ፈተና

በ IoT ፈተና ውስጥ ሯጭ

የሚመከር: