Мазмұны:

Кір жуғыш машинаның хабарландыру сенсоры: 6 қадам (суреттермен)
Кір жуғыш машинаның хабарландыру сенсоры: 6 қадам (суреттермен)

Бейне: Кір жуғыш машинаның хабарландыру сенсоры: 6 қадам (суреттермен)

Бейне: Кір жуғыш машинаның хабарландыру сенсоры: 6 қадам (суреттермен)
Бейне: Как включить слив стиральной машины LG 2024, Қараша
Anonim
Image
Image
Прототип
Прототип

Бұл кір жуғыш машинаның сенсоры менің кір жуғыш машинамның үстінде орналасқан және машинадан дірілді анықтау үшін акселерометрді қолданады. Жуу циклы аяқталғанын сезгенде, ол маған телефоныма хабарлама жібереді. Мен мұны салдым, себебі құрылғы аяқталған кезде дыбыс шығармайды, мен кірді алуды ұмытып шаршадым.

Кодты мына жерден табуға болады:

Бөлшектердің толық тізімі:

  • WEMOS LOLIN32
  • Жарты өлшемді нан тақтасы (прототиптеу үшін)
  • 59x88x30 мм матрицалық тақтасы бар ABS жобалық қорабы
  • Sparkfun LIS3DH - үш осьті акселерометрдің үзілуі
  • 1x ZVP3306A P-арналы MOSFET, 160 мА, 60 В, 3 істікшелі электронды желі
  • 1x BC549B TO92 30V NPN транзисторы
  • 5мм жарықдиодты көк 68 мкд
  • 1x 100k 0.125W CF резисторы
  • 1x 330k 0.125W CF резисторы
  • 2x 10k 0.250W CF резисторы
  • 1x 100 0.250W CF резисторы
  • 2-істікшелі JST PH-Style кабелі (14см)
  • 4x M1219-8 Неодимдік диск магниті 6х4мм

1 -қадам: прототип

Прототип
Прототип

Құрылғыда ESP32 микроконтроллері қолданылады. Бұл жағдайда мен Wemos Lolin32 әзірлеу тақтасын қолданамын, оны AliExpress -те шамамен 7 долларға сатып алуға болады. Акселерометр - Sparkfun LIS3DH - бұл акселерометрдің аналогты емес, сандық болғаны маңызды, кейінірек көресіз. Мен батареяны ескі bluetooth динамиктерінен алдым.

ESP32 акселерометрге I2C арқылы қосылады. Кодтың бірінші нұсқасы әр 20 м сайын өлшенетін үдеу мәні үшін үш үдеу осін (x, y және z) сұрастырады. Нан тақтасының прототипін кір жуғыш машинаға қойып, мен жоғарыда келтірілген графикті жасадым, ол жуу циклінің әр түрлі кезеңдерінде үдеу шыңдарын көрсетеді. Абсолюттік үдеуі 125 мг (қалыпты ауырлықтың 125 мыңнан бір бөлігі) асатын шыңдар қызғылт сары түспен көрсетілген. Біз осы кезеңдерді анықтап, оларды кір жуғыш машинаның күйін анықтау үшін қолданғымыз келеді.

Машинаның қосылғанын немесе өшірілгенін қалай анықтауға болады?

Бұл құрылғыны құрудағы мақсаттардың бірі - бұл мүлдем пассивті. Яғни ешқандай түймені басудың қажеті жоқ; бұл жай жұмыс істейтін еді. Бұл өте төмен қуат болуы керек, себебі менің жағдайда кір жуғыш машинаға электр кабельдерін созу мүмкін болмады.

Бақытымызға орай, LIS3DH акселерометрінде жеделдету берілген шекті мәннен асқанда үзіліс тудыратын функция бар (ескеріңіз, бұл акселерометрдің кіріктірілген жоғары өткізу сүзгісін қолдануды талап етеді-егжей-тегжейлі ақпаратты Github кодынан қараңыз) және ESP32-ді оятуға болады үзіліс арқылы терең ұйқы режимінен. Біз бұл функциялардың комбинациясын қозғалыс арқылы іске қосылатын өте төмен қуатты ұйқы режимін құру үшін пайдалана аламыз.

Жалған код келесідей көрінеді:

# Құрылғы оянады

хабарландыру_шегі = 240 есептегіш = 10 акселерометр.сет_босағасы (96) # 96мг есептегіш кезінде> 0: егер үдеткіш () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()

