ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1 - ሽቦ
- ደረጃ 2 የጭነት ህዋስዎን እንዲጠቀሙበት ያድርጉ
- ደረጃ 3 - መደበኛ የውሂብ ጎታ
- ደረጃ 4 የጭነት ህዋስ ኮድ መስጠት
- ደረጃ 5 የውሃ ዳሳሹን ኮድ መስጠት
- ደረጃ 6: የአቅራቢያ ዳሳሽ ኮድ መስጠት
- ደረጃ 7 Stepper Motors ን ኮድ ማድረግ
- ደረጃ 8: ኤልሲዲውን ኮድ ማድረግ
- ደረጃ 9: መጨረሻው
ቪዲዮ: አውቶማቲክ የቤት እንስሳት ምግብ አከፋፋይ: 9 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
የቤት እንስሳዎን ለመመገብ በጣም ብዙ ጊዜ እንዳጠፋ ተሰምቶዎት ያውቃል? በበዓል ላይ ሳሉ የቤት እንስሳትዎን እንዲመግብ አንድ ሰው መደወል ነበረበት? አሁን ባለው የትምህርት ቤት ፕሮጀክት ሁለቱንም ጉዳዮች ለማስተካከል ሞክሬያለሁ - ፔትፌድ!
አቅርቦቶች
Raspberry Pi 3b
የባር ጫን ህዋስ (10 ኪ.
HX711 የጭነት ሕዋስ ማጉያ
የ Waterlevel ዳሳሽ (https://www.dfrobot.com/product-1493.html)
ለአልትራሳውንድ ቅርበት ዳሳሽ
ኤልሲዲ 16-ፒኖች
2x stepper ሞተር 28byj-48
2x stepper ሞተር ሾፌር ULN2003
ደረጃ 1 - ሽቦ
ብዙ ኬብሎች እዚህ። የጃምፐር ገመዶችዎን ያውጡ እና መሰካት ይጀምሩ!
ደረጃ 2 የጭነት ህዋስዎን እንዲጠቀሙበት ያድርጉ
የጭነት ማስቀመጫውን ለመጠቀም በመጀመሪያ ከሁለት ሳህኖች ጋር ማያያዝ አለብን -የታችኛው ሳህን እና ምግባችንን የምንመዝንበት ሳህን።
የሚፈልጓቸው ብሎኖች የሚጣጣሙ ብሎኖች ያሉት የ M4 ጥንድ ጥንድ እና ከተገጣጠሙ ብሎኖች ጋር የ M5 ጥንድ ጥንድ ናቸው። ቀዳዳዎቹን ለመሥራት ትንሽ ቁፋሮ እጠቀም ነበር።
(ፎቶ
ደረጃ 3 - መደበኛ የውሂብ ጎታ
የእኛ ዳሳሾች መረጃ በውሂብ ጎታ ውስጥ መቀመጥ አለበት። የፓይዘን ፋይሎች ከመረጃ ቋቱ ጋር እንዲገናኙ ከዚህ በታች ይመልከቱ።
ከዚያ የውቅረት ፋይል ያስፈልግዎታል
[connector_python] ተጠቃሚ = * የተጠቃሚ ስምዎ * አስተናጋጅ = 127.0.0.1 #if local port = 3306 password = * yourpassword * database = * yourdb * [application_config] driver = 'SQL Server'
ደረጃ 4 የጭነት ህዋስ ኮድ መስጠት
RPi.
ሁሉንም ቤተመፃህፍቶቻችንን ካስመጣን በኋላ (ማስታወሻ ፣ የጭነት ሴሉን ለማሽከርከር የ HX711 ቤተ -መጽሐፍትን እየተጠቀምን ነው) የእኛን ትክክለኛ ኮድ መጻፍ መጀመር እንችላለን።
TARRA_CONSTANT = 80600
GRAM_CONSTANT = 101
የእኛን ቋሚዎች ለማወቅ በመጀመሪያ TARRA_CONSTANT = 0 እና GRAM_CONSTANT = 1 ን ያዘጋጁ።
ቀጥሎ ምንም የሚዛን ነገር በማይኖርበት ጊዜ የእኛ የጭነት ሴል የሚያነብበትን ዋጋ ማወቅ አለብን። ይህ እሴት TARRA_CONSTANT ይሆናል።
ስለ GRAM_CONSTANT ፣ ክብደቱን የሚያውቁትን ነገር በቀላሉ ይውሰዱ (እኔ የስፓጌቲ ጥቅል ተጠቅሜያለሁ) ፣ ክብደቱን እና የጭነቱን ሕዋስ ንባቡን ከእቃው ትክክለኛ ክብደት ጋር ይከፋፍሉ። ለእኔ ይህ 101 ነበር።
ክፍል LoadCell (threading. Thread):
def _init _ (ራስን ፣ ሶኬት ፣ ኤልሲዲ) - ክር መዘርጋት።. = lcd
እዚህ የ LoadCell ክፍልን እናስጀምራለን እና ፒኖቹን እናሳያለን።
def run (ራስን):
ሞክር: ሳለ እውነት ነው። 0) ህትመት ("ክብደት ፦ {0}" ["actionTime"] self.socket.emit ('data_weight', {"id": historyId, "Weight": db_weight, "Time": DataRepository.serializeDateTime (actionTime)}) print ("zou moeten emitten") writeWeight = "ክብደት:" + str (db_weight) msg = "PETFEED" LCDWrite.message () int (db_weight [:-2]) <= 100: StepperFood.run () time.sleep (20) Exception as e: print ("በመመዘን ላይ ስህተት" + str (ሠ))
ደረጃ 5 የውሃ ዳሳሹን ኮድ መስጠት
ከውጪ ማከማቻዎች የጊዜ ማስመጣት ክር። የውሂብ ማከማቻ የውሂብ ማከማቻ ከ RPi ማስመጣት GPIOGPIO.setmode (GPIO. BCM) GPIO.setwarnings (ሐሰት) GPIO_Water = 18 GPIO.setup (GPIO_Water ፣ GPIO. IN) ክፍል WaterSensor (threading. ራስን ፣ ሶኬት) ፦ ክር ።. ሁኔታ "] እርምጃ = ውሃ [" እርምጃ "] DataRepository.insert_water (str (status) ፣ action) data_water = DataRepository.get_data_sensor (2) historyId = data_water [" SensorsHistory "] value = data_water [" value "] value == "0": እሴት = "te weinig water" ሌላ: እሴት = "genoeg water" actionTime = data_water ["actionTime"] self.socket.emit ('data_water', {"id": historyId, "value": value, "ጊዜ" ፦ DataRepository.serializeDateTime (actionTime) ፣ "action": action}) time.sleep (5) Exception from ex በስተቀር: print (ex) print ('error bij watersensor') def is_water (self): status = GPIO. ግቤት (GPIO_Wate r) self.vorige_status == 0 እና ሁኔታ == 1: ህትመት ('የውሃ ጌዴቴክትደር') sensorData = {"status": status, "action": "water gedetecteerd"} self.vorige_status = status status = GPIO.input (GPIO_Water) ከሆነ ራስን self. self.vorige_status == 0 እና ሁኔታ == 0: ማተም ('startpositie') status = GPIO.input (GPIO_Water) sensorData = {"status": status, "action": "startpositie"} return sensorData
ደረጃ 6: የአቅራቢያ ዳሳሽ ኮድ መስጠት
ከውጪ ማከማቻዎች የጊዜ ማስመጣት ክር። የውሂብ ማከማቻ የውሂብ ማከማቻ ከ RPi ማስመጣት GPIO GPIO.setmode (GPIO. BCM) GPIO.setwarnings (ሐሰት) GPIO_Trig = 4 GPIO_Echo = 17 GPIO.setup (GPIO_Trig ፣ GPIO. OUT). IN) def current_milli_time (): int int (round (time.time () * 1000)) class UltrasonicSensor (threading. Thread): def _init _ (self, socket): threading. Thread._ init _ (self) self.socket = socket def run (self): try: last_reading = 0 interval = 5000 while True: current_milli_time ()> last_reading + interval: dist = self.distance () print ("Measured Distance = %.1f cm" % dist) DataRepository. insert_proximity (dist) data_prox = DataRepository.get_data_sensor (1) historyId = data_prox ["SensorsHistory"] prox = data_prox ["እሴት"] actionTime = data_prox ["actionTime"] self.socket.emit ('data_proximity', {"id", {"id"): historyId ፣ “ቅርበት”: ፕሮክስ ፣ “ጊዜ”: DataRepository.serializeDateTime (actionTime)}) last_reading = current_milli_time () Exception from ex: print (ex) de f ርቀት (ራስ): # አዘጋጅ ቀስቅሴ ወደ ከፍተኛ GPIO.output (GPIO_Trig ፣ True) # ከ 0.01ms በኋላ ወደ ዝቅተኛ ጊዜ እንቅልፍ (0.00001) GPIO.output (GPIO_Trig ፣ ሐሰት) StartTime = time.time () StopTime = ጊዜ። በመነሻ እና በመድረሻ መካከል ያለው የጊዜ ልዩነት TimeElapsed = StopTime - StartTime # በ sonic ፍጥነት (34300 ሴ.ሜ / ሰ) # በማባዛት በ 2 ይካፈሉ ፣ ምክንያቱም እዚያ እና የኋላ ርቀት = (TimeElapsed * 34300) / 2 የመመለሻ ርቀት
ደረጃ 7 Stepper Motors ን ኮድ ማድረግ
RPi. GPIO ን እንደ GPIO ያስመጡ የጊዜ ማስመጣት ክር GPIO.setmode (GPIO. BCM) GPIO.setwarnings (ሐሰት) control_pins = [12, 16, 20, 21] ለፒን በቁጥጥር_ፒን ውስጥ: GPIO.setup (pin, GPIO. OUT) GPIO.ውጤት (ፒን ፣ 0) halfstep_seq =
ይህ ኮድ ለሌላኛው የእንፋሎት ሞተር እንደገና ጥቅም ላይ ሊውል ይችላል ፣ የቁጥጥር ፒን ቁጥሮችን ወደሚመለከታቸው ፒኖቻቸው ያዘጋጁ እና ክፍሉን ወደ StepperWater እንደገና ይሰይሙ-
ደረጃ 8: ኤልሲዲውን ኮድ ማድረግ
ብዙ ኮድ ፣ ግን ጨርሰናል ማለት ይቻላል።
የ LCD ክፍል እንደ ፋይል LCD.py ተካትቷል
ከረዳቶች. LCD ማስመጣት ኤል.ሲ.ዲ
E = 26 RS = 25 D0 = 19 D1 = 13 D2 = 24 D3 = 22 D4 = 23 D5 = 8 D6 = 7 D7 = 10 lcd = LCD (E ፣ RS ፣ [D0 ፣ D1 ፣ D2 ፣ D3 ፣ D4 ፣ D5 ፣ D6 ፣ D7]) ክፍል ኤልሲዲ ይፃፉ: def መልእክት (msg): ይሞክሩ: ማተም ("ሞክር") lcd.init_LCD () lcd.send_instruction (12) lcd.clear_display () lcd.write_message (msg, '1') በስተቀር: ማተም ("ስህተት LCDWrite")
ደረጃ 9: መጨረሻው
የመጨረሻ ውጤት እኛ እንዴት እንደሳበነው እና እንዴት እንደ ተጠናቀቀ።
የሚመከር:
አውቶማቲክ የቤት እንስሳት-ምግብ ጎድጓዳ ሳህን ፕሮጀክት 13 ደረጃዎች
አውቶማቲክ የቤት እንስሳት-ምግብ ጎድጓዳ ሳህን ፕሮጀክት-ይህ አስተማሪ አውቶማቲክ ፣ በፕሮግራም ሊሠራ የሚችል የቤት እንስሳት መጋቢ ከተያያዙ የምግብ ሳህኖች ጋር እንዴት እንደሚሠራ ያሳያል እና ያብራራል። ምርቶቹ እንዴት እንደሚሠሩ እና ምን እንደሚመስል የሚያሳይ ቪዲዮ እዚህ አያይዘዋለሁ
የቤት እንስሳት ምግብ አከፋፋይ - 3 ደረጃዎች
የቤት እንስሳት ምግብ ማከፋፈያ -ፓራ ሎስ አማንስ ዴ mascotas ፣ እንደዚያ ያለ ፕሮፔክቶር ነው። በአለም አቀፍ ሁኔታ አውቶማቲክ በሆነ ሁኔታ ተከራካሪ / ታዛቢ / ታዛቢ / ኢል ፔሳጄ ዴ ላ ኮሜዳ ፣ እና ብቸኛ ኢስሴሪዮ ለ oprimas un botón።
AtTiny85: 6 ደረጃዎችን በመጠቀም አውቶማቲክ የቤት እንስሳት ምግብ ሰጪ
AtTiny85 ን በመጠቀም አውቶማቲክ የቤት እንስሳት መኖ
DIY: Lego UV LED Flashlight / የቤት ውስጥ የቤት እንስሳት ሽንት መፈለጊያ 3 ደረጃዎች
DIY: Lego UV LED Flashlight / Homemade Pet Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine Urine ሽንት ፈላጊ - ይህ ቀላል (ምንም መሸጫ አያስፈልግም) ፣ አዝናኝ እና ርካሽ መንገድ ከሊጎስ ታላቅ UV LED የእጅ ባትሪ ለመሥራት። ይህ እንዲሁ የቤት ውስጥ የቤት እንስሳት የሽንት መመርመሪያ (ዋጋዎችን ያወዳድሩ) በእጥፍ ይጨምራል። የራስዎን የቤት ሌጎ ፍላሽ የማድረግ ሕልም ኖሮዎት ከነበረ
IDC2018IOT የተገናኘ የቤት እንስሳት ምግብ ፣ ውሃ እና ተቆጣጣሪ ስርዓት 7 ደረጃዎች
IDC2018IOT ተገናኝቷል የቤት እንስሳት ምግብ ፣ ውሃ እና ተቆጣጣሪ ስርዓት - መግቢያ እርስዎ ጫና ውስጥ ያለ ተማሪ ፣ ታታሪ ሰው ፣ ወይም በቀላሉ በቀን ከጥቂት ሰዓታት በላይ ከቤት ርቀው ይሁኑ። እንደ ተንከባካቢ የቤት እንስሳት ባለቤቶች ፣ የምንወዳቸው ሰዎች ጤናማ ሆነው እንዲቆዩ ፣ እንዲመገቡ እና በእርግጥ በ