რობოტიკა და ელექტრონიკა

ჭკვიანი სახლი საკუთარი ხელით: 7 მოწყობილობა ESP32-ით და Arduino-თი

7 რეალური IoT პროექტი ESP32-ით და Arduino-თი: რა ნაწილები დაგჭირდებათ, რა სირთულისაა თითოეული, როგორ გააერთიანოთ ყველაფერი Home Assistant-ში და რატომ არ უნდა შეეხოთ ქსელის ძაბვას.

ESP32 დაფა შუქნიშნის მოდულით ფანჯრის რაფაზე, ჭკვიანი სახლის პროტოტიპი

ფოტო: DavesCodeMusings / Wikimedia Commons · CC0

ჭკვიანი სახლის აწყობა საკუთარი ხელით შესაძლებელია ერთი ESP32 დაფით (Wi-Fi და Bluetooth ჩაშენებული აქვს), რამდენიმე სენსორით და უფასო პროგრამებით: Arduino IDE ან ESPHome და Home Assistant. დაიწყეთ უსაფრთხო, დაბალი ძაბვის პროექტით, მაგალითად ამინდის სადგურით ან კარის სენსორით. 230-ვოლტიან ქსელს კი ნუ შეეხებით: ამისთვის სერტიფიცირებული მოწყობილობა ან ელექტრიკოსი გჭირდებათ.

ქვემოთ შვიდი რეალური პროექტია, მარტივიდან რთულისკენ. თითოეულს აქვს ნაწილების სია, სირთულე და ის, რასაც აწყობისას ისწავლით. ბოლოს ნახავთ, როგორ გააერთიანოთ ყველა მოწყობილობა ერთ ეკრანზე და რა შეცდომებს უშვებენ დამწყებები ყველაზე ხშირად.

რა არის ჭკვიანი სახლი და რატომ ESP32?

ჭკვიანი სახლი არის მოწყობილობების ქსელი, რომლებიც ზომავენ (ტემპერატურას, ტენიანობას, მოძრაობას) და რეაგირებენ (ანთებენ შუქს, რთავენ ტუმბოს, გიგზავნიან შეტყობინებას). ამ იდეას IoT (Internet of Things, „ნივთების ინტერნეტი“) ჰქვია. თითოეულ ასეთ მოწყობილობას სჭირდება პატარა „ტვინი“, ანუ მიკროკონტროლერი, რომელიც სენსორს კითხულობს და ქსელში აგზავნის მონაცემს.

Arduino Uno შესანიშნავია ელექტრონიკის სასწავლად, მაგრამ ინტერნეტთან კავშირი არ აქვს. ESP32 იგივე იდეაა, ოღონდ ჩაშენებული Wi-Fi-ით და გაცილებით მეტი სიმძლავრით. მას იმავე Arduino IDE-ში აპროგრამებთ, ამიტომ თუ არდუინოს საფუძვლები უკვე იცით (დაიწყეთ Arduino დამწყებთათვის სახელმძღვანელოთი), გადასვლა მარტივია.

მახასიათებელიArduino Uno R3ESP32 (WROOM-32)
პროცესორიATmega328P, 16 MHzორბირთვიანი, 240 MHz-მდე
ოპერატიული მეხსიერება2 KB520 KB
უსადენო კავშირიარ აქვსWi-Fi 2,4 GHz, Bluetooth
ლოგიკური ძაბვა5 ვოლტი3,3 ვოლტი
რისთვის ჯობიასწავლა, მარტივი სქემებიინტერნეტთან დაკავშირებული მოწყობილობები
ESP32-WROOM-32 მოდული ახლოდან: Wi-Fi და Bluetooth ერთ ჩიპში
ESP32-WROOM-32 მოდული ახლოდან: ამ პატარა ფირფიტაში პროცესორი, Wi-Fi და Bluetooth ერთადააფოტო: Ubahnverleih / Wikimedia Commons · CC0

რა დაგჭირდებათ დასაწყებად?

პირველი სამი პროექტისთვის ძვირი აღჭურვილობა არ გჭირდებათ. ეს ნაკრები საკმარისია:

  • ESP32 DevKit დაფა (ნებისმიერი ვერსია, რომელსაც USB პორტი აქვს);
  • სამონტაჟო დაფა (breadboard) და მავთულები (jumper wires);
  • USB კაბელი, რომელიც მონაცემებს გადასცემს (ზოგი კაბელი მხოლოდ დამუხტვისთვისაა);
  • სენსორები: BME280 ან DHT22 (ტემპერატურა და ტენიანობა), PIR მოძრაობის სენსორი, ჰერკონი (reed switch) მაგნიტით, ნიადაგის ტენიანობის ტევადური სენსორი;
  • 5- და 12-ვოლტიანი კვების ბლოკები ტუმბოსა და LED ლენტისთვის;
  • პროგრამები: Arduino IDE ESP32-ის მხარდაჭერით ან ESPHome, სურვილისამებრ Home Assistant.

ESP32-ის Arduino IDE-ში დასამატებლად Preferences-ში ჩასვით Espressif-ის ოფიციალური ბმული (https://espressif.github.io/arduino-esp32/package_esp32_index.json), შემდეგ Boards Manager-ში დააინსტალირეთ პაკეტი esp32 და აირჩიეთ თქვენი დაფა.

7 მოწყობილობა ჭკვიანი სახლისთვის: მოკლე მიმოხილვა

#მოწყობილობაძირითადი ნაწილებისირთულერას ისწავლით
1ამინდის სადგურიBME280 ან DHT22მარტივიI2C, მონაცემების ჩაწერა
2ყვავილის მორწყვატევადური სენსორი, 5V ტუმბოსაშუალოანალოგური წაკითხვა, ტრანზისტორი
3მოძრაობაზე ამნთები შუქიPIR სენსორი, LED ლენტიმარტივიციფრული შესასვლელი, ტაიმერი
4კარის სენსორიჰერკონი, მაგნიტიმარტივიpull-up, შეტყობინებები
5ჭკვიანი როზეტისერტიფიცირებული მოწყობილობართულირელე, უსაფრთხოება
6ჰაერის ხარისხიSCD40 (CO₂)საშუალოზღვრები, გაფრთხილება
7ერთიანი პანელიHome Assistant, ESPHomeსაშუალოავტომატიზაცია

1. ამინდის სადგური ოთახისთვის

საუკეთესო პირველი პროექტია. BME280 ზომავს ტემპერატურას, ტენიანობას და ატმოსფერულ წნევას და ESP32-ს I2C სალტით (ორი მავთული: SDA და SCL) უკავშირდება. იაფი ალტერნატივაა DHT22 (ან DHT11, რომელიც ნაკლებად ზუსტია). ESPHome-ში მთელი „პროგრამა“ რამდენიმე სტრიქონიანი YAML ფაილია:

esphome:
  name: amindis-sadguri

esp32:
  board: esp32dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
ota:
  - platform: esphome
logger:

i2c:
  sda: GPIO21
  scl: GPIO22

sensor:
  - platform: bme280_i2c
    address: 0x76
    temperature:
      name: "ოთახის ტემპერატურა"
    humidity:
      name: "ოთახის ტენიანობა"
    pressure:
      name: "წნევა"
    update_interval: 60s

ფაილს დაფაზე ერთხელ USB-ით ტვირთავთ, შემდეგ კი განახლებები Wi-Fi-ით (OTA) გადადის. სენსორი ESP32-ის ჩიპს ცოტა მოშორებით დაამაგრეთ: დაფა მუშაობისას თბება და ტემპერატურის ჩვენებას ზრდის.

2. ყვავილის ავტომატური მორწყვა

ნიადაგის ტენიანობის სენსორი ძაბვას აბრუნებს: რაც უფრო მშრალია მიწა, მით მეტია მნიშვნელობა (ან პირიქით, მოდელის მიხედვით). აირჩიეთ ტევადური (capacitive) სენსორი: რეზისტიულ სენსორს ელექტროდები ღიად აქვს და მიწაში ჟანგდება. პატარა 5-ვოლტიან ტუმბოს ESP32-ის პინი პირდაპირ ვერ ამუშავებს, ამიტომ შუაში ტრანზისტორი (MOSFET) ან რელეს მოდული ჩასვით.

კალიბრაცია ასე გააკეთეთ: ჩაიწერეთ მნიშვნელობა მშრალ ჰაერში და წყლიან ჭიქაში, შემდეგ ზღვარი ამ ორს შორის დააყენეთ. ტუმბო ჩართეთ 3–5 წამით და შემდეგი შემოწმება 30 წუთის მერე გააკეთეთ, რომ წყალმა ნიადაგში ჩაჟონვა მოასწროს და ქოთანი არ გადაავსოს.

3. მოძრაობაზე ამნთები შუქი

PIR სენსორი (მაგალითად HC-SR501) ადამიანის სხეულის სითბოს მოძრაობას იჭერს რამდენიმე მეტრის მანძილზე. მისი გამოსასვლელი სიგნალი 3,3 ვოლტია, ამიტომ ESP32-ის პინს პირდაპირ უკავშირდება. დერეფნის ან კარადის 12-ვოლტიანი LED ლენტი MOSFET-ით ჩართეთ და ESPHome-ში დაამატეთ პირობა: შუქი აინთოს მხოლოდ ღამით და ჩაქრეს 2 წუთში, თუ მოძრაობა აღარ არის.

4. კარის ან ფანჯრის სენსორი

ჰერკონი (reed switch) არის კონტაქტი, რომელიც მაგნიტის მიახლოებისას იკეტება. ერთ ნაწილს კარის ჩარჩოზე ამაგრებთ, მაგნიტს კი კარზე. ESPHome-ში პინს ჩართეთ შიდა pull-up რეზისტორი, თორემ „მცურავი“ პინი ცრუ სიგნალებს მოგცემთ. კონტაქტის რხევის (bounce) ჩასახშობად დაამატეთ ფილტრი delayed_on: 10ms. ასეთი სენსორით შეგიძლიათ მიიღოთ შეტყობინება ტელეფონზე, თუ ფანჯარა გათბობის ჩართვისას ღია დარჩა.

5. ჭკვიანი როზეტი: მხოლოდ უსაფრთხო გზით

რელე არის ელექტრომაგნიტური გადამრთველი: პატარა სიგნალით დიდ დატვირთვას რთავს. ზუსტად აქ იწყება საფრთხე. საქართველოში სახლის ელექტროქსელის ძაბვა 230 ვოლტია და შეცდომა შეიძლება სიცოცხლის ფასად დაგიჯდეთ. რელეს იაფ მოდულს კორპუსი არ აქვს, კლემები ღიაა და სერტიფიცირებული ელექტრომოწყობილობა არ არის.

5 ვოლტიანი ერთარხიანი რელეს მოდული ხრახნიანი კლემებით ჭკვიანი როზეტისთვის
5-ვოლტიანი რელეს მოდული: ასეთი მოდულით ისწავლეთ დაბალი ძაბვის დატვირთვის მართვა, ქსელის ძაბვა კი სპეციალისტს დაუტოვეთფოტო: Suyash Dwivedi / Wikimedia Commons · CC BY-SA 4.0

ამიტომ ორ ნაბიჯად იმოქმედეთ. სწავლისას რელეთი მართეთ დაბალი ძაბვა: 12-ვოლტიანი LED ლენტი ან 5-ვოლტიანი ვენტილატორი. რეალური როზეტისთვის კი შეიძინეთ სერტიფიცირებული ჭკვიანი როზეტი, რომელიც ESPHome-ს ან ადგილობრივ მართვას უჭერს მხარს, ან ინსტალაცია ელექტრიკოსს მიანდეთ.

რჩევა ლაბიდან: 230 ვოლტი არ არის სათამაშო

ქსელის ძაბვაზე მომუშავე სქემა არასდროს ააწყოთ breadboard-ზე და ჩართულ მოწყობილობას არასდროს შეეხოთ. ბავშვები და მოზარდები მუშაობენ მხოლოდ 3,3 V, 5 V და 12 V ძაბვაზე. თუ პროექტი ქსელთან კავშირს მოითხოვს, გამოიყენეთ მზა სერტიფიცირებული მოწყობილობა ან ელექტრიკოსის დახმარება. ერთი და იგივე კვების ბლოკიდან ნუ კვებავთ ძრავას და ESP32-ს: ძრავის ჩართვისას ძაბვა ვარდება და დაფა გადაიტვირთება.

6. ჰაერის ხარისხის მონიტორი

ოთახში, სადაც ბევრი ადამიანია და ფანჯარა დახურულია, ნახშირორჟანგი (CO₂) სწრაფად იზრდება. Sensirion SCD40 ან SCD41 ნამდვილ CO₂-ს ზომავს (ppm-ში), ასევე ტემპერატურასა და ტენიანობას. ESP32-ს ის I2C-ით უერთდება. იაფი MQ-135 სენსორი მხოლოდ აირების ზოგად მაჩვენებელს იძლევა და ზუსტ CO₂-ს ვერ გაჩვენებთ.

ორიენტირისთვის: გარე ჰაერში CO₂ დაახლოებით 420–430 ppm-ია, კანადის ჯანდაცვის სამინისტრო (Health Canada) კი სახლისთვის 1000 ppm-ს (24-საათიანი საშუალო) გრძელვადიან ზღვრად მიიჩნევს. დააყენეთ LED ან შეტყობინება, რომელიც 1000 ppm-ზე გეტყვით, რომ ოთახის განიავების დროა.

7. ყველაფრის გაერთიანება Home Assistant-ში

Home Assistant უფასო, ღია კოდის პლატფორმაა, რომელიც თქვენს სახლში მუშაობს (Raspberry Pi-ზე, ძველ კომპიუტერზე ან სპეციალურ მოწყობილობაზე) და ინტერნეტის გათიშვისას არ ჩერდება. ESPHome-ით აწყობილი მოწყობილობები მას ავტომატურად უკავშირდება ადგილობრივ ქსელში, ღრუბლოვანი ანგარიშის გარეშე. ერთ ეკრანზე დაინახავთ ტემპერატურას, CO₂-ს, კარის მდგომარეობას და შეგიძლიათ ავტომატიზაციები დაწეროთ: „თუ CO₂ 1000-ზე მეტია და ფანჯარა დახურულია, გამომიგზავნე შეტყობინება“.

ESPHome თუ Arduino IDE: რომელი ავირჩიოთ?

ორივე უფასოა და ორივე ESP32-ზე მუშაობს. განსხვავება მიდგომაშია:

  • Arduino IDE (C++) შესაფერისია, თუ გინდათ გაიგოთ, როგორ მუშაობს ყველაფერი შიგნიდან: პინები, ციკლები, ბიბლიოთეკები. კოდს თავად წერთ და სრულ კონტროლს ფლობთ.
  • ESPHome (YAML) შესაფერისია, თუ მიზანი სწრაფად მომუშავე სახლის მოწყობილობაა. აღწერთ, რა სენსორი რომელ პინზეა, ESPHome კი თავად ქმნის პროგრამას, Wi-Fi განახლებებს და Home Assistant-თან კავშირს.

ლაბში ასე ვაკეთებთ: ჯერ Arduino IDE-ში ვწერთ კოდს სენსორის წასაკითხად, რომ მოსწავლემ პრინციპი გაიგოს, შემდეგ კი იმავე სენსორს ESPHome-ით ვაერთებთ სახლის სისტემაში. არდუინოს პროექტების იდეების უმეტესობა ESP32-ზეც მუშაობს, თუ 3,3 ვოლტის წესს გაითვალისწინებთ.

ხშირი შეცდომები და როგორ გამოვასწოროთ

  • 5 ვოლტი ESP32-ის პინზე. ESP32-ის პინები 3,3 ვოლტზეა გათვლილი. 5-ვოლტიანი სენსორის სიგნალი ძაბვის გამყოფით (ორი რეზისტორი) ან დონის გარდამქმნელით (level shifter) შეაერთეთ.
  • დაფა კომპიუტერში არ ჩანს. ხშირად მიზეზი კაბელია, რომელიც მხოლოდ მუხტავს. სცადეთ სხვა კაბელი.
  • Wi-Fi-ს ვერ პოულობს. ESP32 მხოლოდ 2,4 GHz ქსელს ხედავს. 5 GHz ქსელთან ვერ დაუკავშირდება.
  • ანალოგური სენსორი Wi-Fi-ს ჩართვისას „გაგიჟდა“. ADC2 პინები Wi-Fi-ის მუშაობისას არ მუშაობს. სენსორი ADC1 პინზე გადაიტანეთ (მაგალითად GPIO32–39).
  • დაფა არ იტვირთება. GPIO6–11 შიდა flash მეხსიერებას ემსახურება, ხოლო GPIO0, 2, 5, 12 და 15 ჩატვირთვის რეჟიმს განსაზღვრავს. სენსორები ჯერ სხვა პინებზე შეაერთეთ.
  • რელე ჩართვისას თავისით „წკაპუნებს“. ჩატვირთვისას ზოგ პინზე მოკლე სიგნალი ჩნდება. რელესთვის აირჩიეთ პინი, რომელიც ჩატვირთვისას მშვიდადაა.

სად ვისწავლოთ ჭკვიანი მოწყობილობების აწყობა?

თუ ელექტრონიკა სრულიად ახალია თქვენთვის, ჯერ ომის კანონი და მარტივი სქემები ისწავლეთ, შემდეგ არდუინო და ბოლოს ESP32. ბავშვებისთვის კარგი სტარტია ელექტრონიკის კურსი ბავშვებისთვის, სადაც ახსნილია, რა ასაკიდან და რა თანმიმდევრობით ღირს სწავლა.

თბილისის ციფრულ სკოლაში 10–13 წლის ბავშვები კურსზე „ელექტრონიკა და ჭკვიანი მოწყობილობები“ Arduino-ს C++-ზე აპროგრამებენ, სენსორებს (ულტრაბგერითი, DHT11, ღილაკი, ხაზის სენსორი), ეკრანებს და სერვოძრავას იყენებენ, ხოლო მოწყობილობის კორპუსს Tinkercad-ში აპროექტებენ. ყოველ კვირას ერთი ჭკვიანი მოწყობილობა იქმნება, ბოლოს კი საკუთარი პროექტი. ელექტრონიკის ნაკრები და აწყობილი პროტოტიპები ბავშვს რჩება, ამიტომ სახლში ექსპერიმენტების გაგრძელება შეუძლია. ამ კურსს და 13–17 წლის Advanced დონეს ერთად ნახავთ გვერდზე ელექტრონიკის და არდუინოს კურსები.

ხშირად დასმული კითხვები

რა ღირს ჭკვიანი სახლის აწყობა ESP32-ით?

ძირითადი ხარჯი დაფა და სენსორებია. ESP32 დაფა და ტემპერატურის სენსორი ელექტრონიკის მაღაზიებში ყველაზე იაფ კომპონენტებს შორისაა, ამიტომ პირველი მოწყობილობა ხშირად მზა კომერციულ ანალოგზე ბევრად იაფი გამოდის. Home Assistant და ESPHome უფასოა. ყველაზე ძვირი ნაწილი ხშირად Home Assistant-ისთვის განკუთვნილი კომპიუტერია, თუმცა ძველი ლეპტოპიც გამოდგება.

ESP32 თუ Arduino: რომლით დავიწყოთ?

თუ ელექტრონიკა პირველად გაინტერესებთ, დაიწყეთ Arduino Uno-თი: 5 ვოლტზე მუშაობს, მეტი სასწავლო მასალა აქვს და შეცდომებს უკეთ „იტანს“. როცა სენსორებს და კოდს გაერკვევით, ESP32-ზე გადადით Wi-Fi-ის საჭიროებისთვის. ორივე Arduino IDE-ში პროგრამირდება.

შეუძლია თუ არა ბავშვს ჭკვიანი მოწყობილობის აწყობა?

დიახ, თუ პროექტი დაბალ ძაბვაზეა (3,3–12 ვოლტი). ამინდის სადგური, კარის სენსორი და CO₂ მონიტორი 10–13 წლის ბავშვისთვის კარგი პროექტებია, თუ ზრდასრული ეხმარება. ქსელის ძაბვასთან დაკავშირებული პროექტები მხოლოდ ზრდასრულისა და სპეციალისტის საქმეა.

რა არის IoT მარტივი სიტყვებით?

IoT (Internet of Things) ნიშნავს ჩვეულებრივ ნივთებს, რომლებიც ინტერნეტთან ან სახლის ქსელთან არიან დაკავშირებული: თერმომეტრი, რომელიც ტელეფონზე გიგზავნის ტემპერატურას, ან ქოთანი, რომელიც თავად ირწყვება. თითოეულ მათგანში პატარა მიკროკონტროლერი და სენსორია.

სჭირდება თუ არა Home Assistant-ს ინტერნეტი?

არა. Home Assistant მუშაობს თქვენს სახლის ქსელში და ESPHome მოწყობილობებს ადგილობრივად უკავშირდება, ამიტომ ინტერნეტის გათიშვისას ავტომატიზაციები ისევ მუშაობს. ინტერნეტი მხოლოდ მაშინ გჭირდებათ, როცა სახლის გარედან გინდათ ნახოთ მონაცემები.

შემდეგი ნაბიჯი

აირჩიეთ ერთი პროექტი ამ სიიდან (ყველაზე ხშირად ეს ამინდის სადგურია) და ბოლომდე მიიყვანეთ: სენსორი, კოდი, კორპუსი. ერთი მომუშავე მოწყობილობა ათ დაწყებულ პროექტზე მეტს გასწავლით. თუ გინდათ, რომ შვილმა ელექტრონიკა სისტემურად, ნაკრებით და მენტორთან ერთად ისწავლოს, დაგვიკავშირდით უფასო კონსულტაციისთვის და დაგეხმარებით, სწორი კურსი შეარჩიოთ.

წყაროები

ჭკვიანი სახლიESP32ჭკვიანი მოწყობილობებიარდუინოს პროექტებიIoTArduinoESPHomeHome Assistant
გაზიარება
წაიკითხე ასევე

მსგავსი სტატიები

ყველა სტატია