ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1 - መሣሪያውን መምረጥ
- ደረጃ 2 - ስርዓቱን መንደፍ
- ደረጃ 3 የአደጋ ጊዜ ሁኔታዎችን ማስተናገድ
- ደረጃ 4 - ስርዓቱን 24/7 ማሄድ
- ደረጃ 5 የደመና ክትትል
- ደረጃ 6 - እሱ ይሠራል
ቪዲዮ: በ Raspberry Pi & HC-SR04 Ultrasonic Sensor እና Cloud4RPi ቁጥጥር የሚደረግበት ዘመናዊ የቡና ማሽን ፓምፕ
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
በንድፈ ሀሳብ ፣ ለጠዋት ጽዋዎ ወደ ቡና ማሽን በሄዱ ቁጥር የውሃ ማጠራቀሚያውን ለመሙላት አንድ ሃያ-አንድ ዕድል ብቻ አለ። በተግባር ግን ፣ ማሽኑ በሆነ መንገድ ይህንን ሥራ ሁል ጊዜ ለእርስዎ የሚጭንበት መንገድ የሚያገኝ ይመስላል። ቡና በፈለጉ ቁጥር አስፈሪውን “የውሃ ማጠራቀሚያውን ይሙሉ” የሚል መልእክት የማግኘት ዕድሉ ሰፊ ነው። የሥራ ባልደረቦቼ ስለዚህ ጉዳይ ተመሳሳይ ስሜት አላቸው። እኛ የራሳችን ነርሶች በመሆናችን ይህንን የሚያቆምበትን ቴክኖሎጂ ለመተግበር ወሰንን።
አቅርቦቶች
የእኛ መሣሪያዎች
እኛ SAECO Aulika Focus የቡና ማሽን አለን። እስከዚህ ቀን ድረስ ከመደበኛ 5 ጋሎን (19 ሊ) የውሃ ጠርሙስ የማሽኑን የውሃ ማጠራቀሚያ ለመሙላት የእጅ ፓምፕ እንጠቀም ነበር።
ግቦቻችን
- በአንድ ዓይነት ተቆጣጣሪ ወይም በማይክሮ ኮምፒውተር የሚንቀሳቀስ የኤሌክትሪክ ፓምፕን በቅብብሎሽ ይጠቀሙ።
- ስርዓታችን መቼ እንደሚሞላው እንዲያውቅ በቡና ማሽኑ ታንክ ውስጥ ያለውን የውሃ መጠን የሚለካበት መንገድ ይኑርዎት።
- ከተንቀሳቃሽ መሣሪያ በእውነተኛ ሰዓት ውስጥ ስርዓቱን የሚቆጣጠርበት ዘዴ ይኑርዎት።
- በስርዓቱ ውስጥ የሆነ ነገር ከተበላሸ ማሳወቂያዎችን (በ Slack ወይም ተመሳሳይ አገልግሎት በኩል) ይቀበሉ።
ደረጃ 1 - መሣሪያውን መምረጥ
ፓም
ፈጣን የድር ፍለጋ ለእርስዎ የውሃ ጠርሙስ ምርጫ የተነደፉ በርካታ የኤሌክትሪክ ፓምፕ ሞዴሎችን ያሳያል። እንደነዚህ ያሉ ፓምፖች ብዙውን ጊዜ በ ON/OFF ማብሪያ/ቁጥጥር (ለምሳሌ ፣ ትኩስ ፍሮስት A12 ወይም SMixx ХL-D2) ይቆጣጠራሉ። ለፕሮጀክታችን የመረጥነው ፓምፕ እዚህ አለ።
የመቆጣጠሪያ መሣሪያ
በሚከተሉት ጥቅሞች ምክንያት ብዙ መሣሪያዎችን ሞክረናል ግን በ Raspberry Pi ላይ ተቀመጥን-
- የአቅራቢያ ዳሳሽ ለማገናኘት የሚያስችለን GPIO አለው
- እሱ Python ን ይደግፋል
አዲስ የ Raspbian Buster Lite እና Python 3 ን ለማስኬድ የሚያስፈልጉትን ሁሉ ጫን።
ፓምumpን እንዴት እንደቀየርን
ሀይሉን ለመቆጣጠር ፣ ለተለዋጭ የአሁኑ ተስማሚ የመካከለኛ ኃይል (12 ቮ/2 ኤ) ጠንካራ የስቴት ቅብብል መርጠናል። ማስተላለፊያው ፓም pumpን ወደ መውጫው ያገናኛል እና በ Raspberry Pi ዲጂታል ፒን ቁጥጥር ይደረግበታል።
የውሃ ደረጃን እንዴት እንደምንፈትሽ
የቡና ማሽኑን ግንባታ ላለመቀየር ለእኛ አስፈላጊ ነበር ፣ ስለሆነም የውሃውን ደረጃ ለመለካት HC-SR04 Ultrasonic proximity sensor ን ለመጠቀም ወሰንን።
ለአሳሽ አነፍናፊዎቹ ሁለት ቀዳዳዎች ያሉት ብጁ የውሃ ማጠራቀሚያ ሽፋን በ 3d ታትመናል። በቀላሉ ለአነፍናፊው የ GitHub ቤተ-መጽሐፍትን አገኘን። በዚህ ጊዜ ሁሉም ዝግጅቶች ተጠናቀዋል።
ደረጃ 2 - ስርዓቱን መንደፍ
የስርዓት አመክንዮ
ስርዓቱ የተነደፈው በሚከተለው ቀላል አመክንዮ ውስጥ ነው-
- ስርዓቱ በአነፍናፊው እና በውሃው ወለል መካከል ያለውን ርቀት ያለማቋረጥ ይከታተላል።
- የርቀት ለውጥ ከመነሻ እሴት በላይ በሄደ ቁጥር ስርዓቱ ስለ ሁኔታው መረጃ ወደ ደመና ይልካል።
- ርቀቱ ከሚፈቀደው ከፍተኛ እሴት በላይ ከሄደ (ታንኩ ባዶ ነው) ፣ ስርዓቱ ፓም pumpን ያነቃቃል እና ርቀቱ ከሚፈቀደው ዝቅተኛው እሴት በታች ከሆነ በኋላ ያጠፋል።
- የስርዓቱ ሁኔታ በተለወጠ ቁጥር (ለምሳሌ ፣ ፓም activ ይሠራል) ፣ ደመናውን ያሳውቃል።
ስህተት ከተከሰተ ማሳወቂያ ወደ Slack ሰርጥ ይላካል።
የቡና ማሽኑ ስራ ፈት በሚሆንበት ጊዜ ስርዓቱ በደቂቃ አንድ ጊዜ በመመርመሪያ መረጃ የደመና አገልግሎቱን ያወጋዋል። በተጨማሪም ፣ ሁኔታውን በየ 5 ደቂቃው ወደ ደመና ይልካል።
ፓም active በሚሠራበት ጊዜ ስርዓቱ ብዙ ጊዜ መረጃ ይልካል ነገር ግን በየግማሽ ሴኮንድ ከአንድ ጊዜ አይበልጥም።
def ላክ (ደመና ፣ ተለዋዋጮች ፣ ዲስት ፣ ስህተት_ኮድ = 0 ፣ ኃይል = ሐሰት): pump_on = is_pump_on () በመቶ = calc_water_level_percent (dist) ተለዋዋጮች ['ርቀት'] ['እሴት'] = የርቀት ተለዋዋጮች ['WaterLevel'] [' እሴት '] = መቶኛ ተለዋዋጮች [' PumpRelay '] [' value '] = pump_on ተለዋዋጮች [' ሁኔታ '] [' እሴት '] = calc_status (የስህተት ኮድ ፣ መቶኛ ፣ pump_on)
የአሁኑ = ጊዜ ()
ሁለንተናዊ last_sending_time ኃይል ከሆነ ወይም የአሁኑ - last_sending_time> MIN_SEND_INTERVAL: ንባቦች = cloud.read_data () cloud.publish_data (ንባቦች) last_sending_time = current
ከፓም with ጋር መስራት
ለፓምፕ አሠራር አመክንዮ መሠረት የሚከተሉትን ቋሚዎች እንገልፃለን።
# ጂፒኦ ፒን (BCM) GPIO_PUMP = 4 GPIO_TRIGGER = 17 GPIO_ECHO = 27
# ፓምፕ
START_PUMP = 1 STOP_PUMP = 0 PUMP_BOUNCE_TIME = 50 # ሚሊሰከንዶች PUMP_STOP_TIMEOUT = 5 # ሰከንዶች
አስፈላጊ: ፒን 4 ን የሚጠቀሙ ከሆነ ግጭቶችን ለማስወገድ የ 1-Wire raspi-config አማራጭን ማሰናከልዎን አይርሱ።
በፕሮግራሙ ጅምር ላይ የመልሶ መደወልን እናስመዘግባለን እና የመጀመሪያውን ሁኔታ አጥፍተናል።
ፓም pumpን ለሚቀይረው ተግባር ኮዱ እነሆ-
def toggle_pump (እሴት): pump_disabled ከሆነ is_pump_on () ከሆነ = = እሴት log_debug ("[x] % s" % ('START' ከሆነ ሌላ እሴት 'አቁም')) GPIO.setup (GPIO_PUMP ፣ GPIO. OUT) GPIO.output (GPIO_PUMP ፣ እሴት) # ማፍሰስ ጀምር/አቁም
ከላይ ባለው የማስነሻ ኮድ እንደተገለፀው ፣ ቅብብላው ሲበራ ፣ የሚከተለው መልሶ መደወያ ይባላል።
pump_on = የውሸት def pump_relay_handle (ፒን): ዓለም አቀፍ pump_on pump_on = GPIO.input (GPIO_PUMP) log_debug ("የፓምፕ ማስተላለፊያ ወደ % d" % pump_on ተቀይሯል)
በመደወያው ውስጥ ፣ የፓም’sን የአሁኑን ሁኔታ ወደ ተለዋዋጭ እናስቀምጠዋለን። በመተግበሪያው ዋና ዑደት ውስጥ ፣ ከዚህ በታች እንደሚታየው ፓም to ሲቀያየር አፍታውን መለየት እንችላለን-
def is_pump_on (): ዓለም አቀፍ pump_on መመለስ pump_on ላይ
GPIO.vent_detected (GPIO_PUMP) ከሆነ
is_pouring = is_pump_on () # … log_debug ('[!!
ርቀትን መለካት
የአልትራሳውንድ ቅርበት ዳሳሽ በመጠቀም ወደ ውሃው ወለል ያለውን ርቀት ለመለካት በጣም ቀላል ነው። በእኛ ማከማቻ ውስጥ ዳሳሽ እንዲሞክሩ የሚያስችሉዎትን ሁለት የፓይዘን ስክሪፕቶችን አካፍለናል።
በእውነተኛ አፕሊኬሽኖች ውስጥ ፣ የአነፍናፊ ንባቡ ውጤት እና የውሃ ማወዛወዝ ምክንያት ሊለዋወጥ ይችላል። በአንዳንድ ሁኔታዎች ንባቦች ሙሉ በሙሉ ሊጠፉ ይችላሉ። N የቅርብ ጊዜ እሴቶችን የሚያከማች ፣ ጫፎችን የሚጥል እና የቀሩትን መለኪያዎች አማካይ የሚያሰላ BounceFilter ክፍልን ተግባራዊ እናደርጋለን። የመለኪያ ሂደቱ በሚከተለው ባልተመሳሰለ ስልተ ቀመር ይተገበራል።
# የመጨረሻዎቹን የአነፍናፊ መለኪያዎች ንባቦች = BounceFilter (መጠን = 6 ፣ discard_count = 1) ይይዛል
reading_complete = threading. Event ()
def wait_for_distance ():
reading_complete.clear () thread = threading. Thread (target = read_distance) thread.start ()
ካልተነበበ_ሞላው። ይጠብቁ (MAX_READING_TIMEOUT)
log_info ('የንባብ ዳሳሽ ማብቂያ') መመለስ ምንም የተመለሱ ንባቦች.avg ()
def read_distance ():
ሞክር: እሴት = hcsr04.raw_distance (sample_size = 5) የተጠጋጋ = እሴት እሴት ካልሆነ በስተቀር ሌላ ምንም ክብ (እሴት ፣ 1) ንባቦች።: reading_complete.set ()
በማጣሪያዎቹ ውስጥ የማጣሪያውን ሙሉ ትግበራ ማግኘት ይችላሉ።
ደረጃ 3 የአደጋ ጊዜ ሁኔታዎችን ማስተናገድ
አነፍናፊው ቢቃጠል ፣ ቢወድቅ ወይም የተሳሳተ ቦታ ቢጠቁምስ? በእጅ እርምጃ መውሰድ እንድንችል እንደዚህ ያሉ ጉዳዮችን ሪፖርት የምናደርግበት መንገድ ያስፈልገን ነበር።
አነፍናፊው የርቀት ንባቦችን ማቅረብ ካልቻለ ፣ ስርዓቱ የተቀየረውን ሁኔታ ወደ ደመና ይልካል እና ተጓዳኝ ማሳወቂያ ይፈጥራል።
አመክንዮው ከዚህ በታች ባለው ኮድ ተገል isል።
ርቀት = ተጠባቂ_እርቀት () # ርቀቱ የሌለ ከሆነ የአሁኑን የውሃ ጥልቀት ያንብቡ - log_error ('የርቀት ስህተት!') ማሳወቂያ_በጀርባ (calc_alert (SENSOR_ERROR)) ይላኩ (ደመና ፣ ተለዋዋጮች ፣ ርቀት ፣ ስህተት_ኮድ = SENSOR_ERROR ፣ ኃይል = እውነት)
አነፍናፊው በቦታው ላይ በሚሆንበት ጊዜ ሊቆይ የሚገባው የአሠራር የውሃ ደረጃ አለን። የአሁኑ የውሃ ደረጃ በዚህ ክልል ውስጥ ቢወድቅ እንፈትሻለን-
# ከአነፍናፊው ወደ ውሃ ደረጃ ያለው ርቀት # በቡና ማሽን የውሃ ማጠራቀሚያ MIN_DISTANCE = 2 # ሴሜ MAX_DISTANCE = 8 # ሴሜ
# ርቀቱ ከተጠበቀው ክልል ውጭ ነው - ማፍሰስ አይጀምሩ
ርቀት> MAX_DISTANCE * 2: log_error ('ርቀቱ ከክልል ውጭ ነው። %.2f' % ርቀት) ከቀጠለ
ስህተት ሲከሰት ፓም pump ገባሪ ከሆነ እናጥፋለን።
ከሆነ is_pump_on () እና ቅድመ -ርቀት <STOP_PUMP_DISTANCE + DISTANCE_DELTA: log_error ('[!] የፓም Emergency ድንገተኛ ማቆሚያ። ከርቀት ዳሳሽ ምንም ምልክት የለም')
toggle_pump (STOP_PUMP)
እንዲሁም ጠርሙሱ ውሃ ሲያልቅ ጉዳዩን እናስተናግዳለን። ፓም runs በሚሠራበት ጊዜ የውሃው ደረጃ ካልተለወጠ እንፈትሻለን። እንደዚያ ከሆነ ስርዓቱ ለ 5 ሰከንዶች ይጠብቃል እና ከዚያ ፓም pump ጠፍቶ እንደሆነ ይፈትሻል። ከሌለው ታዲያ ስርዓቱ የድንገተኛ ፓምፕ መዘጋትን ተግባራዊ ያደርጋል እና የስህተት ማሳወቂያ ይልካል።
PUMP_STOP_TIMEOUT = 5 # secsemergency_stop_time = የለም
def set_emergency_stop_time (አሁን ፣ እያፈሰሰ ነው) ፦
ዓለምአቀፍ የድንገተኛ ጊዜ_አስቸኳይ_አስቸኳይ ጊዜ_አቋራጭ_አሁን = አሁን + PUMP_STOP_TIMEOUT ካልሆነ ሌላ
def check_water_source_empty (አሁን)
የአደጋ ጊዜ_አቁም_ጊዜን እና አሁን> የድንገተኛ ጊዜ_አቁም_ ጊዜን ይመልሱ
# --------- ዋና ዙር -----------
GPIO.
ዓለም አቀፍ pump_disabled
check_water_source_empty (አሁን): log_error ('[!] የፓም Emergency ድንገተኛ ማቆሚያ / የውሃ ምንጭ ባዶ ነው') toggle_pump (STOP_PUMP) pump_disabled = እውነት
ከላይ በአደጋ ጊዜ ማቆሚያ ወቅት የተፈጠረ የመልዕክት ምዝግብ ምሳሌ ነው።
ደረጃ 4 - ስርዓቱን 24/7 ማሄድ
በመሣሪያው ላይ ያለው ኮድ ተስተካክሎ ያለምንም ችግር ይሠራል። እኛ እንደ አገልግሎት አስጀምረነዋል ፣ ስለዚህ Raspberry Pi እንደገና ከተነሳ እንደገና ይጀምራል። ለምቾት ፣ አገልግሎቱን ለማስኬድ ፣ አገልግሎቱን ለማስኬድ እና ምዝግብ ማስታወሻዎችን ለማየት የሚረዳ Makefile ን ፈጥረናል።
. PHONY: ጫን አሂድ ጀምር የማቆም ሁኔታ ምዝግብ ማስታወሻ ማሰማራት MAIN_FILE: = ቡና-ፓምፕ/main.py SERVICE_INSTALL_SCRIPT: = service_install.sh SERVICE_NAME: = coffee-pump.service
ጫን
chmod +x $ (SERVICE_INSTALL_SCRIPT) sudo./$(SERVICE_INSTALL_SCRIPT) $ (MAIN_FILE)
አሂድ
sudo python3 $ (MAIN_FILE)
ጀምር ፦
sudo systemctl start $ (SERVICE_NAME)
ሁኔታ ፦
sudo systemctl ሁኔታ $ (SERVICE_NAME)
ተወ:
sudo systemctl stop $ (SERVICE_NAME)
መዝገብ
sudo journalctl -u ቡና -ፓምፕ -ከዛሬ ጀምሮ
ማሰማራት
rsync -av የቡና-ፓምፕ ዳሳሽ-ማዋቀር Makefile *.sh pi@XX. XX. XXX. XXX: ~/
ይህንን ፋይል እና ሁሉንም አስፈላጊ ስክሪፕቶች በእኛ ማከማቻ ውስጥ ማግኘት ይችላሉ።
ደረጃ 5 የደመና ክትትል
የቁጥጥር ፓነልን ለመተግበር Cloud4RPi ን እንጠቀም ነበር። የስርዓቱን አስፈላጊ መለኪያዎች ለማመልከት መጀመሪያ መግብሮችን አክለናል።
በነገራችን ላይ ለ STATUS ተለዋዋጭ መግብር በእሴቱ ላይ በመመርኮዝ የተለያዩ የቀለም መርሃግብሮችን መጠቀም ይችላል (ከላይ ያለውን ምስል ይመልከቱ)።
ተለዋዋጭ ውሂብን ለማሳየት የገበታ መግብር አክለናል። ከዚህ በታች ባለው ምስል ውስጥ ፓም pump እንደበራ እና እንደጠፋ እና የየራሳቸውን የውሃ ደረጃዎች ማየት ይችላሉ።
ረዘም ያለ ጊዜን ከተተነተኑ ጫፎችን ማየት ይችላሉ - ያ ፓም pump ሲሠራ ነበር።
Cloud4RPi እንዲሁ የተለያዩ የማለስለስ ደረጃዎችን እንዲያዘጋጁ ያስችልዎታል።
ደረጃ 6 - እሱ ይሠራል
ይሰራል! የቁጥጥር ፓነሉ ሙሉ በሙሉ ከዚህ በታች እንደሚታየው ይመስላል።
በአሁኑ ጊዜ አውቶማቲክ ፓምፕችን ለበርካታ ሳምንታት እየሠራ ሲሆን እኛ ማድረግ ያለብን የውሃ ጠርሙሶችን መተካት ነው። ለፕሮጀክታችን ሙሉ ኮድ በእኛ GitHub ማከማቻ ውስጥ ይገኛል።
የሚመከር:
በ NodeMCU በመተግበሪያ ቁጥጥር የሚደረግበት ዘመናዊ ማሰሮ እንዴት እንደሚሠራ: 8 ደረጃዎች
በመተግበሪያ ቁጥጥር በሚደረግበት NodeMCU አማካኝነት ስማርት ማሰሮ እንዴት እንደሚሠሩ በዚህ መመሪያ ውስጥ በ ESP32 ቁጥጥር የሚደረግበት ስማርት ፖት እና ለስማርትፎን (ለ iOS እና ለ Android) መተግበሪያ እንገነባለን። ለግንኙነቱ እና ለብላይንክ ቤተመፃህፍት NodeMCU (ESP32) እንጠቀማለን። ለደመና IoT እና በስማርትፎን ላይ ያለው መተግበሪያ በመጨረሻ እኛ
የእናቴ አምፖል - በ WiFi ቁጥጥር የሚደረግበት ዘመናዊ አምፖል -5 ደረጃዎች (ከስዕሎች ጋር)
የእናቴ መብራት - ዋይፋይ የሚቆጣጠረው ስማርት መብራት - ከ 230 ሺህ ዓመታት በፊት የሰው ልጅ እሳቱን መቆጣጠር ተምሯል ፣ ይህ በሌሊት መሥራት ሲጀምር እንዲሁም ከእሳቱ ውስጥ ብርሃንን በመጠቀም ወደ አኗኗሩ ትልቅ ለውጥ ያስከትላል። ይህ የቤት ውስጥ መብራት መጀመሪያ ነው ማለት እንችላለን። አሁን እኔ
በአርዱዲኖ ቁጥጥር የሚደረግበት DIY የቡና ጥብስ 13 ደረጃዎች (ከስዕሎች ጋር)
በአርዱዲኖ ቁጥጥር ስር ያለ DIY የቡና ጥብስ-በዚህ አስተማሪ ውስጥ ወደ ሙሉ አውቶማቲክ እና የሙቀት ቁጥጥር ወደሚደረግበት የቤት ቡና ጥብስ ለመቀየር የሞቀ አየር ፖፕኮርን ማሽንን በማሻሻል ላይ እንመለከታለን። ቤት ውስጥ ቡና ማብሰል በሚገርም ሁኔታ ቀላል ነው ፣ እና እንደ መጥበሻ መሰረታዊ ነገር እንኳን
በብሉቱዝ ቁጥጥር የሚደረግበት አርዱዲኖ ኤልኢዲ የቡና ጠረጴዛ - 10 ደረጃዎች (ከስዕሎች ጋር)
በብሉቱዝ ቁጥጥር የሚደረግበት አርዱinoኖ ኤልኢዲ የቡና ጠረጴዛ - ይህ የመጀመሪያው እውነተኛ የአርዱዲኖ ፕሮጀክት ነበር እና እንዲሁም የመጀመሪያ አስተማሪዬ ነው ስለዚህ በአስተያየቶቹ ውስጥ ደግ ይሁኑ :) ለማወቅ እና ዝርዝር መመሪያዎችን ለመስጠት የተወሰነ ጊዜ የፈጀብኝን ጥያቄዎች ለመሞከር እና ለመመለስ ፈልጌ ነበር። እርስዎ ከሆ ጋር በጣም ያውቃሉ
በስማርትፎን ቁጥጥር የሚደረግበት ዘመናዊ ግዢ ጋሪ 7 ደረጃዎች
በስማርትፎን ቁጥጥር የሚደረግበት ዘመናዊ የገበያ ጋሪ - የገበያ አዳራሾችን መጎብኘት አስደሳች ሊሆን ይችላል። ነገር ግን እቃዎችን በሚሞሉበት ጊዜ የገቢያ ጋሪውን መጎተት በጣም የሚያበሳጭ ነገር ነው። በእነዚያ ጠባብ መተላለፊያዎች ውስጥ የመግፋት ሥቃይ ፣ እነዚያ ሹል ተራዎችን ማድረግ! ስለዚህ ፣ እርስዎ የሚያቀርቡት (ዓይነት) እዚህ አለ