Сіз бұл жерде санауыштың көмегімен ағымдағы ояту кезеңінде қанша секунд үдетуді анықтағанымызды көре аласыз. Егер есептегіш нөлге дейін төмендесе, біз құрылғыны қайтадан ұйықтай аламыз. Егер есептегіш 240 -қа (хабарландыру шегіне) жетсе, онда біз 4 минуттық дірілді анықтадық. Құрылғының соңғы айналдыру циклін дұрыс анықтағанына көз жеткізу үшін біз осы шектердің мәндерін өзгерте аламыз. Жеткілікті діріл анықталғаннан кейін, біз хабарлама жібермес бұрын тағы 5 минут ұйықтай аламыз (менің жағдайда бұл жуудың аяқталуына қанша уақыт кетеді).

2 -қадам: Blynk арқылы хабарлама жіберу

Blynk арқылы хабарлама жіберу
Blynk арқылы хабарлама жіберу

Blynk - бұл телефондағы қосымшасы бар IoT құрылғыларымен өзара әрекеттесуге мүмкіндік беретін қызмет. Бұл жағдайда мен Blynk API -ге қарапайым HTTP POST арқылы іске қосылатын push -хабарлау API пайдаланамын.

3 -қадам: Қуат тұтынуды өлшеу және батареяның қызмет ету мерзімін бағалау

Қуат тұтынуды өлшеу және батареяның қызмет ету мерзімін бағалау
Қуат тұтынуды өлшеу және батареяның қызмет ету мерзімін бағалау

ESP32 микросхемасы қатты ұйықтағанда (5uA дейін төмен) қуатты өте аз тұтынатыны туралы жарнамаланады. Өкінішке орай, әр түрлі даму тақталарындағы схемалар энергияны тұтынудың әр түрлі сипаттамаларын береді - барлық ESP32 тақталары бірдей жасалмайды. Мысалы, мен бұл жобаны алғаш бастаған кезде мен терең ұйқы режимінде шамамен 1 мА қуат тұтынатын Sparkfun ESP32 Thing қолдандым (қуат диодты өшіргеннен кейін де). Содан бері мен терең ұйқы режимінде 144.5uA ток өлшеген Lolin32 (Lite нұсқасы емес) қолданамын. Бұл өлшеуді орындау үшін мен мультиметрді аккумулятормен және құрылғымен тізбектей жалғадым. Бұл, әрине, тақтаймен прототиптеу кезінде оңайырақ. Мен сондай -ақ құрылғы ояу болған кезде ағымдағы пайдалануды өлшедім:

  • Терең ұйқы: 144.5uA
  • Ояту: 45 мА
  • Wi -Fi қосылған: 150 мА

Мен машинаны аптасына екі рет қолданамын деп есептесем, сенсор әр күйде өткізетін уақытқа келесі уақытты есептедім:

  • Терең ұйқы: 604090 секунд (~ 1 апта)
  • Ояну: 720 секунд (12 мин)
  • Wifi қосылған: 10 секунд

Бұл сандарға сүйене отырып, біз батареяның қанша уақыт жұмыс істейтінін есептей аламыз. Мен бұл ыңғайлы калькуляторды орташа қуатты 0,2 мА алу үшін қолдандым. Батареяның болжамды қызмет ету мерзімі - 201 күн немесе шамамен 6 ай! Шындығында, мен құрылғы шамамен 2 айдан кейін жұмысын тоқтатады, сондықтан өлшеуде немесе батареяның сыйымдылығында қателіктер болуы мүмкін.

4 -қадам: Батарея деңгейін өлшеу

Батарея деңгейін өлшеу
Батарея деңгейін өлшеу
Батарея деңгейін өлшеу
Батарея деңгейін өлшеу

Егер құрылғы батареяның заряды таусылғанын айтса, жақсы болар еді деп ойладым, сондықтан оны қашан зарядтау керектігін білемін. Бұл үшін батареяның кернеуін өлшеу керек. Батареяның кернеу диапазоны 4,3 В - 2,2 В (ESP32 жұмысының ең төменгі кернеуі). Өкінішке орай, ESP32 ADC түйреуіштерінің кернеу диапазоны 0-3.3В құрайды. Бұл дегеніміз, біз ADC шамадан тыс жүктемесін болдырмау үшін батареяның кернеуін максималды 4,3 -тен 3,3 -ке дейін төмендетуіміз керек. Бұл кернеуді бөлгішпен жасауға болады. Батареядан жерге сәйкес мәндері бар екі резисторды сыммен жалғап, ортасындағы кернеуді өлшеңіз.

Өкінішке орай, кернеуді бөлудің қарапайым схемасы, кернеу өлшенбесе де, батареядан қуатты кетіреді. Сіз мұны жоғары мәнді резисторлардың көмегімен жеңілдете аласыз, бірақ төменгі жағы - ADC дәл өлшеу үшін жеткілікті ток шығара алмауы мүмкін. Мен кернеуді бөлу формуласы бойынша 4,3 В -тан 3,3 В -қа дейін төмендейтін 100 кОм және 330 кОм резисторларды қолдануды шештім. 430 кОм жалпы қарсылықты ескере отырып, біз ағымдағы ұтыс 11,6uA (Ом заңын қолдана отырып) күтеміз. Біздің терең ұйқының ағымдағы қолданылуы 144uA екенін ескерсек, бұл айтарлықтай өсім.

Батарея кернеуін тек хабарлама жібермес бұрын бір рет өлшегіміз келетіндіктен, біз ештеңені өлшемейтін уақытта кернеу бөлгіш тізбегін өшірудің мағынасы бар. Бақытымызға орай, біз мұны GPIO түйреуіштерінің біріне қосылған бірнеше транзистормен жасай аламыз. Мен осы stackexchange жауапында берілген схеманы қолдандым. Сіз мені жоғарыдағы фотодағы Arduino мен нан тақтасы арқылы тексергенімді көре аласыз (тізбекте қате бар, себебі мен күткеннен жоғары кернеуді өлшеймін).

Жоғарыда келтірілген схема орнында батареяның пайыздық мәнін алу үшін келесі жалған кодты қолданамын:

батарея_ пайызы ():

# аккумулятордың кернеу тізбегін қосу gpio_set_level (BATTERY_EN_PIN, HIGH) # Батарея деңгейі 0 -ден 4095 -ке дейінгі бүтін сан ретінде қайтарылады adc_value = adc1_get_value (ADC_PIN) Бөлгіш 100к/330к Ом резисторларын пайдаланады # 4.3V -> 3.223, 2.4 -> 1.842 күтілетін максимум = 4.3*330/(100+330) күтілетін_мин = 2.4*330/(100+330) батарея_деңгейі = (адк_вольт -күтілетін_мин)/(күтілетін_мах) -күтілген_мин) батареяның деңгейін қайтару * 100.0

5 -қадам: оны әдемі ету

Оны әдемі ету
Оны әдемі ету
Оны әдемі ету
Оны әдемі ету
Оны әдемі ету
Оны әдемі ету

Нан нұсқасы жақсы жұмыс істеп тұрғанда, мен оны ұқыпты және сенімді болатын пакетке салғым келді (сымдары үзілуі немесе сөнуі мүмкін емес). Мен өзімнің қажеттіліктеріме сәйкес келетін қорапты таба алдым, ол дұрыс мөлшерде болды, оның ішінде түйреуіш тақта, монтаж ұстағыштары мен бұрандалар бар. Сонымен қатар, ол 2 фунт стерлингке арзан болды. Қорапты алғаннан кейін мен компоненттерді түйреуіш тақтасына дәнекерлеуім керек болды.

Мүмкін, мұның ең қиын бөлігі батареяның кернеу тізбегінің барлық компоненттерін Lolin32 жанындағы кішкене кеңістікке орнату болды. Бақытымызға орай, кішкене жұмсақ покер мен дәнекермен жасалған тиісті байланыстар схемаға жақсы сәйкес келеді. Сонымен қатар, Wemos Lolin32 -де батареяның оң терминалын шығаратын түйреуіш болмағандықтан, мен батарея коннекторынан түйреуіш тақтасына сым дәнекерлеуіме тура келді.

Мен сонымен қатар құрылғы қозғалысты анықтаған кезде жыпылықтайтын жарық диодты қостым.

6 -қадам: Түртуді аяқтау

Image
Image
Аяқталатын жанасулар
Аяқталатын жанасулар
Аяқталатын жанасулар
Аяқталатын жанасулар

Мен қораптың негізіне 6 мм х 4 мм 4 неодимий магнитін қатты жапсырдым, бұл кір жуғыш машинаның металл үстіне сенімді түрде жабысуға мүмкіндік береді.

Жобаның қорабында кабельдерге кіруді қамтамасыз ететін кішкене тесік бар. Бақытымызға орай, мен микро USB қосқышына кіру үшін ESP32 тақтасын осы тесікке жақын орналастыра алдым. Шұңқырды пышақпен үлкейткеннен кейін, кабель батареяны оңай зарядтауға мүмкіндік береді.

Егер сізді осы жобаның егжей -тегжейлері қызықтырса, түсініктеме қалдырыңыз. Егер сіз кодты көргіңіз келсе, оны Github -дан қараңыз:

github.com/alexspurling/washingmachine

Ұсынылған: