Სარჩევი:

ტემპერატურისა და ტენიანობის მონიტორი: 6 ნაბიჯი (სურათებით)
ტემპერატურისა და ტენიანობის მონიტორი: 6 ნაბიჯი (სურათებით)

ვიდეო: ტემპერატურისა და ტენიანობის მონიტორი: 6 ნაბიჯი (სურათებით)

ვიდეო: ტემპერატურისა და ტენიანობის მონიტორი: 6 ნაბიჯი (სურათებით)
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
ტემპერატურისა და ტენიანობის მონიტორი
ტემპერატურისა და ტენიანობის მონიტორი
ტემპერატურისა და ტენიანობის მონიტორი
ტემპერატურისა და ტენიანობის მონიტორი

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

მოწყობილობის ძირითადი ნაწილებია ESP8266 მიკროკონტროლი, DHT11 ტემპერატურისა და ტენიანობის სენსორი და 16x4 პერსონაჟის LCD. პროექტი არის სრულად ღია წყარო, ასე რომ მოგერიდებათ გადმოწეროთ სქემატური, დაფის განლაგებისა და დიზაინის ფაილები შიგთავსისთვის და განახორციელოთ თქვენთვის სასურველი ცვლილებები.

ნაბიჯი 1: ინსტრუმენტები და ნაწილები

ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები
ინსტრუმენტები და ნაწილები

მონიტორის შესაქმნელად დაგჭირდებათ შემდეგი ნაწილები:

1 x ESP-12F [2 €]-რამდენადაც ვიცი ESP-12E და ESP-12F ძირითადად იდენტურია, იმ განსხვავებით, რომ ESP-12F– ს აქვს უკეთესი ანტენა.

1 x DHT11 ტემპერატურისა და ტენიანობის სენსორი [0.80 €] - DHT22 ასევე მუშაობს, მაგრამ გარკვეული ცვლილებები უნდა მოხდეს დანართის 3D მოდელზე, DHT22 ასევე ცოტა უფრო ძვირია.

1 x 16x4 პერსონაჟი LCD 5V [3.30 €] - დიახ, თქვენ დაგჭირდებათ 5V, რადგან PCB შექმნილია ისე, რომ LCD იკვებება პირდაპირ 5V– დან და არა ძაბვის მარეგულირებელი. ეს გაკეთდა ძაბვის მარეგულირებელზე დატვირთვის შესამცირებლად, არამედ იმიტომ, რომ 5 ვ დისპლეი უფრო იაფია. მაგრამ არ ინერვიულოთ, მიუხედავად იმისა, რომ ESP8266 მუშაობს 3.3V– ზე, ის მაინც კარგად იმუშავებს.

1 x LD1117V33 SMD ძაბვის რეგულატორი, ასევე ცნობილი როგორც LD33 (SOT223 პაკეტი) [0.80 €]

1 x 100nF კერამიკული SMD კონდენსატორი (0603 პაკეტი)

1 x 10uF ტანტალი SMD კონდენსატორი (3528 პაკეტი)

1 x 10K SMD რეზისტორი (0805 პაკეტი)

1 x 10K საპარსები ქოთანი (ხვრელის გავლით)

1 x 47Ω SMD რეზისტორი (0805 პაკეტი) - ეს არის მხოლოდ იმის შეზღუდვისთვის, რომ მიმდინარეობა მიდის LCD– ის შუქნიშანზე. მოგერიდებათ ექსპერიმენტი სხვადასხვა წინააღმდეგობის მნიშვნელობებით და შეარჩიეთ თქვენთვის სასურველი ინტენსივობა.

1 x SMD მომენტალური გადამრთველი [0.80 €] - ის, რაც მე გამოვიყენე არის ეს, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი მომენტალური გადამრთველი, რომელიც გსურთ იგივე ნაკვალევით. მე ასევე შევძელი ერთიდაიგივე კონცენტრატორების პოვნა eBay– ზე ერთზე მეტით.

