Мазмуну:

IoT Water Alarm: 5 кадам (Сүрөттөр менен)
IoT Water Alarm: 5 кадам (Сүрөттөр менен)

Video: IoT Water Alarm: 5 кадам (Сүрөттөр менен)

Video: IoT Water Alarm: 5 кадам (Сүрөттөр менен)
Video: Что произойдет, если вы не едите 5 дней? 2024, Июль
Anonim
IoT Суу Ойготкучу
IoT Суу Ойготкучу

Мен жакында ашкананын дренажынын камдык көчүрмөсүн башыман өткөрдүм. Эгерде мен ал убакта үйдө болбогондо, бул менин батиримде полго жана гипсокартонго зыян алып келмек. Бактыга жараша, мен көйгөйдү билчүмүн жана чака менен сууну алып чыгууга даярмын. Бул мени сел коркунучун сатып алуу жөнүндө ойлондурду. Мен Amazonдо көптөгөн жеткиликтүү продуктыларды таптым, бирок интернет байланышы барлар терс сын -пикирлердин олуттуу пайызына ээ болушкан, биринчи кезекте менчик кабарлоо кызматтарындагы көйгөйлөр. Ошондуктан мен өзүм тандаган ишенимдүү билдирүү каражаттарын колдоно турган IoT суу сигналын өзүм жасоону чечтим.

1 -кадам: Иштөө принциби

Иштөө принциби
Иштөө принциби

Ойготкучтун мээсинде AVR ATtiny85 микроконтроллери бар. Бул батарейкадан жана суу сенсорунан чыңалуу көрсөткүчтөрүн алат жана суунун бар же жоктугун аныктоо үчүн аларды алдын ала аныкталган мааниси менен салыштырат.

Суу сенсору болжол менен 1 мм аралыкта жайгашкан эки зым. Зымдардын бири 3.3 Вга, экинчиси микроконтроллердеги сезгич пинге туташтырылган, ал дагы 0.5 МОм резистор аркылуу жерге туташкан. Адатта, сенсор зымдарынын ортосундагы каршылык өтө жогору (10 МОмдон ашык), андыктан сезгич пин 0 В чейин түшүрүлөт. Бирок, зымдардын ортосунда суу болгондо каршылык 1 МОммго чейин төмөндөйт, жана сезгич пин кээ бир чыңалууну көрөт (менин учурда болжол менен 1,5 В). ATtiny85 бул чыңалууну сезүү түйүнүнөн аныктаганда, ал коңгуроону иштетүү үчүн MOSFETти иштетет жана эскертүүлөрдү жөнөтүү үчүн жооптуу болгон ESP8266 модулуна ойготуу сигналын жөнөтөт (электрондук почта жана эскертмелер). Бир мүнөт ызылдагандан кийин, сигнализация куралсыздандырылган жана аны велосипед менен гана калыбына келтирүүгө болот.

Бул бирдик эки щелочтуу же NiMH клеткасынан иштейт. Микроконтроллер көбүнчө батарейкаларды үнөмдөө үчүн уктап жатат, суу сенсорун жана батареялардын чыңалуусун текшерүү үчүн маал -маалы менен ойгонот. Эгерде батарейкалар аз болсо, микроконтроллер ESP8266 модулун ойготуп, батареянын аздыгы жөнүндө эскертүү жөнөтөт. Эскертүүдөн кийин, батарейканын ашыкча бүтүшүн алдын алуу үчүн сигнализация куралсыздандырылган.

ESP8266 модулу батарейканын аздыгы жөнүндө эскертүүлөрдү, ошондой эле сел коркунучун кабарлоо үчүн жооптуу болгондуктан, ATiny85тен башкаруу сигналын талап кылат. Жеткиликтүү төөнөгүчтөрдүн саны чектелүү болгондуктан, бул башкаруу сигналы батареянын LED көрсөткүчү үчүн жооптуу болгон ошол эле пин аркылуу пайда болот. Кадимки иштөө учурунда (сигнализация куралдуу жана батареялар заряддалат), LED үзгүлтүксүз ирмелет. Батарейканын аздыгы аныкталганда, LED ESP модулунун RX пинине жогорку сигналды берүү үчүн күйөт. Эгерде суу аныкталса, батарея LEDы ESP8266 ойгонуп турганда өчөт.

2 -кадам: Дизайн жана монтаж

Дизайн жана монтаж
Дизайн жана монтаж
Дизайн жана монтаж
Дизайн жана монтаж
Дизайн жана монтаж
Дизайн жана монтаж

Мен схеманы негизинен 0805 SMD бөлүктөрүн колдонуп, эки тараптуу 4x6 см протобордо курула турган кылып түздүм. Көрсөтүлгөн схемалар ушул түзүлүшкө негизделген, бирок ал тешик аркылуу компоненттер үчүн оңой ыңгайлаштырылышы мүмкүн (кеңеш: мейкиндикти азайтуу үчүн, тешик аркылуу резисторлорду тигинен тигүү).

Төмөнкү бөлүктөр талап кылынат:

- Резисторлор: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Бир 10 мкФ керамикалык конденсатор- Бир логикалык деңгээлдеги N-канал MOSFET (мис. RFP30N06LE же AO3400)- Бир кызыл жана бир сары LED (же кааласаңыз башка түстөр).- Эки зымдуу терминалдын коннекторлору x 3 (алар эмес Абдан зарыл, бирок алар тестирлөө учурунда периферияны туташтырууну жана ажыратууну жеңилдетет)- 3.3 V үчүн жакшы болгон катуу пьезо ызы-чуусу ATtiny85 микроконтроллери (PDIP версиясы)- Микроконтроллер үчүн 8 пиндүү PDIP розеткасы (аны башка ESP8266 негизделген модуль менен алмаштырса болот, бирок мындай учурда түзүлүштө көп өзгөрүүлөр болот)-2,3 В 200 мА (500 мА жарылуу) токту жеткире ала турган 3.3 В DC-DC күчөткүч конвертери. киргизүү. (Мен https://www.canton-electronics.com/power-converter… сунуштайм, анткени анын өтө аз тыныгуу агымы)-Бир 3 пинтүү аялдын башы-Эки 4 пиндүү аялдын башы же бир 2x4 башы-22 AWG катуу зымдары суу сенсору үчүн- 22 AWG жипсиз зым (же издерди жаратуу үчүн жука ачык зымдын башка түрү)

Мен жогоруда саналган резистордун маанилерин сунуштайм, бирок сиз алардын көпчүлүгүн окшош баалуулуктарга алмаштыра аласыз. Сиз колдонгуңуз келген диоддордун түрүнө жараша, керектүү жарыктыкты алуу үчүн учурдагы чектөөчү резистордун маанилерин тууралашыңыз керек болот. MOSFET тешик аркылуу же SMT (SOT23) болушу мүмкүн. 330 Ом резисторунун багыты гана MOSFETтин түрүнө таасир этет. Бул схеманы NiMH батареялары менен колдонууну пландап жатсаңыз, PTC сактандыргычы (мис. 1 А үчүн бааланган) сунушталат. Бирок, щелочтуу батареялар менен анын кереги жок. Кеңеш: бул сигнализацияга керектүү тетиктерди ebay же aliexpressтен арзан сатып алууга болот.

Мындан тышкары, сизге ESP-01 модулун программалоо үчүн нанды, бир нече тешикчелүү 10к каршылыгын, бир нече эркек-эркек жана аял-эркек секирүүчү ("дюпонт") зымдары жана USB-UART адаптери керек болот.

Суу сенсорун ар кандай жолдор менен жасаса болот, бирок эң жөнөкөйү - бул бири -биринен болжол менен 1 мм аралыкта (22 см узундукта) ачык AWG зымдары. Максат - суу бар кезде сенсордун контакттарынын ортосунда 5 МОмго жетпеген каршылыкка ээ болуу.

Схема максималдуу батарея үнөмдөө үчүн иштелип чыккан. Ал мониторинг режиминде 40-60 мкА гана тартат (ESP-01 модулунда электрдик LED өчүрүлгөн). Ойготкуч иштетилгенден кийин, схема 300-500 мА (2,4 В киришинде) экинчи же андан аз убакытка тартат, андан кийин ток 180 мАдан төмөн түшөт. ESP модулу эскертмелерди жөнөтүүнү бүтүргөндөн кийин, учурдагы керектөө зумур өчкөнчө 70 мАдан төмөн түшөт. Андан кийин сигнал өзү куралсызданат жана учурдагы керектөө 30 мкАдан төмөн болот. Ошентип, АА батареяларынын топтому чынжырды көп айлар бою (болжол менен бир жылдан ашык) кубаттай алат. Эгерде сиз башка күчөткүчтү колдонсоңуз, айталы, 500 мкА тынымсыз ток менен, батарейкаларды тез -тез алмаштыруу керек болот.

Монтаждоо боюнча кеңештер:

Оңой ширетүү үчүн протобердеги бардык издерди жана компоненттерди белгилөө үчүн туруктуу маркерди колдонуңуз. Мен төмөнкү тартипте улантууну сунуштайм:

- үстү жагында SMT LED жана изоляцияланган зым көпүрөлөр

-жогорку жагы MOSFET (эскертүү: эгерде сизде SOT-23 MOSFET болсо, аны сүрөттөгүдөй диагональ боюнча коюңуз. Эгерде сиз тешиктен MOSFET колдонуп жатсаңыз, дарбазанын пини I3 абалында туурасынан коюңуз.)

- тешик бөлүктөрдүн үстү жагы (эскертүү: ызылдаткыч ширетилбейт жана ал тургай ПХБга орнотулбайт)

- тескери капталдагы SMT бөлүктөрү жана издери (мисалы, AWG22 зымынан алынган жеке талдар)

3 -кадам: Камтылган программа

ATtiny85 үчүн C коду

Main.c түзүлүп, микроконтроллерге жүктөлүшү керек болгон кодду камтыйт. Эгерде сиз Arduino тактасын программист катары колдоно турган болсоңуз, анда бул үйрөткүчтөн электр схемасын таба аласыз. Сиз төмөнкү бөлүмдөрдү гана аткарышыңыз керек (калганын этибарга албаңыз):

-Arduino Uno'ду ISP катары конфигурациялоо (системада программалоо)

- ATtiny85ти Arduino Uno менен туташтыруу.

Камтылган программаны түзүү жана жүктөө үчүн сизге CrossPack (Mac OS үчүн) же AVR toolchain (Windows үчүн) керек болот. Кодду түзүү үчүн төмөнкү буйрукту аткаруу керек:

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.текст -j.маалымат -O ihex main.elf main.hex

Камтылган программаны жүктөө үчүн, төмөнкүлөрдү аткарыңыз:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

"/Dev/cu.usbmodem1411" ордуна сиз Arduino туташкан сериялык портту салышыңыз керек болот (аны Arduino IDE: Tools Портунда таба аласыз).

Код бир нече функцияларды камтыйт. deep_sleep () микроконтроллерди өтө аз кубат абалына болжол менен 8 секундага киргизет. read_volt () батареяны жана сенсордун чыңалуусун өлчөө үчүн колдонулат. Батареянын чыңалуусу ички чыңалуу шилтемесине (2,56 В плюс же минус бир нече пайызга) карата өлчөнөт, ал эми сенсор чыңалуу Vcc = 3,3 В менен өлчөнөт. Окуулар BATT_THRESHOLD жана SENSOR_THRESHOLD менен салыштырмалуу 932 жана 102 катары аныкталат, алар дал келет. ~ 2.3 жана 0.3 V. Сиз батареянын иштөө мөөнөтүн жакшыртуу үчүн батарейканын босогосун төмөндөтө аласыз, бирок ал сунушталбайт (деталдуу маалымат үчүн Батарея тууралуу ойлорду караңыз).

activate_alarm () ESP модулуна сууну аныктоо жөнүндө кабарлайт жана коңгуроону угат. low_batt_notification () ESP модулуна батарейканын аздыгын кабарлайт, ошондой эле коңгуроону угат. Батарейканы алмаштыруу үчүн түн ортосунда ойгонгуңуз келбесе, low_batt_notification () ичинде "| 1 <" дегенди алып салыңыз.

ESP-01 үчүн Arduino эскизи

Мен ESP модулун Arduino HAL аркылуу программалоону чечтим (орнотуу көрсөтмөлөрү үчүн шилтемени караңыз). Мындан тышкары, мен төмөнкү эки китепкананы колдондум:

ESP8266 Gárázz Péter тарабынан электрондук кат жөнөтүү

Arduino Hannover командасы тарабынан ESP8266 Pushover

Биринчи китепкана SMTP серверине туташып, электрондук почтаңызга эскертүү жөнөтөт. Жөн гана ESP үчүн Gmail каттоо эсебин түзүңүз жана ишеним грамоталарын кодго кошуңуз. Экинчи китепкана Pushover кызматы аркылуу push эскертмелерин жөнөтөт (эскертмелер бекер, бирок тиркемени телефонуңузга/планшетиңизге орнотуу үчүн бир жолу төлөшүңүз керек). Эки китепкананы тең жүктөп алыңыз. Электрондук почта китепканасынын мазмунун эскиз папкаңызга салыңыз (arduino эскизин биринчи жолу ачканыңызда аны түзөт). Pushover китепканасын IDE аркылуу орнотуңуз (Sketch -> Include Library -> Add. ZIP library).

ESP-01 модулун программалоо үчүн төмөнкү окуу куралын колдонсоңуз болот: https://www.allaboutcircuits.com/projects/breadbo… Колдонмодо көрсөтүлгөндөй, бир катар казыктарды кайра сатуу менен убара болбоңуз-жөн эле аял-эркек дюпонун колдонуңуз модулдун казыктарын нанга туташтыруу үчүн зымдар. Күчөткүч жана USB-UART адаптери жерди бөлүшүшү керек экенин унутпаңыз (эскертүү: сиз USB-UART адаптеринин 3.3 В чыгарылышын колдоно аласыз, бирок, мүмкүн эмес, бирок жетиштүү ток чыгара алат).

4 -кадам: Батарея жөнүндө ойлонуу

Камтылган программалык камсыздоо коду аз батарея эскертүүсүн жөнөтүү үчүн алдын ала конфигурацияланган жана ~ 2.3 V өчүрүлөт. Бул босого эки NiMH батарейкасы катар колдонулат деген божомолго негизделген. NiMH клеткасын 1 Вден төмөн чыгаруу сунушталбайт, эгер эки клетка тең сыйымдуулукка жана разряддык мүнөздөмөлөргө ээ болсо, экөө тең ~ 1.15 Vда - коопсуз чекте. Бирок, көптөгөн разряд циклдери үчүн колдонулган NiMH клеткалары сыйымдуулугу менен айырмаланат. Потенциалдын 30% га чейинки айырмачылыгына жол берилиши мүмкүн, анткени бул дагы 1 В тегерегиндеги эң төмөнкү чыңалуудагы клеткалардын чекитине алып келет.

Камтылган программада батарейканын босогосун төмөндөтүү мүмкүн болсо да, бул коопсуздук чегин алып салат жана батареянын иштөө мөөнөтүнүн бир аз жогорулашы күтүлүүдө, ал эми батареянын ашыкча агып кетишине жана бузулушуна алып келиши мүмкүн (NiMH клеткасы> 85% 1.15 В).

Дагы бир эске алуу керек болгон фактор, батареянын кубаттуулугу 300-500 мА чыңалуудагы эң аз дегенде 3.0 В (анекдоттук далилдерге ылайык 2.5 В) берүү жөндөмдүүлүгү. NiMH батарейкаларынын ички каршылыгынын төмөндүгү чыңалуудагы токто 0,1 В гана төмөндөшүнө алып келет, андыктан 2,3 В (ачык микросхемага) чейин чыгарылган бир жуп NiMH клеткасы күчөткүч конвертерине жок дегенде 2,2 В камсыздай алат. Бирок, щелочтуу батареялар менен татаалыраак. Бир жуп АА батарейкасы менен 2.2-2.3 В (ачык микросхема) отурганда чыңалуудагы токто 0,2-0,4 В чыңалуунун төмөндөшү күтүлөт. Мен чынжырдын эң жогорку токто 1,8 В чейин сунушталган күчөткүчтөр менен иштээрин ырастаганым менен, бул чыгыш чыңалуусу Espressiff сунуштаган мааниден бир аз төмөндөшүнө алып келет. Ошентип, 2,3 В кесүү босогосу щелочтуу батареялар менен анча-мынча коопсуздук чегин калтырат (микроконтроллер аткарган чыңалуу өлчөө плюс же минус бир нече пайыздын ичинде гана так экенин унутпаңыз). ESP модулунун щелочтуу батареялары аз болгондо ката кетпешин камсыз кылуу үчүн, чыңалуу чыңалуусун 2,4 В чейин жогорулатууну сунуштайм (#define BATT_THRESHOLD 973). 1,2 В (ачык микросхемада) шакар клеткасы 70% га жакын чыгарылат, бул бир клеткага 1.15 В болгон разряддан 5-10 пайыз гана төмөн.

NiMH да, щелочтуу клеткалар да бул колдонмонун артыкчылыктары менен кемчиликтерине ээ. Шилдүү батареялар коопсузураак (кыска болсо от алдырбаңыз) жана алар өзүн-өзү чыгаруунун ылдамдыгынан бир топ төмөн. Бирок, NiMH батареялары ESP8266 ишенимдүүлүк менен иштешине кепилдик берет, анткени алардын ички каршылыгы төмөн. Бирок, акырында, эки түрдү да кээ бир сактык чаралары менен колдонсо болот, андыктан бул жеке каалоо маселеси.

5 -кадам: Укуктан баш тартуу

Бул схема хобби колдонмолору үчүн гана эмес, профессионал хобби тарабынан иштелип чыккан. Бул дизайн ак ниеттүүлүк менен бөлүшүлгөн, бирок эч кандай кепилдик жок. Аны колдонуңуз жана башкалар менен тобокелге салыңыз. Районду кайра жаратуу менен, сиз ойлоп табуучу бул схеманын туура эмес иштеши же кадимкидей колдонулушу аркылуу түз же кыйыр түрдө келип чыгышы мүмкүн болгон (анын ичинде активдердин бузулушу жана жеке жаракат менен чектелбестен) жоопкерчилик тартпасына макулдугуңузду бересиз. Эгерде сиздин өлкөнүн мыйзамдары бул жоопкерчиликтен баш тартууну жокко чыгарса же тыюу салса, сиз бул дизайнды колдоно албайсыз. Эгерде сиз бул дизайнды же ушул дизайнга негизделген өзгөртүлгөн схеманы бөлүшсөңүз, анда бул нускаманын url'ин көрсөтүү менен баштапкы ойлоп табуучуга кредит беришиңиз керек.

Сунушталууда: