Mundarija:

Simsiz bog 'tizimi: 7 qadam
Simsiz bog 'tizimi: 7 qadam

Video: Simsiz bog 'tizimi: 7 qadam

Video: Simsiz bog 'tizimi: 7 qadam
Video: Simsiz aloqa tizimlari 2024, Noyabr
Anonim
Simsiz bog 'tizimi
Simsiz bog 'tizimi

Bu loyiha Arduino -ga asoslangan va "modullar" yordamida siz o'simliklarni sug'orib, harorat, tuproq va yomg'irga kirishga yordam beradi.

Tizim 2, 4 gigagertsli simsiz va ma'lumotlarni yuborish va qabul qilish uchun NRF24L01 modullaridan foydalanadi, menga uning qanday ishlashini tushuntirib beray, PS! Kechirasiz, agar ingliz tili 100 % to'g'ri bo'lmasa, men Shvetsiyadanman.

Men bu tizimni o'simliklarimni nazorat qilish uchun ishlataman, gunohlarim bor, men ularni boshqacha yozishim kerak bo'lgan turli xil o'simliklarga egaman, shuning uchun men zonaga asoslangan log tizimini quraman.

Tuproq namligi va haroratini o'qiydigan tuproq sensori (batareyada ishlaydi) har soatda tekshiradi va ma'lumotlarni Wi -Fi ulangan asosiy mashinaga uzatadi. Ma'lumotlar mening uyimdagi serverga yuklanadi va veb -sahifaga kiradi.

Agar tuproq suvga muhtoj bo'lsa, u qanday sensorni tekshirganiga qarab, to'g'ri nasosni ishga tushiradi. Ammo yomg'ir yog'sa, suv bo'lmaydi. Va agar u juda issiq bo'lsa, u qo'shimcha suv beradi.

Aytaylik, sizda bitta kartoshkali er bor, bittasi tamaki va pomidor uchun, keyin sizda 3 xil datchikli 3 ta zona va 3 ta nasos bo'lishi mumkin.

Harakatlarni tekshiradigan pir -sensorlar ham bor va agar ular veb -sahifada yoqilgan bo'lsa, baland ovozli siren hayvonlarni yoki o'simliklarim yaqinida yurgan odamni qo'rqita boshlaydi.

Umid qilamanki, siz ozgina tushunasiz. Endi so'mlik sensorlar ishlab chiqarishni boshlaylik.

Hamma narsani yuklab oladigan mening GitHub sahifam:

1 -qadam: Tuproq sensori

Tuproq sensori
Tuproq sensori
Tuproq sensori
Tuproq sensori
Tuproq sensori
Tuproq sensori
Tuproq sensori
Tuproq sensori

Har bir sensor veb -sahifaga qo'shiladigan yagona raqamga ega. Shunday qilib, tuproq sensori ushbu tuproq sensori ma'lumotlarini uzatganda, to'g'ri zonaga qo'shiladi. Agar sensor ro'yxatga olinmasa, hech qanday ma'lumot taqdim etilmaydi.

Ushbu qurilish uchun sizga kerak:

  • 1x Atmega328P-PU chipi
  • 1x nRF24L01 moduli
  • 1x 100 uf kondansatör
  • 1x NPN BC547 tranzistorli
  • 2 x 22 pF kondansatörler
  • 1x 16.000 MGts kristalli
  • 1x tuproq namligi sensori
  • 1 x DS18B20 harorat sensori
  • 1x RGB Led (men uchun umumiy anod ishlatiladi)
  • 3x 270 ohmli rezistorlar
  • 1x4, 7 K ohmli qarshilik
  • Batareya (men 3.7V Li-Po batareyasini ishlataman)
  • Va agar li-po ishlatilsa, batareya uchun zaryadlovchi moduli.

Sensorlarni uzoq vaqt ishlashi uchun oldindan tayyorlangan Arduino kartasini ishlatmang, ular batareyani tezda bo'shatadi. Buning o'rniga Atmega328P chipidan foydalaning.

Hammasini elektr varaqimda ko'rsatilgandek ulang. (Rasm yoki PDF -faylga qarang) Quvvat tugmachasini qo'shish tavsiya etiladi, shunda siz zaryad olayotganda quvvatni kesishingiz mumkin.

Kodni yuklashda, ularga yagona identifikator raqamini berish uchun sensorni belgilashni unutmang, kod mening GitHub sahifamda mavjud.

Tuproq datchiklarini uzoq vaqt tirik ushlab turish uchun, men o'qish boshlanganda, ularni yoqish uchun NPN tranzistoridan foydalanaman. Shunday qilib, ular har doim ham faollashtirilmaydi, har bir sensori 45XX dan 5000 gacha bo'lgan identifikatsiya raqamiga ega (bu o'zgarishi mumkin), shuning uchun har bir sensorning yagona raqamlari bo'lishi kerak, faqat kodda aniqlash kerak.

Datchiklar batareyani tejash uchun uxlaydilar.

2 -qadam: Hayvonlar sensori

Hayvonlar sensori
Hayvonlar sensori
Hayvonlar sensori
Hayvonlar sensori
Hayvonlar sensori
Hayvonlar sensori
Hayvonlar sensori
Hayvonlar sensori

Hayvon sensori - oddiy pir sensori. Bu hayvonlar yoki odamlarning issiqligini sezadi. Agar sensor harakatni sezsa. Ular tayanch stantsiyaga yuboriladi.

Ammo hech qanday signal yoqilmaydi, buning uchun siz uni faollashtirishingiz kerak, yoki siz taymerni o'rnatgan bo'lsangiz, u avtomatik ravishda o'sha vaqtda ishga tushadi.

Agar tayanch Animal sensoridan harakat signalini olsa, u uni Siren sensoriga uzatadi va (umid qilamanki) hayvonni qo'rqitadi. Mening sirenim 119 db.

Pir sensori batareyada ishlaydi va men uni eski signal sensori qutisiga joylashtirdim. Hayvon sensoridan chiqadigan kabel faqat batareyani zaryad qilish uchun.

Ushbu sensor uchun sizga kerak:

  • ATMEGA328P-PU chipi
  • 1 x 16000 MGts kristalli
  • 2 x 22 pF kondansatör
  • 1 x Pir sensori moduli
  • 1 x 100 uF kondansatör
  • 1 x NRF24L01 moduli
  • 1 x Led (men bu erda hech qanday RGB LED ishlatmayman)
  • 1 x 220 ohmli qarshilik
  • Agar siz batareyada ishlasangiz, sizga bu kerak (men Li-Podan foydalanaman)
  • Agar zaryadlash batareyasi bo'lsa, zaryadlovchi moduli.
  • Qandaydir quvvat tugmasi.

Elektr varag'ida ko'rganingizdek hamma narsani ulang. Pir sensori batareyadan quvvat olishi uchun tekshiring (ba'zilariga 5v ishlashi kerak).

GitHub -dan kodni oling va ishlatmoqchi bo'lgan jodugar sensori (masalan: SENS1, SENS2 va boshqalar) ni aniqlang, shunda ular noyob raqamlarni oladi.

ATMEGA chipi faqat harakat qayd etilganda uyg'onadi. Pir sensori modulida kechiktirish uchun taymer o'rnatilgan, kodda buning uchun hech narsa yo'q, shuning uchun pir sensori ustidagi qozonni uyg'otib qo'ying.

Bu hayvon sensori uchun, biz davom etmoqdamiz.

3 -qadam: Suv nasosini boshqaruvchi

Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi
Suv nasosini boshqaruvchi

Suv nasosini boshqarish moslamasi dalani sug'orish uchun nasos yoki suv klapanini ishga tushiradi, bu tizim uchun sizga batareya kerak emas, nasosni ishlatish uchun quvvat kerak. Nano. Bundan tashqari, men nasos turlariga ega bo'lishim kerak, biri 12 vt ishlaydigan suv klapanini ishlatadi, shuning uchun men o'rni taxtasida AC 230 dan DC 12v gacha bo'lgan modulga ega bo'laman.

Ikkinchisi - o'rni 230 AC, shuning uchun men 230 V AC nasosini quvvatlantirishim mumkin.

Tizim juda oddiy, har bir nasos boshqaruvchisining o'ziga xos identifikator raqamlari bor, shuning uchun kartoshka maydoni quruq va sensori avtomatik suvga o'rnatildi deylik, keyin kartoshka uchun mo'ljallangan nasosim bu sensorga qo'shiladi. bazaviy tizimga sug'orishni boshlash kerakligini aytadi, shuning uchun tayanch tizim bu nasosni ishga tushirish uchun signal yuboradi.

Veb -sahifada qancha vaqt ishlashini belgilashingiz mumkin (masalan, 5 daqiqa), sensorlar har soatda tekshiradi. Bundan tashqari, nasos to'xtaganda, u tizimda vaqtni saqlaydi, shuning uchun avtomatik tizim tez orada nasosni ishga tushirmaydi. (Veb -sahifada sozlash ham mumkin).

Maxsus vaqtlarni belgilash orqali siz veb -sahifa orqali kechayu kunduz sug'orishni o'chirib qo'yishingiz mumkin. Shuningdek, sug'orishni boshlash uchun har bir nasos uchun taymerlarni o'rnating. Va agar yomg'ir yog'sa, ular sug'ormaydilar.

Tushundingiz degan umiddaman:)

Ushbu loyiha uchun sizga kerak:

  • 1 x Arduino Nano
  • 1 x NRF24L01 moduli
  • 1 x 100 uF kondansatör
  • 1 RGB Led (men uchun umumiy anod ishlatiladi)
  • 3 x 270 ohmli rezistorlar
  • 1 x o'rni taxtasi

Hammasini elektr varaq sifatida ulang (pdf fayl yoki rasmga qarang) GitHub -dan kodni yuklab oling va sensor raqamini belgilashni unutmang.

Va endi sizda nasos boshqaruvchisi bor, tizim bittadan ko'proq narsani boshqarishi mumkin.

4 -qadam: Yomg'ir sensori

Yomg'ir sensori
Yomg'ir sensori
Yomg'ir sensori
Yomg'ir sensori
Yomg'ir sensori
Yomg'ir sensori
Yomg'ir sensori
Yomg'ir sensori

Yomg'ir sensori yomg'irni aniqlash uchun ishlatiladi. Sizga bittadan ortiq kerak emas. Yomg'ir sensori akkumulyator bilan ishlaydi va har 30 daqiqada yomg'ir borligini tekshiradi.

Yomg'ir sensori analog va raqamli pinlardan foydalanadi. Raqamli pin - bu yomg'ir yog'ayotganini tekshirish (raqamli raqam faqat "ha" yoki "yo'q") va siz yomg'ir sensori modulidagi "yomg'ir" haqida ogohlantirish uchun potni yoqishingiz kerak (sensordagi suv darajasi). yomg'ir yog'ishini ko'rsatadi.)

Analog pin sensordagi namlik darajasi haqida ma'lumot berish uchun ishlatiladi.

Agar raqamli pin yomg'ir yog'ayotganini sezsa, sensor uni asosiy tizimga yuboradi. Va "yomg'irli" bo'lguncha asosiy tizim o'simliklarni sug'ormaydi. Sensor shuningdek namlik va batareya holatini ham yuboradi.

Biz faqat yomg'ir sensorini raqamli pin orqali tranzistor orqali o'qish vaqti kelganida quvvatlantiramiz.

Ushbu sensor uchun sizga kerak:

  • ATMEGA328P-PU chipi
  • 1x 16000 MGts kristalli
  • 2 x 22 pF kondansatör
  • 1x Yomg'ir sensori moduli
  • 1 x 100 uF kondansatör
  • 1x NRF24L01 moduli
  • 1x RGB Led (men umumiy anoddan foydalanardim, bu GND o'rniga VCC)
  • 3x 270 Ohmli rezistorlar
  • 1x NPN BC547 tranzistorli
  • 1x batareya (men Li-Po ishlataman)
  • 1x Li-Po zaryadlovchi moduli (agar Li-Po batareyasi ishlatilsa)

Hammasini elektr varaqda ko'rganingizdek ulang (pdf yoki rasmda) Keyin kodni ATMEGA chipiga yuklang, men GitHub sahifasida yomg'ir sensori ostida toping, to'g'ri identifikator raqamini olish uchun sensorni belgilashni unutmang.

Va endi sizda har 30 daqiqada ishlaydigan yomg'ir sensori bo'ladi, agar siz xohlamasangiz, vaqtni o'zgartirishingiz mumkin.

CounterHandler () funktsiyasida siz chipning uyg'onish vaqtini belgilashingiz mumkin. Siz shunday hisoblaysiz: chiplar har 8 soniyada uyg'onadi va har safar qiymatini oshiradi. Shunday qilib, 30 daqiqa davomida siz 225 marta harakat qilishingiz kerak bo'ladi.. Shunday qilib, yarim soatda 1800 soniya bor. Shunday qilib, uni 8 ga bo'ling (1800/8), siz 225 olasiz. Bu shuni anglatadiki, u sensori 225 marta ishlamaguncha tekshirmaydi va bu taxminan 30 minut bo'ladi. Siz tuproq sensori bilan ham shunday qilasiz.

5 -qadam: Hayvonlar sirenasi

Hayvon sirenasi
Hayvon sirenasi
Hayvon sirenasi
Hayvon sirenasi
Hayvon sirenasi
Hayvon sirenasi
Hayvon sirenasi
Hayvon sirenasi

Agar hayvon sensori harakatni aniqlasa, siren ishga tushadi. Men haqiqiy sirenni ishlataman, shuning uchun odamlarni qo'rqitaman. Ammo siz faqat hayvonlar eshitadigan sirenalarni ishlatishingiz mumkin.

Men bu loyihada Arduino nanosidan foydalanaman va uni 12v quvvat bilan quvvatlayman. Siren ham 12 v, shuning uchun o'rni o'rniga men sirenani yoqish uchun 2N2222A tranzistoridan foydalanaman. Agar siz o'rni bir xil bo'lsa, siz Arduino -ga zarar etkazishingiz mumkin. Shuning uchun men sirenni yoqish uchun tranzistorni ishlataman.

Ammo agar sizning sirenangiz va Arduino bir xil erdan foydalanmasa, siz uning o'rnini o'rni bilan ishlatishingiz mumkin. Transistor va 2.2K qarshiligini o'tkazib yuboring va uning o'rniga o'rni taxtasidan foydalaning. Bundan tashqari, "YUQORI" dan "LOW" ga o'tish faollashtirilganda va 10 -pin uchun "LOW" dan "HIGH" ga "raqamli o'qish" ni faolsizlantirganda Arduino kodining o'zgarishi, o'rni "LOW" ni pastda ishlatadi va tranzistor "HIGH" ni ishlatadi, shuning uchun siz uni o'zgartirishingiz kerak.

Ushbu qurilish uchun sizga kerak:

  • 1x Arduino nano
  • 1x 2.2K rezistor (o'rni taxtasidan foydalansangiz o'tkazib yuboring)
  • 1x 2N2222 tranzistorli
  • 1x siren
  • 3x 270 Ohm qarshilik
  • 1x RGB Led (GND o'rniga oddiy anod, VCC ishlataman)
  • 1X NRF24L01 moduli
  • 1 x 100 uF kondansatör

PDF yoki rasmdagi elektr varaqda ko'rib turganingizdek hamma narsani ulang. Kodni GitHub sahifasida Hayvonlar sirenasi ostida topilgan Arduino -ga yuklang Sensorni to'g'ri identifikatsiya qilish uchun raqamni belgilashni unutmang.

Va endi sizda ishlaydigan siren bor.

6 -qadam: Asosiy tizim

Asosiy tizim
Asosiy tizim
Asosiy tizim
Asosiy tizim
Asosiy tizim
Asosiy tizim

Asosiy tizim barcha modullarning eng muhimidir. U holda siz bu tizimdan foydalana olmaysiz. Asosiy tizim ESP-01 moduli bilan Internetga ulangan va biz uni ulash uchun Arduino Megas Serial1 pinlaridan foydalanmoqdamiz. RX Mega -dan TX -ga ESP -da, lekin biz voltni 3,3 ga tushirish uchun ikkita rezistordan o'tishimiz kerak. Va EX -da RX -dan Mega -dagi TX.

ESP modulini o'rnating

ESP -dan foydalanish uchun siz avval uning tezligini 9600 ga o'rnatishingiz kerak, men bu loyihada ishlatganman va ESP eng yaxshi ishlashini aniqladim. Qutidan 115200 bod tezligi o'rnatildi, siz sinab ko'rishingiz mumkin, lekin meniki unchalik barqaror emas edi. Buni amalga oshirish uchun sizga Arduino kerak (Mega yaxshi ishlaydi) va siz ESP TX -ni (varaqda ko'rib turganingizdek rezistorlar orqali) Serial TX -ga (Mega ishlatilsa Serial1 emas) va ESP -dagi RX -ni Arduino Serial -ga ulashingiz kerak. RX.

Ko'z ochish eskizini (yoki ketma -ket ishlatilmaydigan har qanday eskizni) yuklang va ketma -ket monitorni oching va chiziq tezligini 115200 va NR & CR ga sozlang.

Buyruq satriga AT yozing va Enter tugmasini bosing. Siz "OK" degan javobni olishingiz kerak, shuning uchun biz ESP ishlayotganini bilamiz. (Agar ulanish muammosi yoki yomon ESP-01 moduli bo'lmasa)

Endi buyruq satriga AT+UART_DEF = 9600, 8, 1, 0, 0 yozing va enter tugmasini bosing.

U OK bilan javob beradi va bu biz tezlikni 9600 ga o'rnatganimizni bildiradi. ESPni quyidagi buyruq bilan qayta ishga tushiring: AT+RST va enter tugmasini bosing. Seriyali monitorda uzatiladigan tezlikni 9600 ga o'zgartiring va AT kiriting va enter tugmasini bosing. Agar siz OK ni qaytarib olsangiz, ESP 9600 uchun o'rnatiladi va siz uni loyiha uchun ishlatishingiz mumkin.

SD -karta moduli

Tizimning Wi -Fi sozlamalarini o'zgartirish, yangi parol yoki wifi nomini o'zgartirish oson bo'lishini xohlayman. Shuning uchun bizga SD -karta moduli kerak. SD -karta ichida config.txt nomli matnli fayl yarating va biz o'qish uchun JSON -dan foydalanamiz, shuning uchun bizga JSON formati kerak. Shunday qilib, matnli faylda quyidagi matn bo'lishi kerak:

}

Wi -Fi tarmog'ini to'g'rilash uchun matnni katta harflar bilan o'zgartiring.

Biz NRF24L01 -dan foydalanib, SPI -ni ishlatamiz va SD -kartani o'quvchi ham SPI -ni ishlatadi, biz SDFat kutubxonasidan foydalanishimiz kerak, shuning uchun biz SoftwareSPI -dan foydalanishimiz mumkin (biz har qanday pinlarga SD -kartani o'quvchi qo'shishimiz mumkin).

DHT sensori

Bu tizim tashqarida joylashgan va DHT sensori bilan jihozlangan, shuning uchun biz havoning namligi va haroratini nazorat qila olamiz. Issiq kunlarda qo'shimcha sug'orish uchun ishlatiladi.

Ushbu qurilish uchun sizga kerak:

  • 1x Arduino Mega
  • 1x NRF24L01 moduli
  • 1x ESP-01 moduli
  • 1 x SPI Micro SD karta moduli
  • 1x DHT-22 sensori
  • 1x RGB Led (GND o'rniga oddiy anod, VCC ishlatardim)
  • 3x 270 Ohmli rezistorlar
  • 1x 22 K Ohm qarshilik
  • 2x 10 K Ohm qarshilik

ESP-01 moduli barqaror bo'lmasa, uni tashqi 3.3V quvvat manbaidan quvvatlantirishga harakat qiling.

PDF fayli yoki rasmdagi elektr varaqda ko'rib turganingizdek hamma narsani ulang.

Kodni Arduino Mega -ga yuklang va sharhlar uchun butun kodni tekshirishni unutmang, chunki siz xostni serverga bir nechta joyga o'rnatishingiz kerak (bu men bilgan eng yaxshi yechim emas).

Endi sizning asosiy tizimingiz foydalanishga tayyor. Tuproq namligi gunohlari kodidagi o'zgaruvchilarni o'zgartirishingiz shart emas, siz buni veb -sahifadan qilishingiz mumkin.

7 -qadam: Internet tizimi

Veb tizimi
Veb tizimi
Veb tizimi
Veb tizimi
Veb tizimi
Veb tizimi
Veb tizimi
Veb tizimi

Tizimdan foydalanish uchun sizga veb -server ham kerak. Men malina pi ni Apache, PHP, Mysql, Gettext bilan ishlataman. Veb tizimi ko'p tilli, shuning uchun uni o'z tilingizda oson qilishingiz mumkin. Bu shved va ingliz tillari bilan birga keladi (ingliz tilida noto'g'ri ingliz tili bo'lishi mumkin, mening tarjimam 100 %emas). Shuning uchun sizga Gettext serveri, shuningdek, mahalliy tillar o'rnatilgan bo'lishi kerak.

Men sizga tizimdan bir nechta ekran tasvirlarini ko'rsataman.

Bu oddiy kirish tizimi bilan birga keladi va asosiy login: foydalanuvchi sifatida administrator va parol sifatida suv.

Uni ishlatish uchun siz uchta cron ishini o'rnatishingiz kerak (ularni cronjob papkasida topasiz)

Timer.php faylini har soniyada ishga tushirish kerak. Bu teshik tizimi uchun barcha avtomatizatsiyani o'z ichiga oladi. Temperatur.php fayl nomi tizimga havo harorati o'qilishi va uni qayd etishini aytish uchun ishlatiladi. Shunday qilib, siz uni qanchalik tez -tez ishlatmoqchi bo'lsangiz, cron ishini sozlashingiz kerak. Menda har 5 daqiqada bor, keyin dagstatistik.php deb nomlangan fayl faqat yarim tundan oldin ishga tushishi kerak (23:30, 23:30 kabi). U kun davomida sensorlardan olingan qiymatlarni oladi va uni hafta va oy statikasida saqlaydi.

E'tibor bering, bu tizim haroratni Selsiyda saqlaydi, lekin siz Farengeytga o'tishingiz mumkin.

Db.php faylida siz tizim uchun mysql ma'lumotlar bazasi ulanishini o'rnatasiz.

Birinchidan, sensorlarni tizimga qo'shing. Va keyin zonalarni yarating va zonalarga sensorlar qo'shing.

Agar sizda tizimda xatolar yoki savollar bo'lsa, ularni GitHub sahifasida xabar qiling. Siz veb -tizimdan foydalanishingiz mumkin va uni sotishga ruxsat berilmagan.

Agar sizda gettext uchun mahalliy tillar bilan bog'liq muammolar bo'lsa, esda tutingki, agar siz malinani server sifatida ishlatsangiz, ular tez-tez en_US. UTF-8 deb nomlanadi, shuning uchun siz bu o'zgarishlarni i18n_setup.php fayli va mahalliy papka ostida qilishingiz kerak. Aks holda, siz shved tiliga yopishib qolasiz.

Siz uni GitHub sahifasida yuklab olasiz.

Tavsiya: