Мазмұны:

Сымсыз бақша жүйесі: 7 қадам
Сымсыз бақша жүйесі: 7 қадам

Бейне: Сымсыз бақша жүйесі: 7 қадам

Бейне: Сымсыз бақша жүйесі: 7 қадам
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Қараша
Anonim
Сымсыз бақша жүйесі
Сымсыз бақша жүйесі

Бұл жоба Arduino -ға негізделген және өсімдіктерді суаруға, температура мен топыраққа және жаңбырға кіруге көмектесу үшін «модульдерді» қолданады.

Жүйе 2, 4 ГГц жиілігінде сымсыз және деректерді жіберу мен қабылдау үшін NRF24L01 модульдерін қолданады, оның қалай жұмыс істейтіні туралы аздап түсіндіріп берейін, PS! Кешіріңіз, егер ағылшын 100 % дұрыс болмаса, мен Швецияданмын.

Мен бұл жүйені өсімдіктерімді басқару үшін қолданамын, менде әр түрлі өсімдіктер бар, оларды әр түрлі тіркеу үшін қажет, сондықтан мен аймаққа негізделген журнал жүйесін құрамын.

Топырақтың ылғалдылығы мен температурасын оқитын топырақ датчиктері (батареямен жұмыс істейді) әр сағат сайын тексереді және деректерді Wi -Fi байланысы бар негізгі машинаға береді. Деректер менің үйімдегі серверге жүктеледі және веб -бетке кіреді.

Егер топыраққа су қажет болса, ол сенсор тексерген топыраққа байланысты дұрыс сорғыны қосады. Бірақ егер жаңбыр жауса, ол су алмайды. Ал егер шынымен ыстық болса, ол қосымша суарады.

Сізде бір картоп жері бар, біреуі темекі үшін және біреуі қызанақ болса, онда сізде 3 түрлі сенсоры бар 3 аймақ және 3 сорғы болуы мүмкін.

Қозғалысты тексеретін пир сенсорлары да бар, егер олар веб -бетте іске қосылса, қатты сирена жануарды немесе менің өсімдіктеріме жақын жүрген адамды қорқыта бастайды.

Сіз кішкене түсінесіз деп үміттенемін. Енді сом датчиктерін жасай бастайық.

Менің GitHub бетім, сіз бәрін жүктейсіз:

1 -қадам: Топырақ сенсорлары

Топырақ датчиктері
Топырақ датчиктері
Топырақ датчиктері
Топырақ датчиктері
Топырақ датчиктері
Топырақ датчиктері
Топырақ датчиктері
Топырақ датчиктері

Әрбір сенсордың веб -бетке қосылатын бірегей нөмірі бар. Сонымен, топырақ сенсоры топырақ сенсорынан алынған ақпаратты дұрыс аймаққа қосады. Егер сенсор тіркелмесе, ешқандай деректер жіберілмейді.

Бұл құрылыс үшін сізге қажет:

  • 1x Atmega328P-PU чипі
  • 1x nRF24L01 модулі
  • 1x 100 uf конденсатор
  • 1x NPN BC547 транзисторы
  • 2x 22 pF конденсаторлар
  • 1х 16.000 МГц кристалл
  • 1x Топырақ ылғалдылығы сенсоры
  • 1x DS18B20 температура сенсоры
  • 1x RGB Led (Жалпы анодты мен қолданамын)
  • 3x 270 Ом резисторлары
  • 1х 4, 7 К Ом резисторы
  • Батарея (мен 3,7 вольтты Li-Po батареясын қолданамын)
  • Егер li-po қолданылса, батареяға арналған зарядтағыш модулі.

Сенсорлардың ұзақ жұмыс істеуі үшін алдын ала дайындалған Arduino тақтасын пайдаланбаңыз, олар батареяны тез босатады. Оның орнына Atmega328P чипін қолданыңыз.

Барлығын менің электрлік парағымда көрсетілгендей қосыңыз. (Суретті немесе PDF файлын қараңыз) Қуат қосқышын қосу ұсынылады, осылайша зарядтау кезінде қуатты өшіруге болады.

Кодты жүктеу кезінде бірегей идентификатор нөмірін беру үшін сенсорды анықтауды ұмытпаңыз, бұл код менің GitHub бетімде бар.

Топырақ датчиктерін ұзақ уақыт бойы тірі қалдыру үшін мен NPN транзисторын қолдаймын, тек оқу басталғанда. Сондықтан олар үнемі белсендірілмейді, әр сенсорда 45XX -тен 5000 -ға дейінгі идентификатор нөмірі бар (оны өзгертуге болады), сондықтан әр сенсордың бірегей нөмірлері болуы керек, тек кодта анықтау қажет.

Датчиктер батареяны үнемдеу үшін ұйықтайды.

2 -қадам: жануарлар сенсоры

Жануарлар сенсоры
Жануарлар сенсоры
Жануарлар сенсоры
Жануарлар сенсоры
Жануарлар сенсоры
Жануарлар сенсоры
Жануарлар сенсоры
Жануарлар сенсоры

Жануарлар сенсоры - бұл қарапайым пир сенсоры. Ол жануарлардың немесе адамдардың жылуын сезеді. Егер сенсор қозғалысты сезсе. Олар базалық станцияға жібереді.

Бірақ ешқандай дабыл болмайды, ол үшін бетте сіз оны белсендіруіңіз керек, немесе таймер орнатсаңыз, ол сол уақытта автоматты түрде қосылады.

Егер база Animal сенсорынан қозғалыс сигналын алса, ол оны сирена сенсорына береді және ол (менің ойымша) жануарды қорқытады. Менің сиренам 119 дБ.

Пир сенсор батареямен жұмыс істейді, мен оны ескі дабылдан ескі пирс корпусына салдым. Жануарлардың сенсорынан шығатын кабель тек аккумуляторды зарядтауға арналған.

Бұл сенсор үшін сізге қажет:

  • ATMEGA328P-PU чипі
  • 1 x 16 000 МГц кристалл
  • 2 x 22 pF конденсатор
  • 1 x Пир сенсорлық модуль
  • 1 x 100 uF конденсатор
  • 1 x NRF24L01 модулі
  • 1 x Led (мен мұнда RGB светодиодты қолданбаймын)
  • 1х220 Ом резистор
  • Егер сіз батареямен жұмыс жасайтын болсаңыз, сізге қажет (мен Li-Po қолданамын)
  • Егер сізде қайта зарядтау батареясы болса, батареяны зарядтау модулі.
  • Қандай да бір қуат қосқышы.

Барлығын электр парағында көргендей қосыңыз. Пир сенсорды батареядан қуаттандыруға болатынын тексеріңіз (кейбіреулерге 5 вольтты қосу қажет).

Менің GitHub -тан кодты алыңыз және сіз қолданатын сиқыр сенсорын анықтаңыз (мысалы: SENS1, SENS2 және т.б.), олар бірегей нөмірлерді алады.

ATMEGA чипі қозғалыс тіркелген кезде ғана оянады. Пин сенсор модулі кешіктіру үшін таймерге кіргізді, кодта бұл үшін ештеңе жоқ, сондықтан пирс сенсорындағы кастрюльді кешіктіру үшін оятыңыз.

Бұл жануар сенсоры үшін, біз әрі қарай жүреміз.

3 -қадам: Су сорғысының реттегіші

Су сорғысының реттегіші
Су сорғысының реттегіші
Су сорғысының реттегіші
Су сорғысының реттегіші
Су сорғысының реттегіші
Су сорғысының реттегіші
Су сорғысының реттегіші
Су сорғысының реттегіші

Су сорғысының реттегіші - егістік алқаптарын суару үшін сорғы немесе су клапаны. Бұл жүйеде сізге батарея қажет емес, сорғыны іске қосу үшін қуат қажет. Нано Сондай -ақ, мен 12 вольтта жұмыс істейтін су клапанын қолданатын сорғы түрлерін алуым керек, сондықтан менде релелік тақтада айнымалы токтың 230 -дан 12 -ге дейінгі ток модулі бар.

Екіншісі - релеге 230 айнымалы ток, сондықтан мен 230 В айнымалы ток сорғысын қуаттай аламын.

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

Сенсорлар тек сағат сайын тексеретін веб -бетте (мысалы, 5 минут) қанша уақыт жұмыс істейтінін орнатуға болады. Сондай -ақ, сорғы тоқтаған кезде ол жүйеде уақытты сақтайды, сондықтан автоматты жүйе сорғыны жақында іске қоспайды. (Сондай -ақ, веб -бетте орнатуға болады).

Сіз сондай -ақ веб -беттің көмегімен арнайы уақытты орнату арқылы түнде/күнде суаруды өшіре аласыз. Сондай -ақ, суаруды бастау үшін әр сорғы үшін таймерлерді орнатыңыз. Ал жаңбыр жауса, олар суармайды.

Сіз түсінесіз деп үміттенемін:)

Бұл жоба үшін сізге қажет:

  • 1 x Arduino Nano
  • 1 x NRF24L01 модулі
  • 1 x 100 uF конденсатор
  • 1 RGB Led (жалпы анодты мен қолданамын)
  • 3 x 270 Ом резисторлар
  • 1 x реле тақтасы

Барлығын электр парағы ретінде қосыңыз (pdf файлын немесе суретті қараңыз) GitHub -тен кодты жүктеңіз және сенсор нөмірін анықтауды ұмытпаңыз.

Ал енді сізде сорғы реттегіші бар, жүйе бір ғана емес.

4 -қадам: жаңбыр сенсоры

Жаңбыр сенсоры
Жаңбыр сенсоры
Жаңбыр сенсоры
Жаңбыр сенсоры
Жаңбыр сенсоры
Жаңбыр сенсоры
Жаңбыр сенсоры
Жаңбыр сенсоры

Жаңбыр сенсоры жаңбырды анықтау үшін қолданылады. Сізге біреуден артық қажет емес. Бұл жаңбыр датчигі батареямен жұмыс істейді және әр 30 минут сайын жаңбырдың бар -жоғын тексереді.

Жаңбыр сенсоры аналогты және цифрлық түйреуіштерді қолданады. Цифрлық түйреуіш жаңбырдың жауғанын тексереді, (цифрлық сан тек иә немесе жоқ) көрсетеді, ал жаңбыр туралы сенсор модуліндегі кастрюльді «жаңбыр» туралы ескертуге болады (сенсордағы су деңгейі) жаңбыр жауғанын көрсетеді.)

Аналогты түйреуіш сенсорда қаншалықты ылғалды екенін пайызбен хабарлау үшін қолданылады.

Егер цифрлық түйреуіш жаңбыр екенін анықтаса, сенсор оны негізгі жүйеге жібереді. Ал базалық жүйе өсімдіктерді «жаңбыр» жауып тұрғанша суармайды. Сенсор сонымен қатар оның ылғалдылығын және батареяның күйін жібереді.

Біз жаңбыр датчигін цифрлық түйреуіш арқылы қосылатын транзистор арқылы оқу уақыты келгенде ғана қосамыз.

Бұл сенсор үшін сізге қажет:

  • ATMEGA328P-PU чипі
  • 1х 16 000 МГц кристалл
  • 2x 22 pF конденсатор
  • 1x Жаңбыр сенсоры модулі
  • 1x 100 uF конденсатор
  • 1x NRF24L01 модулі
  • 1x RGB Led (мен жалпы анодты қолдандым, бұл GND орнына VCC)
  • 3x 270 Ом резисторлары
  • 1x NPN BC547 транзисторы
  • 1x батарея (мен Li-Po қолданамын)
  • 1x Li-Po зарядтағыш модулі (егер Li-Po батареясы қолданылса)

Барлығын электр парағында көріп тұрғандай қосыңыз (pdf немесе суретте) Содан кейін кодты ATMEGA чипіне жүктеңіз, жауын сенсоры астында GitHub бетінде таба аласыз Дұрыс идентификатор нөмірін алу үшін сенсорды анықтауды ұмытпаңыз.

Ал енді сізде әр 30 минут сайын жұмыс істейтін жаңбыр датчигі болады, егер сіз мұны аз немесе көп қаламасаңыз, уақытты өзгерте аласыз.

CounterHandler () функциясында сіз чиптің ояту уақытын орната аласыз. Сіз былай есептейсіз: чиптер әр 8 секунд сайын оянады және әр уақытта мәнді жоғарылатады. 30 минут ішінде сіз әрекеттерді орындамас бұрын 225 рет аласыз.. Демек, жарты сағатта 1800 секунд бар. Сондықтан оны 8 -ге бөліңіз (1800/8), сіз 225 аласыз. Яғни ол сенсорды 225 рет жұмыс істемейінше тексермейді және бұл шамамен 30 минут болады. Сіз топырақ сенсорында да осылай жасайсыз.

5 -қадам: Жануарларға арналған сирена

Жануарлық сирена
Жануарлық сирена
Жануарлық сирена
Жануарлық сирена
Жануарлық сирена
Жануарлық сирена
Жануарлық сирена
Жануарлық сирена

Жануарлар сиренасы қарапайым, егер жануарлар сенсоры қозғалысты анықтаса, сирена қосылады. Мен нағыз сиренаны қолданамын, сондықтан мен онымен адамдарды қорқытамын. Бірақ сіз жануарлар ғана еститін сиреналарды қолдана аласыз.

Мен бұл жобада Arduino наносын қолданамын және оны 12 вольтты қуаттандырамын. Сирена 12 вольтты құрайды, сондықтан реленің орнына мен сиренаны қосу үшін 2N2222A транзисторын қолданамын. Егер сізде реле бірдей болса, сіз Arduino -ға зақым келтіре аласыз. Сондықтан мен сиренаны қосу үшін транзисторды қолданамын.

Бірақ егер сіздің сирена мен Arduino бірдей жерді пайдаланбаса, оның орнына релені қолдануға болады. Транзистор мен 2.2K резисторды өткізіп жіберіңіз және оның орнына реле тақтасын қолданыңыз. Сондай -ақ, жоғарыдан төменге ауысу белсендірілген кезде Arduino коды өзгереді және 10 -түйреу үшін LOW -дан HIGH -ге дейін цифрлық мәні оқшауланбаған кезде, реле LOW -ты қосады, ал транзистор HIGH -ды қолданады, сондықтан оны ауыстыру қажет.

Бұл құрылыс үшін сізге қажет:

  • 1x Arduino нано
  • 1x 2.2K резисторы (релелік тақтаны пайдалануды өткізіп жіберіңіз)
  • 1x 2N2222 транзисторы
  • 1x сирена
  • 3x 270 Ом резисторы
  • 1x RGB Led (мен жалпы анодты қолданамын, GND орнына VCC)
  • 1X NRF24L01 модулі
  • 1x 100 uF конденсатор

Электр парағында PDF немесе суреттегідей бәрін қосыңыз. Кодты GitHub бетінде жануарлар сиренасы астында орналасқан Arduino -ға жүктеңіз Дұрыс идентификатор нөмірі үшін сенсорды анықтауды ұмытпаңыз.

Ал енді сізде жұмыс істейтін сирена бар.

6 -қадам: Негізгі жүйе

Негізгі жүйе
Негізгі жүйе
Негізгі жүйе
Негізгі жүйе
Негізгі жүйе
Негізгі жүйе

Негізгі жүйе барлық модульдердің ішіндегі ең маңыздысы болып табылады. Онсыз сіз бұл жүйені пайдалана алмайсыз. Негізгі жүйе ESP-01 модулімен интернетке қосылған және біз оны қосу үшін Arduino Megas Serial1 түйреуіштерін қолданамыз. RX Mega -ден EX -ке TX -ке дейін, бірақ кернеуді 3,3 -ке дейін төмендету үшін бізге екі резистор арқылы өту керек. Ал TX Mega on EX -тен RX -ке дейін.

ESP модулін орнатыңыз

ESP пайдалану үшін алдымен оған жіберу жылдамдығын 9600 -ге орнату керек, бұл мен осы жобада қолдандым және мен ESP ең жақсы жұмыс істейтінін анықтадым. Қораптан ол 115200 жіберу жылдамдығына орнатылды, сіз оны сынап көре аласыз, бірақ менікі соншалықты тұрақты болмады. Мұны істеу үшін сізге Arduino қажет (Mega жақсы жұмыс істейді) және сізге ESP TX -ті (парақта көрсетілгендей резисторлар арқылы) Serial TX -ке (Mega қолданғанда Serial1 емес) және RSP -ті Arduino Serial -ге қосу керек. RX.

Жыпылықтайтын эскизді (немесе сериялық қолданылмайтын кез келген эскизді) жүктеңіз және сериялық мониторды ашыңыз және жол жылдамдығына 115200 және NR & CR мәнін беріңіз.

Пәрмен жолында AT жазыңыз және enter пернесін басыңыз. Сіз OK деп жауап беруіңіз керек, сондықтан қазір біз ESP жұмыс істейтінін білеміз. (Олай болмаған жағдайда қосылу ақаулығы немесе нашар ESP-01 модулі)

Енді пәрмен жолында AT+UART_DEF = 9600, 8, 1, 0, 0 деп жазып, enter пернесін басыңыз.

Ол OK -пен жауап береді, бұл біз өткізу жылдамдығын 9600 -ге орнатқанымызды білдіреді. ESP -ті келесі пәрменмен қайта іске қосыңыз: AT+RST және enter пернесін басыңыз. Сериялық монитордағы беру жылдамдығын 9600 -ге өзгертіңіз және AT енгізіңіз және enter пернесін басыңыз. Егер сіз қалпына келтірсеңіз, ESP 9600 үшін орнатылған және сіз оны жоба үшін пайдалана аласыз.

SD картасы модулі

Мен жүйенің WIFI параметрлерін өзгерту оңай болғанын қалаймын, жаңа құпия сөзді немесе wifi атауын өзгерткенде. Сондықтан бізге SD картасы модулі қажет. SD картасының ішінде config.txt атауы бар мәтіндік файл жасаңыз және біз оқу үшін JSON қолданамыз, сондықтан бізге JSON пішімі қажет. Сондықтан мәтіндік файлда келесі мәтін болуы керек:

{«ssid»: «YOURWIFISSID», «losen»: «ЖЕТКІЗУШІЛІК СӨЗІҢІЗ»

}

Wi -Fi желісін түзету үшін мәтінді үлкен әріптермен өзгертіңіз.

Біз NRF24L01 қолданатын күнәлар SPI мен SD картасын оқу құралы SPI -ді қолданады, сондықтан біз SoftwareSPI -ді қолдану үшін SDFat кітапханасын пайдалануымыз керек (біз SD картасын оқу құралын кез келген түйреуіштерге қосуға болады)

DHT сенсоры

Бұл жүйе сыртта орналасқан және DHT сенсоры бар, сондықтан біз ауаның ылғалдылығы мен температурасын тексере аламыз. Ол ыстық күндері қосымша суару үшін қолданылады.

Бұл құрылыс үшін сізге қажет:

  • 1x Arduino Mega
  • 1x NRF24L01 модулі
  • 1x ESP-01 модулі
  • 1x SPI Micro SD картасының модулі
  • 1x DHT-22 сенсоры
  • 1x RGB Led (мен жалпы анодты қолдандым, GND орнына VCC)
  • 3x 270 Ом резисторлары
  • 1х 22 К Ом резисторы
  • 2х 10 К Ом резисторы

Назар аударыңыз, егер сізде ESP-01 модулі тұрақты болмаса, оны сыртқы 3.3В қуат көзінен қуаттауға тырысыңыз.

PDF файлындағы немесе суреттегі электр парағында көріп тұрғаныңыздай бәрін қосыңыз.

Кодты Arduino Mega -ге жүктеңіз және түсініктемелер үшін барлық кодты тексеруді ұмытпаңыз, себебі хостты серверге бірнеше жерде орнату қажет (бұл мен білетін ең жақсы шешім емес).

Енді сіздің базалық жүйеңіз пайдалануға дайын. Топырақтың ылғалдылығы үшін кодтағы айнымалыларды өзгертудің қажеті жоқ, сіз оны веб -беттен жасай аласыз.

7 -қадам: веб -жүйе

Веб жүйесі
Веб жүйесі
Веб жүйесі
Веб жүйесі
Веб жүйесі
Веб жүйесі
Веб жүйесі
Веб жүйесі

Жүйені пайдалану үшін сізге веб -сервер қажет. Мен таңқурай pi қолданамын Apache, PHP, Mysql, Gettext. Веб жүйесі көп тілді, сондықтан сіз оны өз тіліңізде оңай жасай аласыз. Ол швед және ағылшын тілдерімен бірге келеді (ағылшын тілінде қате ағылшын тілі болуы мүмкін, менің аудармам 100 %емес.) Сондықтан сізге Gettext сервері, сонымен қатар жергілікті тілдер орнатылуы керек.

Мен сізге жоғарыда жүйеден скриншоттарды көрсетемін.

Ол қарапайым кіру жүйесімен бірге келеді және негізгі логин: пайдаланушы ретінде әкімші және пароль ретінде су.

Оны пайдалану үшін сіз үш cron тапсырмасын орнатуыңыз керек (оларды cronjob қалтасынан табасыз)

Timer.php файлы әр секунд сайын іске қосылуы керек. Бұл тесік жүйесі үшін барлық автоматтандыруды сақтайды. Temperatur.php файл атауы жүйеге ауа температурасын оқу және оны тіркеу үшін хабарлау үшін қолданылады. Сондықтан сіз оны қаншалықты жиі іске қосатындығыңызға байланысты cron жұмысын орнатуыңыз керек. Менде әр 5 минут сайын болады, содан кейін dagstatistik.php деп аталатын файл түн ортасына дейін бір рет қана жұмыс істеуі керек (23:30, 23:30 сияқты). Ол күндізгі сенсорлардан алынған мәндерді алады және оны апта мен ай статикасына сақтайды.

Назар аударыңыз, бұл жүйе температураны Цельсийде сақтайды, бірақ сіз Фаренгейтке ауыса аласыз.

Db.php файлында сіз жүйеге mysql дерекқорының қосылымын орнатасыз.

Алдымен сенсорларды жүйеге қосыңыз. Содан кейін аймақтарды жасаңыз және аймақтарға сенсорларды қосыңыз.

Егер сізде сұрақтар туындаса немесе жүйеде қателер табылса, оларды GitHub бетінде хабарлаңыз. Сіз веб -жүйені қолдана аласыз және оны сатуға рұқсат жоқ.

Егер сізде gettext үшін жергілікті тілдермен проблемалар туындаса, егер сіз таңқурайды сервер ретінде қолдансаңыз, олар жиі en_US. UTF-8 деп аталады, сондықтан сіз бұл өзгерістерді i18n_setup.php файлында және тіл қалтасында жасауыңыз керек. Әйтпесе, сіз швед тілінде қаласыз.

Сіз оны GitHub бетінде жүктейсіз.

Ұсынылған: