Orodha ya maudhui:

Sensorer ya Arifa ya Kuosha Mashine: Hatua 6 (na Picha)
Sensorer ya Arifa ya Kuosha Mashine: Hatua 6 (na Picha)

Video: Sensorer ya Arifa ya Kuosha Mashine: Hatua 6 (na Picha)

Video: Sensorer ya Arifa ya Kuosha Mashine: Hatua 6 (na Picha)
Video: ДЕТИ ЛЕДИБАГ И СУПЕР-КОТА 😱 Сказки на ночь от Маринетт Miraculous Ladybug & Cat Noir in real life 2024, Novemba
Anonim
Image
Image
Mfano
Mfano

Sensorer hii ya mashine ya kuosha inakaa juu ya mashine yangu ya kuosha na hutumia kipima kasi kugundua mtetemeko kutoka kwa mashine. Inapohisi mzunguko wa safisha umekamilika, hunitumia arifa kwenye simu yangu. Niliijenga hii kwa sababu mashine yenyewe haina beep tena ikiwa imemalizika na nilikuwa nimechoka kusahau kuchukua kufulia.

Nambari inaweza kupatikana hapa:

Orodha kamili ya sehemu:

  • WEMOS LOLIN32
  • Ubao wa Mkate wa ukubwa wa nusu (kwa uandishi)
  • Sanduku la Mradi wa ABS na Bodi ya Matrix 59x88x30mm
  • Sparkfun LIS3DH - Kuzuka kwa Axis Accelerometer mara tatu
  • 1x ZVP3306A P-channel MOSFET, 160 mA, 60 V, 3-Pin E-Line
  • 1x BC549B TO92 30V NPN Transistor
  • 5mm LED Bluu 68 mcd
  • Mpinzani wa 1x 100k 0.125W CF
  • 1x 330k 0.125W CF Mpingaji
  • 2x 10k 0.250W CF Mpingaji
  • 1x 100 0.250W CF Mpingaji
  • Cable-2-Pin ya Kike ya JST PH-Sinema (14cm)
  • 4x M1219-8 Neodymium Disc Magnet 6x4mm

Hatua ya 1: Mfano

Mfano
Mfano

Kifaa hutumia mdhibiti mdogo wa ESP32. Katika kesi hii ninatumia bodi ya maendeleo ya Lolin32 na Wemos ambayo unaweza kununua kwenye AliExpress kwa karibu $ 7. Accelerometer ni Sparkfun LIS3DH - ni muhimu accelerometer ni dijiti badala ya analog kama utaona baadaye. Betri nilichukua kutoka kwa seti ya zamani ya spika za bluetooth.

ESP32 inaunganisha kwa accelerometer kupitia I2C. Toleo la kwanza la nambari lilichambua tu shoka tatu za kuongeza kasi (x, y na z) kwa thamani ya kuongeza kasi ya kila dakika 20ms. Kuweka mfano wa ubao wa mkate kwenye mashine ya kuosha na nikatoa grafu hapo juu ambayo inaonyesha kilele cha kuongeza kasi wakati wa awamu anuwai ya mzunguko wa safisha. Kilele kile ambacho kasi kamili ilikuwa kubwa kuliko 125mg (125thth ya mvuto wa kawaida) imeonyeshwa kwa rangi ya machungwa. Tunataka kugundua vipindi hivi na tutumie kuamua hali ya mashine ya kuosha.

Jinsi ya kuamua ikiwa mashine imewashwa au imezimwa?

Moja ya malengo ya kujenga kifaa hiki ilikuwa kwamba itakuwa ya kutazama tu. Yaani. hakuna vifungo vinavyopaswa kushinikizwa; ingefanya kazi tu. Pia inapaswa kuwa nguvu ndogo sana kwani haikuwezekana kupanua nyaya za umeme kwa mashine ya kuosha kwa upande wangu.

Kwa bahati nzuri kipima kasi cha LIS3DH kina huduma ambayo inaweza kusababisha usumbufu wakati kuongeza kasi kunazidi kizingiti kilichopewa (kumbuka, hii inahitaji matumizi ya kichujio cha kupitisha cha juu cha kasi ya kasi - angalia nambari kwenye Github kwa maelezo) na ESP32 inaweza kuamshwa kutoka kwa hali yake ya usingizi mzito kupitia usumbufu. Tunaweza kutumia mchanganyiko huu wa huduma kuunda hali ya chini sana ya kulala ambayo inasababishwa na harakati.

Nambari ya uwongo itaonekana kama hii:

# Kifaa amka

notification_threshold = 240 counter = 10 accelerometer.set_threshold (96) # 96mg wakati counter> 0: ikiwa accelerometer.hold_threshold (): counter ++ else: counter - if counter> notification_threshold: # mzunguko wa mwisho wa mzunguko uligundua usingizi (sekunde 1) accelerometer. set_threshold_interrupt () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()

Unaweza kuona hapa kwamba tunatumia kaunta kugundua ni sekunde ngapi za kuongeza kasi ambazo tumegundua wakati wa kipindi cha sasa cha kuamka. Ikiwa kaunta itashuka hadi sifuri basi tunaweza kukiweka kifaa kulala. Kaunta ikifikia 240 (kizingiti cha arifa) basi hiyo inamaanisha kuwa tumegundua dakika 4 za mtetemo. Tunaweza kurekebisha maadili ya vizingiti hivi ili kuhakikisha kuwa kifaa hugundua kwa usahihi mzunguko wa mwisho wa kuzunguka. Mara tu mtetemo wa kutosha unapogunduliwa, tunaweza tu kulala kwa dakika nyingine 5 (kwa upande wangu hii inachukua muda gani mpaka safisha ikamilike) kabla ya kutuma arifa.

Hatua ya 2: Kutuma Arifa kupitia Blynk

Kutuma Arifa kupitia Blynk
Kutuma Arifa kupitia Blynk

Blynk ni huduma iliyoundwa iliyoundwa kuruhusu mwingiliano na vifaa vya IoT na programu kwenye simu yako. Katika kesi hii, ninatumia API ya arifu ya kushinikiza ambayo inasababishwa na POST rahisi ya HTTP kwa API ya Blynk.

Hatua ya 3: Kupima Matumizi ya Nguvu na Kukadiria Maisha ya Betri

Kupima Matumizi ya Nguvu na Kukadiria Maisha ya Betri
Kupima Matumizi ya Nguvu na Kukadiria Maisha ya Betri

Chip ya ESP32 inatangazwa kama kuwa na matumizi ya chini sana ya nguvu wakati wa usingizi mzito (chini ya 5uA). Kwa bahati mbaya, mzunguko kwenye bodi nyingi za maendeleo hutoa sifa tofauti za matumizi ya nguvu - sio bodi zote za ESP32 zilizoundwa sawa. Kwa mfano, wakati nilianza mradi huu kwa mara ya kwanza, nilitumia Sparkfun ESP32 Thing ambayo itatumia karibu 1mA ya nguvu katika hali ya usingizi mzito (hata baada ya kuzima LED ya nguvu). Tangu wakati huo nimekuwa nikitumia Lolin32 (sio toleo la Lite) ambalo nilipima sasa ya 144.5uA nikiwa katika hali ya usingizi mzito. Ili kufanya kipimo hiki, niliunganisha tu multimeter mfululizo na betri na kifaa. Kwa kweli hii ni rahisi kufanya wakati wa kuiga na ubao wa mkate. Nilipima pia matumizi ya sasa wakati kifaa kimeamka:

  • Usingizi mzito: 144.5uA
  • Amkeni: 45mA
  • Wifi imewezeshwa: 150mA

Kudhani ninatumia mashine mara mbili kwa wiki, nilikadiria nyakati zifuatazo kwa wakati ambao sensa hutumia katika kila jimbo:

  • Usingizi mzito: sekunde 604090 (~ wiki 1)
  • Amkeni: sekunde 720 (dk 12)
  • Wifi imewezeshwa: sekunde 10

Kutoka kwa takwimu hizi, tunaweza kukadiria betri itaendelea muda gani. Nilitumia kikokotoo hiki kinachofaa kupata matumizi wastani ya nguvu ya 0.2mA. Makadirio ya maisha ya betri ni siku 201 au kama miezi 6! Kwa kweli nimegundua kifaa kitaacha kufanya kazi baada ya miezi 2 kwa hivyo kunaweza kuwa na makosa katika vipimo au uwezo wa betri.

Hatua ya 4: Kupima Kiwango cha Betri

Kupima Kiwango cha Betri
Kupima Kiwango cha Betri
Kupima Kiwango cha Betri
Kupima Kiwango cha Betri

Nilidhani itakuwa nzuri ikiwa kifaa kingeniambia wakati betri inaisha kwa hivyo najua wakati wa kuchaji. Kupima hii tunahitaji kupima voltage ya betri. Betri ina kiwango cha voltage ya 4.3V - 2.2V (kiwango cha chini cha voltage ya uendeshaji ya ESP32). Kwa bahati mbaya, safu ya voltage ya pini za ADC za ESP32 ni 0-3.3V. Hii inamaanisha, tunahitaji kupitisha voltage ya betri chini kutoka kiwango cha juu cha 4.3 hadi 3.3 ili kuzuia kupakia ADC. Hii inawezekana kufanya na mgawanyiko wa voltage. Funga tu vipinga viwili na maadili yanayofaa kutoka kwa betri hadi chini na pima voltage katikati.

Kwa bahati mbaya, mzunguko rahisi wa mgawanyiko wa voltage utamaliza nguvu kutoka kwa betri hata wakati voltage haijapimwa. Unaweza kupunguza hii kwa kutumia vipinga thamani vya juu lakini upande wa chini ni kwamba ADC inaweza isiweze kuchora sasa ya kutosha kufanya kipimo sahihi. Niliamua kutumia vipinga na maadili ya 100kΩ na 330kΩ ambayo itashuka 4.3V hadi 3.3V kulingana na fomula ya mgawanyiko wa voltage. Kutokana na upinzani kamili wa 430kΩ, tunatarajia kuteka kwa sasa kwa 11.6uA (kwa kutumia sheria ya Ohm). Kwa kuzingatia matumizi yetu ya usingizi mzito ni 144uA, ni ongezeko kubwa sana.

Kama tunataka tu kupima voltage ya betri mara moja tu kabla ya kutuma arifa, ni busara kuzima mzunguko wa mgawanyiko wa voltage wakati ambao hatupimi chochote. Kwa bahati nzuri, tunaweza kufanya hivyo na transistors kadhaa zilizounganishwa na moja ya pini za GPIO. Nilitumia mzunguko uliopewa katika jibu hili la kubadilishana. Unaweza kuniona nikijaribu mzunguko na Arduino na ubao wa mkate kwenye picha hapo juu (kumbuka kuna hitilafu kwenye mzunguko ndio sababu napima voltage ya juu kuliko inavyotarajiwa).

Pamoja na mzunguko hapo juu, ninatumia nambari ya uwongo ifuatayo kupata asilimia ya thamani ya betri:

Asilimia ya betri ():

# wezesha mzunguko wa voltage ya betri gpio_set_level (BATTERY_EN_PIN, HIGH) # Kiwango cha betri hurudishwa kama nambari kati ya 0 na 4095 adc_value = adc1_get_value (ADC_PIN) # wezesha mzunguko wa voltage ya betri gpio_set_level (BATTERY_EN_PIN, LOW) kuelea adc_v95 voltage = adc_v95 # adc_v95 # adc_v95 # adc_v95 mgawanyiko hutumia vipinga 100k / 330k ohm # 4.3V -> 3.223, 2.4 -> 1.842 inatarajiwa_max = 4.3 * 330 / (100 + 330) inatarajiwa_min = 2.4 * 330 / (100 + 330) battery_level = (adc_voltage-inatarajiwa_min) / (inatarajiwa_max -inatarajiwa_min) rudisha betri_level * 100.0

Hatua ya 5: Kuifanya Nzuri

Kuifanya Nzuri
Kuifanya Nzuri
Kuifanya Nzuri
Kuifanya Nzuri
Kuifanya Nzuri
Kuifanya Nzuri

Wakati toleo la ubao wa mkate linafanya kazi vizuri, nilitaka kuiweka kwenye kifurushi ambacho kingekuwa nadhifu na cha kuaminika zaidi (hakuna waya zinazoweza kutolewa au kufupishwa). Niliweza kupata sanduku kamili la mradi kwa mahitaji yangu ambayo ilikuwa saizi sahihi, ni pamoja na bodi ya pini, viti vya kuweka na visu kuziweka pamoja. Pia, ilikuwa imekufa kwa bei rahisi chini ya £ 2. Baada ya kupokea sanduku, nilichostahili kufanya ni kuziunganisha vifaa kwenye ubao wa pini.

Labda sehemu ya ujanja zaidi ya hii ilikuwa inafaa vifaa vyote vya mzunguko wa voltage ya betri kwenye nafasi ndogo karibu na Lolin32. Kwa bahati nzuri na pokery kidogo ya jiggery na muunganisho unaofaa uliofanywa na solder mzunguko unafaa vizuri. Pia, kwa kuwa Wemos Lolin32 haina pini kuibua terminal nzuri ya betri, ilibidi nipaze waya kutoka kwa kiunganishi cha betri hadi kwenye bodi ya pini.

Niliongeza pia mwangaza wa LED wakati kifaa kimegundua mwendo.

Hatua ya 6: Kumaliza Kugusa

Image
Image
Kumaliza Kugusa
Kumaliza Kugusa
Kumaliza Kugusa
Kumaliza Kugusa

Niliunganisha sana sumaku 4 6mm x 4mm za neodymium kwa msingi wa sanduku ambayo inaruhusu kushikamana salama juu ya chuma ya mashine ya kuosha.

Sanduku la mradi tayari linakuja na shimo ndogo kutoa ufikiaji wa nyaya. Kwa bahati nzuri, niliweza kuweka bodi ya ESP32 karibu na shimo hili ili kutoa ufikiaji wa kiunganishi cha USB kidogo. Baada ya kupanua shimo na kisu cha ufundi, kebo hiyo inafaa kabisa kuruhusu kuchaji rahisi kwa betri.

Ikiwa una nia ya maelezo yoyote ya mradi huu, tafadhali jisikie huru kuacha maoni. Ikiwa ungependa kuona nambari, tafadhali angalia kwenye Github:

github.com/alexspurling/washingmachine

Ilipendekeza: