Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Онцлог шинж чанарууд
- Алхам 2: ПХБ
- Алхам 3: угсрах
- Алхам 4: Програмчлалын тойм
- Алхам 5: Оролтууд
- Алхам 6: Гаралт
- Алхам 7: Бүртгэл хийх
- Алхам 8: Buzzer
- Алхам 9: IoT -ийн гадаад интеграцчлал
- Алхам 10: Хэрэглээ
- Алхам 11: Ирээдүйн төлөвлөгөө
Видео: ESP32 Smart Home Hub: 11 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Их хэмжээний мэдрэгчийн өгөгдлийг зохицуулах, олон гаралттай байх, интернет эсвэл дотоод сүлжээнд холбогдох системийг бий болгоход урт хугацаа, ихээхэн хүчин чармайлт шаардагдана. Ихэнхдээ өөрсдийн ухаалаг гэрийн сүлжээг бий болгохыг хүсдэг хүмүүс өөрчлөн тохируулсан бүрэлдэхүүн хэсгүүдийг олж, том систем болгон угсрах чадвартай тулгардаг. Тийм ч учраас би IoT-тэй холбогдсон мэдрэгч, гаралтыг бүтээхэд хялбар модульчлагдсан, онцлог шинж чанартай платформ хийхийг хүсч байсан юм.
Энэхүү төслийг ивээн тэтгэсэн DFRobot болон PCBGOGO.com -д баярлалаа!
Дэлгэрэнгүй мэдээллийг Github репо руу зочилно уу:
Хангамж
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
DHT22 мэдрэгч
www.dfrobot.com/product-1102.html
-
APDS9960 гэрэл ба дохио мэдрэгч
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD модуль
www.dfrobot.com/product-590.html
-
Аналог RGB LED зурвас
www.dfrobot.com/product-1829.html
- DRV8825 Stepper мотор жолооч нар
- SD карт уншигч
- NEMA17 Stepper Motors
Алхам 1: Онцлог шинж чанарууд
Энэхүү самбарын гол онцлог нь бүх харилцаа холбоо, мэдрэгчийн уншилт, гаралтыг зохицуулдаг ESP32 FireBeetle Development Board юм. Хоёр туйлт хоёр шатлалт моторыг хянадаг хоёр шатлалт мотор жолооч байдаг.
I2C автобусыг APDS9960 эсвэл LCD гэх мэт бүрэлдэхүүн хэсгүүдэд ашиглах зорилгоор задалсан болно. Температурыг уншихын тулд DHT22 мэдрэгчтэй холбогдохын тулд эвдэрсэн тээглүүр, мөн орчны гэрлийн түвшинг унших зориулалттай фоторезистор байдаг.
Самбар дээр LED гэрлийг жолоодох гурван MOSFET бүхий аналог гэрлийн туузыг дэмжих боломжтой.
Алхам 2: ПХБ
Би ПХБ -ийн дизайны процессыг эхлээд Eagle -д схем бүтээх замаар эхлүүлсэн. ESP32 FireBeetle номын сан олж чадаагүй тул би оронд нь 2х 1 зүүтэй 18 зүү толгой ашигласан. Дараа нь би 12V -ийг DC баррель үүрээр хүлээн авч, 5V болгон хувиргаж, мэдрэгч болон ESP32 -ийг асаахад зориулагдсан цахилгаан удирдлагын хэлхээг үүсгэсэн.
Схемийг дуусгасны дараа би ПХБ -ийн загварыг өөрөө боловсруулж эхлэв.
Би DC баррель залгуур нь самбарын урд талд байх ёстой бөгөөд 100uF цахилгаан хангамжийн тэгшлэх конденсатор нь stepper мотор жолоочийн тэжээлийн оролттой ойролцоо байх шаардлагатай гэдгийг би мэдэж байсан. Бүх зүйл тавигдсаны дараа би ул мөрийг чиглүүлж эхлэв.
Oshpark нь маш сайн чанарын ПХБ хийдэг боловч тэдний үнэ нэлээд өндөр байдаг. Аз болоход, PCBGOGO.com нь боломжийн үнээр гайхалтай ПХБ хийдэг. Би Oshpark.com -аас ердөө гурван самбар авахад 52 доллар төлөхөөс илүүтэйгээр 10 ширхэг ПХБ -ийг ердөө 5 доллараар худалдаж авах боломжтой болсон.
Алхам 3: угсрах
Ерөнхийдөө самбарыг угсрах нь маш хялбар байсан. Би эхлээд гадаргуу дээр суурилуулсан эд ангиудыг гагнах, дараа нь баррель үүрний холбогч ба зохицуулагчийг холбох ажлыг эхлүүлсэн. Дараа нь би мотор жолооч, FireBeetle гэх мэт бүрэлдэхүүн хэсгүүдийг зүү толгой дээр гагнав.
Гагнах ажил дууссаны дараа би мультиметрийг эсэргүүцэл хэмжих горимд оруулж, эсэргүүцэл нь тодорхой хэмжээнээс хэтэрсэн эсэхийг шалгах замаар богино залгааны самбарыг туршив. Удирдах зөвлөл өнгөрсөн тул би бүрэлдэхүүн хэсэг бүрийг залгах боломжтой болсон.
Алхам 4: Програмчлалын тойм
Би энэ самбарын кодыг модульчлагдсан, ашиглахад хялбар байхыг хүссэн. Энэ нь тодорхой функцийг гүйцэтгэдэг хэд хэдэн ангитай байх бөгөөд жижиг хэсгүүдийг нэгтгэсэн том боодлын ангитай байх ёстой гэсэн үг юм.
Алхам 5: Оролтууд
Оролтыг зохицуулахын тулд би "Hub_Inputs" нэртэй анги үүсгэсэн бөгөөд энэ нь гэрийн зангилаа нь APDS9960 -тай харилцах, товчлуурууд болон багтаамжийн мэдрэгчтэй интерфэйсийг үүсгэх, удирдах боломжийг олгодог. Энэ нь дараахь функцуудыг агуулдаг.
Үүсгэх товчлуур
Хэрэв товчлуур дарагдсан бол авах
Товчлуур дарах тоог авах
Хамгийн сүүлийн дохио авах
Мэдрэмжийн багтаамжийг авах
Товчнууд нь is_pressed, numberPresses, pin гэсэн гурван шинж чанар бүхий бүтэц хэлбэрээр хадгалагддаг. Товчлуур бүрийг үүсгэх үед тасалдалд хавсаргасан болно. Энэ тасалдал идэвхжсэн үед тасалдлын үйлчилгээний горим (ISR) нь тухайн товчлуурын заагчийг дамжуулдаг (товчлуурын массив дахь санах ойн хаягийг өгдөг) ба товчлуур дарах тоог нэмэгдүүлж, is_pressed логик утгыг шинэчилдэг.
Мэдрэмжийн багтаамжийн утга нь илүү хялбар байдаг. TouchRead () функцэд мэдрэгчтэй зүү дамжуулснаар тэдгээрийг олж авдаг.
Хамгийн сүүлийн дохио зангаа нь APDS9960 -аас санал асуулга авч, ямар нэгэн шинэ дохио илрүүлсэн эсэхийг шалгаж, хэрэв илрүүлсэн бол хувийн дохио зангаа хувьсагчийг энэ дохио болгож тохируулна.
Алхам 6: Гаралт
Ухаалаг гэрийн зангилаа нь мэдээлэл дамжуулах, гэрлийг солих хэд хэдэн арга байдаг. I2C автобусыг задалж, хэрэглэгчид LCD холбох боломжийг олгодог. Одоогийн байдлаар зөвхөн нэг хэмжээтэй LCD дэлгэц дэмжигдэж байна: 20 x 4. "hub.display_message ()" функцийг ашигласнаар хэрэглэгчид LCD объект дээр дамжуулж зурвасуудыг харуулах боломжтой болно.
Мөн аналог LED гэрлийг холбох зүү толгой байдаг. "Hub.set_led_strip (r, g, b)" функцийг дуудах нь туузны өнгийг тохируулдаг.
Хоёр шатлалт моторыг DRV8825 хос жолоочийн самбар ашиглан удирддаг. Би BasicStepper номын санг моторын хяналтыг ашиглахаар шийдсэн. Самбарыг ачаалах үед хоёр алхамтай объект үүсч, хоёр хөдөлгүүр хоёулаа идэвхждэг. Мотор бүрийг гишгэхийн тулд "hub.step_motor (motor_id, steps)" функцийг ашигладаг бөгөөд моторын id нь 0 эсвэл 1 байна.
Алхам 7: Бүртгэл хийх
Удирдах зөвлөл нь хэд хэдэн мэдрэгчтэй тул өгөгдлийг орон нутагт цуглуулах, бүртгэх чадварыг хүсч байсан.
Бүртгэлийг эхлүүлэхийн тулд "hub.create_log (файлын нэр, толгой)" гэсэн шинэ файл үүсгэж, толгойг баганыг илэрхийлсэн CSV файлын мөр болгоход ашигладаг. Эхний багана нь үргэлж жилийн сарын өдрийн цагийн цагийн тэмдэг юм: Min: Sec формат. Цаг авахын тулд hub.log_to_file () функц нь basic_functions.get_time () функцтэй цагийг авдаг. Tm цагийн бүтцийг өгөгдөл, файлын нэрийн хамт бүртгэлийн функцэд шилжүүлэх замаар дамжуулдаг.
Алхам 8: Buzzer
Хэрэв та хөгжим тоглож чадахгүй бол IoT самбар ямар хэрэгтэй вэ? Тийм ч учраас би дуу тоглуулах функцтэй дуугаруулагчийг оруулсан. "Hub.play_sounds (аялгуу, үргэлжлэх хугацаа, урт)" гэж дуудах нь дууг тоглуулж эхэлдэг бөгөөд аялгуу нь тэмдэглэлийн давтамжийн массив, үргэлжлэх хугацаа нь тэмдэглэлийн үргэлжлэх хугацаа, урт нь тэмдэглэлийн тоо юм.
Алхам 9: IoT -ийн гадаад интеграцчлал
Энэ төв нь одоогоор IFTTT вэб хөтчийг дэмждэг. Hub_IoT.publish_webhook (url, өгөгдөл, үйл явдал, түлхүүр) эсвэл Hub_IoT.publish_webhook (url, өгөгдөл) функцийг дуудах замаар тэдгээрийг өдөөж болно. Энэ нь өгөгдлийг хавсаргасан URL -д POST хүсэлтийг илгээж, шаардлагатай бол үйл явдлын нэрийг илгээдэг. IFTTT интеграцийн жишээг тохируулахын тулд эхлээд шинэ апплет үүсгэнэ үү. Дараа нь хүсэлт хүлээн авахад идэвхждэг webhook үйлчилгээг сонгоно уу.
Дараа нь энэ үйл явдлыг "high_temp" гэж нэрлээд хадгална уу. Дараа нь "Тэр" хэсгийн Gmail үйлчилгээг сонгоод "Өөртөө имэйл илгээх" сонголтыг сонгоно уу. Үйлчилгээний тохиргоонд "Температур өндөр байна!" Гэж бичнэ үү. сэдвийн хувьд, дараа нь би хэмжсэн температур, үйл явдлыг өдөөсөн цагийг харуулсан "{{Value1}} хэмжсэн температурыг {{OccurredAt}}" дээр тавив.
Үүнийг тохируулсны дараа IFTTT -ээр үүсгэгдсэн webhook URL -г буулгаж, арга хэмжээний хэсэгт "high_temp" оруулна уу.
Алхам 10: Хэрэглээ
Smart Home Hub -ийг ашиглахын тулд setup () эсвэл loop () аль ч хэсэгт шаардлагатай функцүүдийг дуудахад л хангалттай. Би одоогийн цагийг хэвлэх, IFTTT үйл явдлыг дуудах гэх мэт функцын дуудлагын жишээг аль хэдийн оруулсан болно.
Алхам 11: Ирээдүйн төлөвлөгөө
Smart Home Hub систем нь гэрийн автоматжуулалт, өгөгдөл цуглуулах энгийн ажлуудад маш сайн ажилладаг. Үүнийг LED зурвасын өнгийг тохируулах, өрөөний температурыг хянах, гэрэл ассан эсэхийг шалгах гэх мэт бараг бүх зүйлд ашиглаж болно. Ирээдүйд би функцийг илүү өргөжүүлэхийг хүсч байна. Үүнд илүү хүчирхэг вэб сервер, локал файл байршуулах, тэр ч байтугай Bluetooth эсвэл mqtt нэмж оруулах боломжтой.
Зөвлөмж болгож буй:
Wifi Smart Switch ESP8266 нь Alexa болон Google Home Automation -тэй ажилладаг: 7 алхам
Wifi Smart Switch ESP8266 нь Alexa болон Google Home Automation -тэй ажилладаг: Даяаршлын ертөнцөд хүн бүр хамгийн сүүлийн үеийн, ухаалаг технологийг ашиглахыг хүсч байна
ESP32 -ийг ашиглаж эхлэх нь - Arduino IDE дээр ESP32 хавтанг суулгах - ESP32 анивчих код: 3 алхам
ESP32 -ийг ашиглаж эхлэх нь | Arduino IDE дээр ESP32 самбарыг суулгах | ESP32 Blink Code: Энэхүү зааварчилгаанд бид esp32 -тэй хэрхэн ажиллах, esp32 самбарыг Arduino IDE -д хэрхэн суулгах, мөн esp 32 -ийг arduino ide ашиглан анивчих кодыг ажиллуулах програмчлах болно
IOT CA2 Secure Smart Home/Room: 8 алхам
IOT CA2 Secure Smart Home/Room: Агуулгын хүснэгт1 Smart Secure Home -ийн тойм 2 Тоног төхөөрөмжийн шаардлага + Setup3 Програм хангамжийн шаардлага + Setup4 Raspberrypi -ийг зүйл болгон бүртгүүлэх5 S3 хувин6 DynamoDB тохиргоо + дүрмүүд 7 Хүлээгдэж буй үр дүн 8 код (Пастебинаас) 9 Лавлагааны тойм
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 алхам
Sonoff B1 Firmware Home Automation Openhab Google Home: Sonoff унтраалгуудынхаа Tasmota програм хангамж надад үнэхээр таалагддаг. Гэхдээ миний Sonoff-B1 дээрх Tasmota програм хангамж үнэхээр сэтгэл хангалуун бус байсан. Би үүнийг Openhab -д нэгтгэж, Google Home -ээр дамжуулан удирдаж чадаагүй тул өөрийн фирмийг бичжээ
IoT Smart Home System: 8 алхам
IoT Smart Home System: Энэ бол Kiot болон Jons Smart гэрийн систем юм