1 x 5.5x2.1 მმ DC ჯეკი (პანელის საყრდენი) [0.50 €] - მას, რასაც მე ვიყენებ, აქვს 8 მმ პანელის გაჭრის დიამეტრი და 9 მმ სიგრძე. ის ადვილად მოიძებნება eBay– ზე „Panel Mount DC Jack“- ის ძებნით (იხ. თანდართული სურათი).

1 x 2.54 მმ (100 მლ) 40 პინიანი მამრობითი Pin Header (მეშვეობით ხვრელი)

1 x 2.54 მმ (100 მლ) 40 პინიანი დამუშავებული ქალი პინ ჰედერი (ხვრელის გავლით)

1 x 2.54 მმ (100 მილი) ჯუმპერი - ეს იგივეა, რაც კომპიუტერის დედაპლატებზე.

4 x M3 8 მმ ჭანჭიკები

4 x M3 4x4 მმ ხრახნიანი ჩანართები - მათი ადვილად პოვნა შესაძლებელია eBay- ზე "M3 Press -In Brass Copper Inserts" - ის ძებნით (იხ. თანდართული სურათი).

4 x M2 12 მმ ჭანჭიკები

4 x M2 თხილი

1 x USB ტიპი A– დან 5.5x2.1 მმ DC დანამატის კაბელი [1.5 €] - ეს საშუალებას მოგცემთ იკვებოთ თქვენი მოწყობილობა სტანდარტული ტელეფონის დამტენიდან ან თითქმის ნებისმიერი კომპიუტერი USB პორტით. მოწყობილობა მხოლოდ 300mA უარეს შემთხვევაში და 250mA საშუალოდ ხდის, ასე რომ USB 2.0 პორტიც კი გააკეთებს.

1 x PCB - დაფის სისქე არ არის კრიტიკული, ასე რომ გადადით 1.6 მმ -ზე, რაც ჩვეულებრივ ყველაზე იაფი ვარიანტია PCB მწარმოებლების უმეტესობასთან.

3 x ცალი Stranded Wire (დაახლოებით 60 მმ თითოეული)

3 x ცალი სითბოს შემცირების მილები (თითოეული დაახლოებით 10 მმ)

და შემდეგი ინსტრუმენტები:

გასაყიდი რკინა

USB სერიული გადამყვანი - ეს დაგჭირდებათ დაფაზე ESP8266 პროგრამირებისათვის.

Phillips Screwdriver და/ან Hex Key - დამოკიდებულია ხრახნების ტიპზე, რომელსაც გამოიყენებთ.

3D პრინტერი - თუ თქვენ არ გაქვთ წვდომა 3D პრინტერზე, თქვენ ყოველთვის შეგიძლიათ გამოიყენოთ ზოგადი პლასტიკური პროექტის ყუთი და გააკეთოთ ნაჭრები თავად Dremel– ით. ასეთი ყუთის მინიმალური შიდა ზომები უნდა იყოს 24 მმ სიმაღლე, 94 მმ სიგრძე და 66 მმ სიგანე. თქვენ ასევე უნდა გამოიყენოთ 8 მმ M2 სადგამი LCD– ის დასაყენებლად.

დრემელი - საჭიროა მხოლოდ იმ შემთხვევაში, თუ თქვენ არ მიდიხართ 3D ბეჭდვით დანართზე.

ნაბიჯი 2: PCB- ის დამზადება

PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება

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

დაფებზე ხელის დაჭერის შემდეგ დროა შევაერთოთ კომპონენტები. ეს უნდა იყოს საკმაოდ პირდაპირი, მაგრამ არის რამდენიმე რამ, რაც უნდა აღინიშნოს. ჯერ ერთი, არ გააგრძელოთ PCB– ის შეფუთვა LCD სათაურზე, ეს უნდა გაკეთდეს საბოლოო შეკრების დროს, იმის გამო, რომ დანართი შეიქმნა. თუ თქვენ აკეთებთ საკუთარ გარსს, მოგერიდებათ უგულებელყოთ ეს რჩევა.

