Სარჩევი:
- მარაგები
- ნაბიჯი 1: მახასიათებლები
- ნაბიჯი 2: PCB
- ნაბიჯი 3: შეკრება
- ნაბიჯი 4: პროგრამირების მიმოხილვა
- ნაბიჯი 5: შეყვანა
- ნაბიჯი 6: შედეგები
- ნაბიჯი 7: ჟურნალი
- ნაბიჯი 8: ბუზერი
- ნაბიჯი 9: გარე IoT ინტეგრაცია
- ნაბიჯი 10: გამოყენება
- ნაბიჯი 11: სამომავლო გეგმები
ვიდეო: ESP32 Smart Home Hub: 11 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
სისტემის შექმნას, რომელსაც შეუძლია დიდი რაოდენობის სენსორული მონაცემების დამუშავება, მრავალჯერადი გამოსავალი და ინტერნეტთან ან ადგილობრივ ქსელთან დაკავშირება მოითხოვს დიდ დროს და დიდ ძალისხმევას. ძალიან ხშირად, ადამიანებს, რომელთაც სურთ საკუთარი ჭკვიანი სახლის ქსელების შექმნა, იბრძვიან იმის გამო, რომ შეძლონ იპოვონ და შეიკრიბონ პერსონალური კომპონენტები უფრო დიდ სისტემაში. ამიტომაც მინდოდა შემექმნა მოდულური და ფუნქციებით მდიდარი პლატფორმა, რომელიც გაადვილებდა 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 სტეპერიანი დრაივერები
- SD ბარათის მკითხველი
- NEMA17 სტეპერი მოტორსი
ნაბიჯი 1: მახასიათებლები
ამ დაფის მთავარი მახასიათებელია ESP32 FireBeetle განვითარების დაფა, რომელიც ამუშავებს ყველა კომუნიკაციას, სენსორის კითხვას და შედეგებს. არსებობს ორი სტეპერიანი ძრავის მძღოლი, რომლებიც აკონტროლებენ ორ ბიპოლარულ სტეპერ ძრავას.
I2C ავტობუსი ასევე გატეხილია ისეთი კომპონენტებისთვის, როგორიცაა APDS9960 ან LCD. ტემპერატურის წასაკითხად არის გატეხილი ქინძისთავები DHT22 სენსორთან დასაკავშირებლად, ასევე ფოტორეზისტორი გარემოს განათების დონის წასაკითხად.
დაფაზე არის ანალოგური სინათლის ზოლის მხარდაჭერა, რომელსაც აქვს სამი MOSFET, LED განათების მართვის მიზნით.
ნაბიჯი 2: PCB
მე დავიწყე PCB დიზაინის პროცესი, პირველად შევქმენი სქემატური არწივი. ვინაიდან მე ვერ ვიპოვე ESP32 FireBeetle ბიბლიოთეკა, ამის ნაცვლად მხოლოდ ორი პინი 1x18 პინის სათაური გამოვიყენე. შემდეგ, მე შევქმენი ენერგიის მართვის წრე, რომელსაც შეეძლო 12 ვ -ის მიღება DC ლულის ჯეკის საშუალებით და გადააკეთებინა 5 ვ -ზე სენსორების და ESP32- ის გაძლიერებისათვის.
სქემის დასრულების შემდეგ, მე გადავედი PCB– ის დიზაინზე.
მე ვიცოდი, რომ DC ლულის დანამატი უნდა ყოფილიყო დაფის წინა ნაწილთან და 100uF დენის წყაროს გამაგრილებელი კონდენსატორები უნდა ყოფილიყო სტეპერიანი ძრავის დრაივერის დენის ენერგიასთან ახლოს. მას შემდეგ რაც ყველაფერი დალაგდა, დავიწყე კვალის მარშრუტი.
მიუხედავად იმისა, რომ Oshpark აწარმოებს შესანიშნავი ხარისხის PCB– ებს, მათი ფასები საკმაოდ მაღალია. საბედნიეროდ, PCBGOGO.com ასევე ქმნის დიდ PCB– ებს ხელმისაწვდომ ფასად. მე შევძელი ათი PCB- ის ყიდვა მხოლოდ 5 დოლარად, ვიდრე გადავიხადე 52 დოლარი მხოლოდ სამი დაფისთვის Oshpark.com– დან.
ნაბიჯი 3: შეკრება
საერთო ჯამში, დაფის აწყობა საკმაოდ ადვილი იყო. დავიწყე ზედაპირზე დამონტაჟებული კომპონენტების შედუღება და შემდეგ ლულის ჯეკის კონექტორისა და რეგულატორის მიმაგრება. შემდეგი, მე შევაერთე პინ სათაურებში ისეთი კომპონენტებისთვის, როგორიცაა ძრავის მძღოლები და FireBeetle.
შედუღების დასრულების შემდეგ, მე გამოვცადე დაფა მოკლე ჩართვისთვის, მულტიმეტრის წინააღმდეგობის გაზომვის რეჟიმში და ვნახე, აღემატება თუ არა წინააღმდეგობა გარკვეულ რაოდენობას. დაფა გავიდა, ასე რომ მე მაშინ შევძელი თითოეული კომპონენტის ჩართვა.
ნაბიჯი 4: პროგრამირების მიმოხილვა
მინდოდა, რომ ამ დაფის კოდი იყოს მოდულური და მარტივი გამოსაყენებლად. ეს ნიშნავდა რამოდენიმე კლასს, რომელიც ასრულებს სპეციფიკურ ფუნქციებს, ასევე უფრო დიდი შეფუთვის კლასს, რომელიც აერთიანებს პატარაებს.
ნაბიჯი 5: შეყვანა
შეყვანის დამუშავების მიზნით, მე შევქმენი კლასი სახელწოდებით "Hub_Inputs", რომელიც საშუალებას აძლევს სახლის კერას დაუკავშირდეს APDS9960– ს, ღილაკებისა და capacitive touch ინტერფეისების შექმნასა და მართვასთან ერთად. იგი შეიცავს შემდეგ ფუნქციებს:
შექმენით ღილაკი
მიიღეთ თუ ღილაკი დაჭერილია
მიიღეთ ღილაკების დაჭერის რაოდენობა
მიიღეთ უახლესი ჟესტი
მიიღეთ მოცულობის შეხების მნიშვნელობა
ღილაკები ინახება სტრუქტურის სახით, სამი ატრიბუტით: is_pressed, numberPresses და pin. თითოეული ღილაკი, შექმნისას, ერთვის წყვეტს. როდესაც ეს შეფერხება გააქტიურდება, შეწყვეტის სერვისის რუტინას (ISR) გადაეცემა ამ ღილაკის მაჩვენებელი (მითითებულია როგორც მეხსიერების მისამართი ღილაკის მასივში) და ზრდის ღილაკების დაჭერის რაოდენობას, is_pressed ლოგიკური მნიშვნელობის განახლებასთან ერთად.
შეხების ტევადობის მნიშვნელობები გაცილებით მარტივია. მათი ამოღება ხდება touchRead () ფუნქციაზე სენსორული პინის გადაცემით.
უახლესი ჟესტი განახლებულია APDS9960– ის გამოკითხვით და შემოწმებით არის თუ არა რაიმე ახალი ჟესტი გამოვლენილი და თუ გამოვლინდა, დააყენეთ პირადი ჟესტის ცვლადი ამ ჟესტზე.
ნაბიჯი 6: შედეგები
ჭკვიანი სახლის კერა აღჭურვილია ინფორმაციის გამომუშავების და განათების შეცვლის რამდენიმე გზით. არის ქინძისთავები, რომლებიც არღვევს I2C ავტობუსს, რაც მომხმარებლებს აძლევს საშუალებას დაუკავშირონ LCD. ჯერჯერობით, LCD– ის მხოლოდ ერთი ზომაა მხარდაჭერილი: 20 x 4. ფუნქციის „hub.display_message ()“გამოყენებით მომხმარებლებს შეუძლიათ აჩვენონ შეტყობინებები LCD– ზე სიმებიანი ობიექტის გავლით.
ასევე არის pin სათაური, რომელიც დაკავშირებულია ანალოგური LED- ების სიმებს. ფუნქციის გამოძახება „hub.set_led_strip (r, g, b)“, ადგენს ზოლის ფერს.
ორი სტეპერიანი ძრავა მართულია წყვილი DRV8825 დრაივერის დაფის გამოყენებით. მე გადავწყვიტე გამოვიყენო BasicStepper ბიბლიოთეკა საავტომობილო კონტროლის გასაკონტროლებლად. როდესაც დაფა იტვირთება, იქმნება ორი სტეპერიანი ობიექტი და ორივე ძრავა ჩართულია. თითოეული ძრავის დასაყენებლად გამოიყენება "hub.step_motor (motor_id, ნაბიჯები)" ფუნქცია, სადაც ძრავის ID არის 0 ან 1.
ნაბიჯი 7: ჟურნალი
იმის გამო, რომ დაფას აქვს რამდენიმე სენსორი, მინდოდა ადგილობრივად შეგროვებული და შესული მონაცემების უნარი.
აღრიცხვის დასაწყებად, ახალი ფაილი იქმნება "hub.create_log (ფაილის სახელი, სათაური)", სადაც სათაური გამოიყენება CSV ფაილის რიგის შესაქმნელად, რომელიც აღნიშნავს სვეტებს. პირველი სვეტი ყოველთვის არის დროის ნიშნული წლის თვის დღის საათში: მინ: წმ ფორმატში. დროის მისაღებად, hub.log_to_file () ფუნქცია იღებს დროს ძირითადი_functions.get_time () ფუნქციით. Tm დროის სტრუქტურა შემდეგ გადაეცემა მითითების სახით, ფუნქციასთან ერთად, მონაცემებთან და ფაილის სახელთან ერთად.
ნაბიჯი 8: ბუზერი
რა კარგია IoT დაფა, თუ არ შეგიძლია მუსიკის დაკვრა? ამიტომაც ჩავრთე ბუზერი ბგერების დაკვრის ფუნქციით. დარეკვა "hub.play_sounds (მელოდია, ხანგრძლივობა, სიგრძე)" იწყებს სიმღერის დაკვრას, მელოდია არის ნოტების სიხშირეების მასივი, ხანგრძლივობა, როგორც ნოტების ხანგრძლივობის მასივი და სიგრძე, როგორც ნოტების რაოდენობა.
ნაბიჯი 9: გარე IoT ინტეგრაცია
ცენტრი ამჟამად მხარს უჭერს IFTTT ვებგვერდებს. მათი გააქტიურება შესაძლებელია Hub_IoT.publish_webhook (url, მონაცემები, მოვლენა, გასაღები) ან Hub_IoT.publish_webhook (url, მონაცემები) ფუნქციის გამოძახებით. ეს აგზავნის POST მოთხოვნას მოცემულ URL– ზე, თან ერთვის ეს მონაცემები, საჭიროების შემთხვევაში ღონისძიების სახელთან ერთად. IFTTT ინტეგრაციის მაგალითის დასაყენებლად, ჯერ შექმენით ახალი აპლეტი. შემდეგ შეარჩიეთ webhook სერვისი, რომელიც იწყებს მოთხოვნის მიღებისას.
შემდეგი, დაურეკეთ ღონისძიებას "მაღალი_ ტემპერატურა" და შეინახეთ იგი. შემდეგ შეარჩიეთ Gmail სერვისი "ეს" ნაწილისთვის და აირჩიეთ "გაუგზავნე წერილი საკუთარ თავს". მომსახურების პარამეტრებში ჩაწერეთ "ტემპერატურა მაღალია!" საგნისთვის და შემდეგ მე დავდე „გაზომილი ტემპერატურა {{Value1}} {{OccurredAt}}" - ზე, რომელიც აჩვენებს გაზომილ ტემპერატურას და მოვლენის დაწყების დროს.
მისი დაყენების შემდეგ, უბრალოდ ჩასვით ვებგვერდის URL, რომელიც გენერირდება IFTTT– ით და ჩასვით „high_temp“ღონისძიების განყოფილებაში.
ნაბიჯი 10: გამოყენება
Smart Home Hub– ის გამოსაყენებლად, უბრალოდ დარეკეთ საჭირო ფუნქციებზე, როგორც setup (), ასევე loop (). მე უკვე მოვიყვანე ფუნქციური ზარების მაგალითი, როგორიცაა მიმდინარე დროის დაბეჭდვა და IFTTT ღონისძიების გამოძახება.
ნაბიჯი 11: სამომავლო გეგმები
Smart Home Hub სისტემა მუშაობს ძალიან კარგად სახლის მარტივი ავტომატიზაციისა და მონაცემთა შეგროვების ამოცანებისთვის. ის შეიძლება გამოყენებულ იქნას თითქმის ყველაფრისთვის, როგორიცაა LED ზოლის ფერის დაყენება, ოთახის ტემპერატურის მონიტორინგი, სინათლის ჩართვის შემოწმება და სხვა მრავალი პოტენციური პროექტი. მომავალში, მინდა კიდევ უფრო გავაფართოვო ფუნქციონირება. ეს შეიძლება შეიცავდეს უფრო ძლიერი ვებ სერვერის დამატებას, ფაილების ადგილობრივ ჰოსტინგს და Bluetooth ან mqtt.
გირჩევთ:
Smart Home Raspberry Pi- ს მიერ: 5 ნაბიჯი (სურათებით)
Smart Home by Raspberry Pi: უკვე არსებობს რამდენიმე პროდუქტი, რაც თქვენს ბინას უფრო ჭკვიანურს ხდის, მაგრამ მათი უმეტესობა საკუთრების გადაწყვეტაა. მაგრამ რატომ გჭირდებათ ინტერნეტ კავშირი სმარტფონთან შუქის გადასატანად? ეს იყო ერთი მიზეზი იმისა, რომ მე შემექმნა საკუთარი სმარტი
დასაწყისი ESP32 - ESP32 დაფების დაყენება Arduino IDE - - ში ESP32 მოციმციმე კოდი: 3 ნაბიჯი
დაწყება ESP32 | ESP32 დაფების დაყენება Arduino IDE | - ში ESP32 Blink Code: ამ ინსტრუქციებში ჩვენ ვნახავთ, თუ როგორ უნდა დავიწყოთ მუშაობა esp32– თან და როგორ დავაყენოთ esp32 დაფები Arduino IDE– ში და ჩვენ დავაპროგრამებთ esp 32 – ს, რომ აწარმოოს მოციმციმე კოდი arduino ide– ს გამოყენებით
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 ნაბიჯი
Sonoff B1 Firmware Home Automation Openhab Google Home: მე ნამდვილად მომწონს Tasmota firmware ჩემი Sonoff კონცენტრატორებისთვის. მაგრამ მე ნამდვილად არ ვიყავი კმაყოფილი Tasmota firmware– ით ჩემს Sonoff-B1– ზე. მე სრულად ვერ მოვახერხე მისი ინტეგრირება ჩემს Openhab– ში და მისი გაკონტროლება Google Home– ის საშუალებით. ამიტომ დავწერე ჩემი ფირმა
ინტერფეისი Honeywell Vista მაღვიძარა Smart Hub– ით (თვალის ჩაკვრა/ჭკუა): 7 ნაბიჯი (სურათებით)
ინტერფეისი Honeywell Vista სიგნალიზაცია Smart Hub– ით (თვალის ჩაკვრა/ჭკუა): გამარჯობა! მინდოდა მოკლე გაკვეთილი გამეცა თუ როგორ ჩავრთე ჩემი Honeywell Vista სიგნალიზაცია ჩემს ჭკვიან ცენტრში. მე ვიყენებ Wink– ს ამ გაკვეთილისთვის, მაგრამ ის უნდა მუშაობდეს ნებისმიერ ჭკვიან ცენტრთან (Smartthings/Iris/etc.) სანამ დავიწყებთ, თქვენ წახვალთ
DIY Google Home Bluetooth სპიკერით Raspberry Pi Zero Docking Hub– ზე: 7 ნაბიჯი (სურათებით)
წვრილმანი Google Home Bluetooth სპიკერით Raspberry Pi Zero Docking Hub- ზე: ჩვენ გვაქვს ინსტრუქცია DIY Amazon Echo Alexa - Alexa ხმის ასისტენტი Raspberry Pi Zero Docking Hub– ზე. ამჯერად ჩვენ გვინდა გაჩვენოთ როგორ ავაშენოთ წვრილმანი Google Home. ამ ინსტრუქციაში ჩვენ გაჩვენებთ როგორ დააინსტალიროთ და დააყენოთ Google ასისტენტი