U3 კონექტორი არის ადგილი, სადაც DHT11 სენსორი იქნება დაკავშირებული. იდეალურ შემთხვევაში, თქვენ უნდა გამოიყენოთ 90 ° -იანი კუთხის დამუშავებული ქალი ქინძისთავები ამ მიზნით. მაგრამ თუ შენ მომწონხარ ვერ პოულობ ერთს, უბრალოდ აიღე სწორი და თვითონ მოხარე. თუ ამას მოგვიანებით გააკეთებთ, DHT11- ის ლიდერი ასევე იქნება მოკლე, ასე რომ თქვენ მოგიწევთ რამდენიმე გაფართოების შედუღება. პინ სათაურსა და სენსორს შორის კავშირი ერთხელ უნდა იყოს დაახლოებით 5 მმ.

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

ნაბიჯი 3: დანართის დამზადება

დანართის დამზადება
დანართის დამზადება
დანართის დამზადება
დანართის დამზადება
დანართის დამზადება
დანართის დამზადება
დანართის დამზადება
დანართის დამზადება

ახლა, როდესაც PCB არის soldered დროა გავაკეთოთ დანართი. არსებობს ორი განსხვავებული ნაწილი, რომლებიც უნდა დაიბეჭდოს, შიგთავსის ძირითადი ნაწილი და სახურავი. სახურავს ასევე აქვს სამონტაჟო ხვრელები, რომლითაც იგი თქვენს კედელზეა დამაგრებული.

ორივე ნაწილის დაბეჭდვა შესაძლებელია სტანდარტული 0.4 მმ საქშენით 0.2 მმ ფენის სიმაღლეზე, ჩემი შემთხვევაში ბეჭდვის დრო იყო დაახლოებით 4 საათი ორივე ნაწილისთვის ერთად. სახურავი არ საჭიროებს რაიმე საყრდენს გარსაცმის ძირითად ნაწილს, თუმცა, ძირითადად ხრახნიანი სოკეტების ქვეშ მყოფი ნაწილისთვის. დაბეჭდვის შემდეგ ფრთხილად იყავით საყრდენების მოხსნისას, ამის გაკეთებისას მოვახერხე LCD- ის ერთ-ერთი დამცავი გარღვევა და მისი სუპერწებებით დაბრუნება მომიწია.

დანართი შექმნილია FreeCAD– ზე, ასე რომ, თუ გსურთ რაიმე ცვლილების შეტანა, ის საკმაოდ მარტივი უნდა იყოს. შიგთავსის დასაბეჭდად STL ფაილები, ასევე FreeCAD დიზაინის ფაილები შეგიძლიათ იხილოთ Thingiverse– ზე.

ნაბიჯი 4: მონიტორის აწყობა

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

გამოსახულება
გამოსახულება

შემდეგი, მოათავსეთ PCB მის თავზე, სენსორი უკვე მიმაგრებულია pin სათაურზე.

გამოსახულება
გამოსახულება

ამის შემდეგ, დააყენეთ სენსორი ხვრელში, გადაიტანეთ LCD ეკრანის პოზიციაზე და ჩადეთ PCB პინის სათაურზე. ახლა დააფიქსირეთ LCD ადგილი M2 თხილისა და ჭანჭიკის გამოყენებით და შეაერთეთ PCB პინზე სათაურზე.

გამოსახულება
გამოსახულება

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

გამოსახულება
გამოსახულება

ბოლო ნაბიჯი არის ლითონის ხრახნიანი ჩანართების დაყენება ისე, რომ სახურავი დაიჭრას M3 ჭანჭიკებით. ამ მიზნით თქვენ უნდა გამოიყენოთ თქვენი soldering რკალი მათ გასათბობად, რათა ისინი ხვრელებში ჩაყარონ. თქვენ შეგიძლიათ გადახედოთ ამ ინსტრუქციას, თუ გჭირდებათ მეტი ინფორმაცია თქვენს 3D პრინტებზე ლითონის ძაფების დამატების შესახებ.

გამოსახულება
გამოსახულება

ნაბიჯი 5: სერვერის დაყენება

სერვერის დაყენება
სერვერის დაყენება

ESP8266– ზე ფირმის ატვირთვამდე არის კიდევ ერთი რამ, რაც უნდა გაკეთდეს, ეს არის სერვერის დაყენება მოწყობილობის მიერ მიღებული მონაცემების შესასვლელად. ამ მიზნით თქვენ შეგიძლიათ გამოიყენოთ თითქმის ნებისმიერი Linux აპარატი, რაც გსურთ, Raspberry Pi– დან თქვენს პირად ქსელში, ციფრული ოკეანის წვეთამდე. მე მოგვიანებით მივდიოდი, მაგრამ პროცესი თითქმის იგივეა რაც არ უნდა აირჩიო.

Apache, MySQL (MariaDB) და PHP დაყენება

პირველ რიგში ჩვენ გვჭირდება LAMP- ის დაყენება, ან სხვა სიტყვებით რომ ვთქვათ სერვერზე დააინსტალირეთ Apache, MySQL (MariaDB) და PHP. ამისათვის თქვენ უნდა გამოიყენოთ თქვენი დისტრიბუციის პაკეტის მენეჯერი, მაგალითის გულისთვის მე გამოვიყენებ apt, რომელიც არის პაკეტის მენეჯერი, რომელსაც იყენებს თითქმის ნებისმიერი დებიანზე დაფუძნებული დისტრო, მათ შორის Raspbian.

sudo apt განახლება

sudo apt დააინსტალირეთ apache2 mysql-server mysql-client php libapache2-mod-php php-mysql

ამის შემდეგ, თუ თქვენი სერვერის IP მისამართს თქვენს ბრაუზერის მისამართის ზოლში დააყენებთ, უნდა გქონდეთ საშუალება ნახოთ ნაგულისხმევი Apache გვერდი.

მონაცემთა ბაზის დაყენება

ახლა ჩვენ გვჭირდება მონაცემთა ბაზა მონაცემების ჩაწერისთვის. პირველი, დაკავშირება MySQL როგორც root გაშვებული, sudo mysql

შექმენით მონაცემთა ბაზა და მომხმარებელი მასზე წვდომით შემდეგნაირად, შექმენით მონაცემთა ბაზა `სენსორები

გამოიყენეთ `სენსორები; შექმენით ცხრილი „ტემპერატურა“(`id` bigint (20) NOT NULL AUTO_INCREMENT,` client_id` smallint (6) NOT NULL, `value` smallint (6) NOT NULL,` created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (" id`)) ძრავა = InnoDB; შექმენით ცხრილი `ტენიანობა` (` id` bigint (20) NOT NULL AUTO_INCREMENT, `client_id` smallint (6) NOT NULL,` value` smallint (6) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (" id`)) ძრავა = InnoDB; შექმენით მომხმარებელი '[მომხმარებლის სახელი]'@'localhost' IDENTIFIED BY '[პაროლი]'; მიეცით ყველა პრივილეგია 'სენსორების' შესახებ.* 'სენსორების'@'localhost'; გასვლა

დარწმუნდით, რომ შეცვალეთ [მომხმარებლის სახელი] და [პაროლი] MySQL მომხმარებლის ნამდვილი მომხმარებლის სახელით და პაროლით, რომელიც მოგწონთ. ასევე, გაითვალისწინეთ ისინი, რადგან თქვენ დაგჭირდებათ ისინი შემდეგი ნაბიჯისათვის.

ჟურნალისა და ვებ ინტერფეისის სკრიპტების კონფიგურაცია

შეცვალეთ/var/www/html დირექტორიაში, რომელიც არის Apache- ის ნაგულისხმევი ვირტუალური მასპინძლის დოკუმენტის ფესვი, წაშალეთ HTML ფაილი, რომელიც შეიცავს ნაგულისხმევ ვებგვერდს და გადმოწერეთ მასში შესვლა და ვებ ინტერფეისის სკრიპტები.

cd/var/www/html

sudo rm index.html sudo wget https://raw.githubusercontent.com/magkopian/esp-arduino-temp-monitor/master/server/log.php sudo wget https://raw.githubusercontent.com/magkopian/esp- arduino-temp-monitor/master/server/index.php

ახლა შეცვალეთ სკრიპტი ნანოს გამოყენებით, sudo nano log.php

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

დაბოლოს, შეცვალეთ index.php ნანოთი, sudo nano index.php

და შეცვალეთ [მომხმარებლის სახელი] და [პაროლი] მომხმარებლის სახელით და პაროლით MySQL მომხმარებლისთვის, როგორც ეს გააკეთეთ ჟურნალის სკრიპტით.

HTTPS- ის დაყენება (სურვილისამებრ)

ეს შეიძლება იყოს სურვილისამებრ, მაგრამ თუ კავშირი ESP8266 და სერვერს შორის არის ინტერნეტი, რეკომენდირებულია გამოიყენოთ გარკვეული დაშიფვრა.

სამწუხაროდ, თქვენ არ შეგიძლიათ უბრალოდ წინ წახვიდეთ და გამოიყენოთ რამე, როგორიცაა Let's Encrypt სერტიფიკატის მისაღებად. ეს იმიტომ ხდება, რომ ყოველ შემთხვევაში წერის დროს, ETP8266– ის HTTP კლიენტის ბიბლიოთეკა კვლავ მოითხოვს სერტიფიკატის ანაბეჭდს, როგორც მეორე არგუმენტს http.begin () - ის გამოძახებისას. ეს ნიშნავს, რომ თუ თქვენ იყენებთ ისეთ რამეს, როგორიცაა Let Encrypt, თქვენ მოგიწევთ ჩამრთველი პროგრამული უზრუნველყოფის ჩიპზე ყოველ სამ თვეში ერთხელ, რათა განაახლოთ სერთიფიკატის თითის ანაბეჭდი ყოველი განახლების შემდეგ.

ამის გამოსავალი იქნება თვით ხელმოწერილი სერტიფიკატის გენერირება, რომელიც იწურება ძალიან დიდი ხნის შემდეგ (მაგ. 10 წელი) და შენახვის სკრიპტი საკუთარ ვირტუალურ მასპინძელზე საკუთარი ქვედომენით. ამ გზით, თქვენ შეგიძლიათ გქონდეთ ვებ ინტერფეისი მონაცემებზე წვდომისათვის ცალკე ქვედომენზე, რომელიც გამოიყენებს სანდო ორგანოს სათანადო სერტიფიკატს. ამ შემთხვევაში ხელმოწერილი სერტიფიკატის გამოყენება არ არის უსაფრთხოების საკითხი, რადგან სერთიფიკატის ანაბეჭდი, რომელიც ცალსახად განსაზღვრავს მას, ჩაწერილი იქნება firmware- ში და სერთიფიკატს გამოიყენებს მხოლოდ ESP8266.

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

sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout /etc/ssl/private/sensors.key -out /etc/ssl/certs/sensors.crt

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

შემდეგი შექმენით ახალი ვირტუალური მასპინძლის კონფიგურაცია, sudo nano /etc/apache2/sites-available/sensors-ssl.conf

შემდეგი შინაარსით, ServerName [ქვედომენი] DocumentRoot/var/www/სენსორები SSLEngine ON SSLCertificateKeyFile /etc/ssl/private/sensors.key SSLCertificateFile /etc/ssl/certs/sensors.crt პარამეტრები +FollowSymlinks -Indexes AllowOverride All ErrorLog} { error-ssl.log CustomLog $ {APACHE_LOG_DIR} /sensors-access-ssl.log კომბინირებული

კიდევ ერთხელ, დარწმუნდით, რომ შეცვალეთ [ქვედომენი] იმავე ქვედომენით, რომელიც გამოიყენეთ სერტიფიკატით. ამ დროს თქვენ უნდა გამორთოთ ნაგულისხმევი ვირტუალური მასპინძელი Apache, sudo a2dissite 000-ნაგულისხმევი

შეცვალეთ დოკუმენტის ძირეული დირექტორიის სახელი, sudo mv/var/www/html/var/www/სენსორები

და ბოლოს ჩართეთ ახალი ვირტუალური მასპინძელი და გადატვირთეთ Apache, sudo a2ensite სენსორები- ssl

sudo systemctl გადატვირთეთ apache2

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

openssl x509 -noout -თითის ანაბეჭდი -sha1 -ინფორმაცია pem -in /etc/ssl/certs/sensors.crt

Http.begin () ელოდება, რომ თითის ანაბეჭდის ბაიტებს შორის განმსაზღვრელი არის სივრცეები, ასე რომ თქვენ დაგჭირდებათ კოლონის შეცვლა სივრცეებით, სანამ თქვენს კოდში გამოიყენებთ.

ახლა, თუ არ გსურთ ვებ – ინტერფეისისთვის ხელმოწერილი სერთიფიკატის გამოყენება ახალი ქვედომენის დასაყენებლად და ახალი ვირტუალური მასპინძლის კონფიგურაციის შესაქმნელად, sudo nano /etc/apache2/sites-available/sensors-web-ssl.conf

შემდეგი შინაარსით, სერვერის სახელი [ქვედომენი] DocumentRoot/var/www/სენსორები #SSLEngine ON #SSLCertificateFile/და ა.შ. /letencrypt/live/

აუცილებლად შეცვალეთ [ქვედომენი] იმ ქვედომენით, რომელიც თქვენ გაქვთ დაყენებული ვებ ინტერფეისისთვის. შემდეგ ჩართეთ ახალი ვირტუალური მასპინძელი, გადატვირთეთ Apache, დააინსტალირეთ certbot და მიიღეთ სერთიფიკატი ახალი ქვედომენისთვის Let's Encrypt, sudo a2ensite სენსორები- web-ssl

sudo systemctl გადატვირთვა apache2 sudo apt განახლება sudo apt ინსტალაცია certbot sudo certbot certonly --apache -d [ქვედომენი]

სერთიფიკატის მიღების შემდეგ კვლავ შეცვალეთ ვირტუალური მასპინძლის კონფიგურაცია SSLEngine, SSLCertificateFile, SSLCertificateKeyFile და SSLCertificateChainFile ხაზების გათიშვის მიზნით და გადატვირთეთ Apache.

ახლა თქვენ შეგიძლიათ გამოიყენოთ პირველი ქვედომენი, რომელიც იყენებს ხელმოწერილ სერტიფიკატს ESP8266– დან მონაცემების სერვერზე გაგზავნისთვის, ხოლო მეორე გამოიყენეთ ბრაუზერის ვებ ინტერფეისზე წვდომისათვის. Certbot ასევე იზრუნებს თქვენზე, მოდით დაშიფროთ სერტიფიკატი ყოველ 3 თვეში, სისტემური ქრონომეტრის გამოყენებით, რომელიც სტანდარტულად უნდა იყოს ჩართული.

ნაბიჯი 6: პროგრამირება ESP8266

ESP8266 პროგრამირება
ESP8266 პროგრამირება

დაბოლოს, ერთადერთი რაც რჩება არის მიკროკონტროლერზე ფირმის ჩატვირთვა. ამისათვის გადმოწერეთ firmware– ის საწყისი კოდი აქედან და გახსენით Arduino IDE გამოყენებით. თქვენ უნდა შეცვალოთ [SSID] და [პაროლი] თქვენი WiFi ქსელის ფაქტობრივი SSID და პაროლით. თქვენ ასევე უნდა შეცვალოთ [კლიენტის ID] და [კლიენტის გასაღები] sprintf ფუნქციის ზარზე იმ პირით, რომლებიც გამოიყენეთ სერვერზე PHP სკრიპტზე. დაბოლოს, თქვენ უნდა შეცვალოთ [მასპინძელი] დომენის სახელით ან სერვერის IP მისამართით. თუ თქვენ იყენებთ HTTPS– ს, თქვენ ასევე უნდა მიაწოდოთ თქვენი სერთიფიკატის ანაბეჭდი, როგორც მეორე არგუმენტი http.begin () ფუნქციის გამოძახებაზე. მე ავუხსენი, თუ როგორ უნდა მივიღოთ სერთიფიკატის ანაბეჭდი წინა ეტაპზე "HTTPS- ის დაყენება" განყოფილებაში.

შემდეგი, თუ უკვე არ გაქვთ, თქვენ დაგჭირდებათ ESP8266 Community ძირითადი პაკეტის დაყენება Arduino IDE– ს დაფის მენეჯერის გამოყენებით. ამის დასრულების შემდეგ შეარჩიეთ NodeMCU 1.0 (ESP-12E მოდული) დაფების მენიუდან. შემდეგი, თქვენ უნდა დააინსტალიროთ SimpleDHT ბიბლიოთეკა ბიბლიოთეკის მენეჯერის გამოყენებით. დაბოლოს, დააჭირეთ IDE ფანჯრის ზედა მარცხენა კუთხეში გადამოწმების ღილაკს, რათა დარწმუნდეთ, რომ კოდი შედგენილია შეცდომების გარეშე.

ახლა კი, საბოლოოდ დროა მიკროკონტროლერისთვის firmware დაწვა. ამისათვის გადაიტანეთ ჯუმპერი JP1 მარჯვნივ, ასე რომ ESP8266– ის GPIO0 მიერთდება მიწას, რაც პროგრამირების რეჟიმს ჩართავს. შემდეგ, მიამაგრეთ თქვენი USB სერიულ კონვერტორს jumper ხაზების გამოყენებით პროგრამირების სათაურში, რომელსაც ეტიკეტი აქვს როგორც P1. პროგრამირების სათაურის პინ 1 არის დაფქული, პინ 2 არის ESP8266 მიმღების პინი და გადაცემა 3. თქვენ გჭირდებათ ESP8266– ის მიღება, რათა გადავიდეთ თქვენი USB სერიული გადამყვანის გადაცემაზე, გადაეცემა მიმღებზე და, რა თქმა უნდა, მიწიდან მიწაზე.

დაბოლოს, ჩართეთ მოწყობილობა 5 ვ -ით თქვენი USB to DC ჯეკის კაბელის გამოყენებით და დაუკავშირეთ USB სერიულ გადამყვანს თქვენს კომპიუტერს. ახლა თქვენ უნდა ნახოთ ვირტუალური სერიული პორტი, სადაც ESP8266 არის დაკავშირებული, როგორც კი გახსნით ინსტრუმენტების მენიუს თქვენს IDE- ზე. ახლა, უბრალოდ დააჭირეთ ღილაკს ატვირთვა და ეს არის ის! თუ ყველაფერი ისე წავიდა, როგორც მოსალოდნელი იყო, თქვენ უნდა ნახოთ ტემპერატურის და ტენიანობის მაჩვენებლები მოწყობილობის LCD ეკრანზე. მას შემდეგ, რაც ESP8266 დაუკავშირდება თქვენს ქსელს და იწყებს კომუნიკაციას სერვერთან, მიმდინარე თარიღი და დრო ასევე უნდა გამოჩნდეს ეკრანზე.

რამდენიმე საათის შემდეგ, როდესაც სერვერმა შეაგროვა საკმარისი რაოდენობის მონაცემები, თქვენ უნდა ნახოთ ტემპერატურისა და ტენიანობის დიაგრამები http (s): // [host] /index.php?client_id= [client id] მონახულებით.სადაც [მასპინძელი] არის თქვენი სერვერის IP მისამართი ან ქვედომენი, რომელსაც თქვენ იყენებთ ვებ ინტერფეისისთვის და [კლიენტის ID] მოწყობილობის კლიენტის ID, რომელიც თუ დატოვეთ ნაგულისხმევ მნიშვნელობამდე, უნდა იყოს 1.

გირჩევთ: