Բովանդակություն:

Temերմաստիճանի եւ խոնավության մոնիտոր `6 քայլ (նկարներով)
Temերմաստիճանի եւ խոնավության մոնիտոր `6 քայլ (նկարներով)

Video: Temերմաստիճանի եւ խոնավության մոնիտոր `6 քայլ (նկարներով)

Video: Temերմաստիճանի եւ խոնավության մոնիտոր `6 քայլ (նկարներով)
Video: カカオ豆がチョコレートになるまで 高級チョコレート工場に潜入 ダンデライオン・チョコレート ファクトリー&カフェ蔵前 チョコレート職人 ASMR チャーリーとチョコレート工場のようなファクトリー 2024, Նոյեմբեր
Anonim
Temերմաստիճանի եւ խոնավության մոնիտոր
Temերմաստիճանի եւ խոնավության մոնիտոր
Temերմաստիճանի եւ խոնավության մոնիտոր
Temերմաստիճանի եւ խոնավության մոնիտոր

Այս ուսանելի ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել ձեր սեփական սենյակի ջերմաստիճանի և խոնավության մոնիտորը: Սարքն ունի նաև 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- ից, այլ ոչ թե լարման կարգավորիչից: Դա արվել է լարման կարգավորիչի բեռը նվազեցնելու համար, այլ նաև այն պատճառով, որ 5V դիսփլեյներն ավելի էժան են: Բայց մի անհանգստացեք, չնայած ESP8266- ը աշխատում է 3.3 Վ լարման վրա, այն դեռ լավ կաշխատի:

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 Resistor (0805 փաթեթ) - Սա պարզապես այն հոսանքի սահմանափակման համար է, որը անցնում է LCD- ի հետևի լուսավորությանը: Ազատորեն փորձարկեք դիմադրության տարբեր արժեքներ և ընտրեք ձեր նախընտրած ինտենսիվությունը:

1 x SMD Momentary Switch [0.80 €] - Իմ օգտագործածը սա է, բայց դուք կարող եք օգտագործել ցանկացած վայրկենական անջատիչ, որը ցանկանում եք նույն ոտնահետքով: Ես նաև կարողացա նույն անջատիչները գտնել eBay- ում ՝ ավելի քան մեկով ՝ ստանալով մեկից ավելին:

1 x 5.5x2.1 մմ DC Jack (վահանակի ամրացում) [0.50 €] - Իմ օգտագործածն ունի 8 մմ վահանակի կտրման տրամագիծ և 9 մմ երկարություն: Այն հեշտությամբ կարելի է գտնել eBay- ում ՝ որոնելով «Panel Mount DC Jack» (տես կից նկարը):

1 x 2.54 մմ (100 մղոն) 40 պինով արական կապի գլխիկ (անցքի միջով)

1 x 2.54 մմ (100 մղոն) 40-պտույտով մշակված իգական կապում գլխիկ (անցքի միջով)

1 x 2.54 մմ (100 մղոն) Jumper - դա նույնն է, ինչ օգտագործվում է համակարգչային մայր տախտակների վրա:

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 Type A- ից մինչև 5.5x2.1 մմ DC Plug Cable [1.5 €] - Սա թույլ կտա ձեր սարքը սնուցել կամ ստանդարտ հեռախոսի լիցքավորիչից, կամ USB պորտ ունեցող գրեթե ցանկացած համակարգչից: Սարքը միայն 300mA վատագույն դեպքում և միջինում 250mA է, այնպես որ նույնիսկ USB 2.0 պորտը կանի:

1 x PCB - Տախտակի հաստությունը կարևոր չէ, այնպես որ պարզապես գնացեք 1,6 մմ -ով, ինչը սովորաբար ամենաէժան տարբերակն է PCB արտադրողների մեծ մասի համար:

3 x Stranded Wire կտոր (յուրաքանչյուրը մոտ 60 մմ)

3 x Heatshrink խողովակի կտոր (յուրաքանչյուրը մոտ 10 մմ)

Եվ հետևյալ գործիքները

Sոդման երկաթ

USB- ից սերիական փոխարկիչ - Սա ձեզ հարկավոր կլինի տախտակի վրա ESP8266 ծրագրավորելու համար:

Phillips Պտուտակահան և/կամ Hex Key - Կախված պտուտակների տեսակից, որոնք կօգտագործեք:

3D տպիչ - Եթե 3D տպիչ չունեք, միշտ կարող եք օգտագործել ընդհանուր պլաստիկ նախագծի տուփ և կտրվածքներն ինքներդ կատարել Dremel- ով: Նման տուփի ներքին նվազագույն չափերը պետք է լինեն 24 մմ բարձրություն, 94 մմ երկարություն և 66 մմ լայնություն: LCD- ի տեղադրման համար անհրաժեշտ կլինի նաև օգտագործել 8 մմ M2 անջատիչներ:

Dremel - Անհրաժեշտ է միայն այն դեպքում, եթե դուք չեք գնում 3D տպված պատյանով:

Քայլ 2: PCB- ի պատրաստում

PCB- ի պատրաստում
PCB- ի պատրաստում
PCB- ի պատրաստում
PCB- ի պատրաստում
PCB- ի պատրաստում
PCB- ի պատրաստում

Առաջին քայլը PCB- ի պատրաստումն է: Դուք կարող եք դա անել կամ ինքներդ փորագրելով, կամ պարզապես այցելելով ձեր նախընտրած PCB արտադրողի կայք և պատվիրել պատվեր: Եթե դուք չեք նախատեսում որևէ փոփոխություն կատարել տախտակի դասավորության մեջ, կարող եք պարզապես վերցնել այս քայլին կցված gerber ֆայլերը պարունակող ZIP ֆայլը և այն ուղարկել անմիջապես արտադրողին: Եթե ցանկանում եք փոփոխություններ կատարել, KiCAD- ի սխեմատիկ և տախտակի դասավորության ֆայլերը կարելի է գտնել այստեղ:

Տախտակներին ձեռքերը բռնելուց հետո ժամանակն է մասերը զոդել: Սա պետք է լինի շատ պարզ, բայց կան մի քանի բաներ, որոնք պետք է նշել: Նախ, դեռ մի շարունակեք PCB- ն LCD- ի վերնագրին կպցնելը, դա անհրաժեշտ կլինի անել վերջնական հավաքման ժամանակ `պատյանների նախագծման եղանակի պատճառով: Եթե դուք ինքներդ եք պատրաստում ձեր պարիսպը, չնայած ազատ զգացեք անտեսել այդ խորհուրդը:

U3 միակցիչն այն վայրն է, որտեղ միանալու է DHT11 սենսորը: Իդեալում, այդ նպատակի համար պետք է օգտագործեք 90 ° անկյան տակ մշակված կանացի քորոց գլխագիծ: Բայց եթե ինձ դուր է գալիս, դու ի վիճակի չես գտնել մեկին, պարզապես ստացի՛ր ուղիղ մեկը և ինքդ թեքիր այն: Եթե ավելի ուշ անեք, DHT11- ի հաղորդալարերը նույնպես մի փոքր կարճ կլինեն, ուստի ստիպված կլինեք միացնել որոշ ընդարձակումներ: Կապի վերնագրի և միացման ցուցիչի միջև հեռավորությունը պետք է լինի մոտավորապես 5 մմ:

Պատճառն այն է, թե ինչու եք ցանկանում օգտագործել մեխանիկական քորոց վերնագիր, այն է, որ անցքերը ավելի փոքր են, քան սովորական կանացի քորոցների վերնագրերը: Այսպիսով, տվիչի լարերը կարող են սերտորեն նստել այնտեղ ՝ ստեղծելով ամուր կապ: Բայց դուք կարող եք նաև փորձել DHT11- ը միացնել տղամարդկային գլխիկի մի կտորի վրա և այդ կերպ միացնել այն սովորական անկյունագծով կանացի գլխիկի վերնագրին, որը պետք է աշխատի նույնքան լավ:

Քայլ 3: Պատյան պատրաստելը

Շրջանակի պատրաստում
Շրջանակի պատրաստում
Շրջանակի պատրաստում
Շրջանակի պատրաստում
Շրջանակի պատրաստում
Շրջանակի պատրաստում
Շրջանակի պատրաստում
Շրջանակի պատրաստում

Այժմ, երբ PCB- ն եռակցված է, ժամանակն է պատրաստել պատյանը: Կան երկու տարբեր մասեր, որոնք պետք է տպագրվեն ՝ պարիսպի հիմնական մարմինը և կափարիչը: Կափարիչը նաև տեղադրում է տեղադրման անցքեր այն ձեր պատին ամրացնելու համար:

Երկու մասերն էլ կարող են տպվել ստանդարտ 0.4 մմ վարդակով 0.2 մմ շերտի բարձրության վրա, իմ դեպքում տպման ժամանակը երկու մասի համար մոտ 4 ժամ էր: Կափարիչը չի պահանջում որևէ հենարան պարիսպի հիմնական մասի համար, այնուամենայնիվ, հիմնականում պտուտակային վարդակների տակ գտնվող մասի համար: Տպագրությունից հետո շատ զգույշ եղեք հենարանները հեռացնելիս, ես դա անելիս կարողացա կոտրել LCD- ի կանգառներից մեկը և ստիպված էի այն նորից սոսնձել սոսնձի միջոցով:

Պարիսպը նախատեսված է FreeCAD- ի վրա, այնպես որ, եթե ցանկանում եք որևէ փոփոխություն կատարել, այն պետք է լինի շատ պարզ: Շրջանակը տպելու STL ֆայլերը, ինչպես նաև FreeCAD ձևավորման ֆայլերը կարելի է գտնել Thingiverse- ում:

Քայլ 4: Մոնիտորի հավաքում

Շրջանակը տպագրված է, ժամանակն է ամեն ինչ միացնելու: Նախ, տեղադրեք LCD- ը պատյանի ներսում և սահեցրեք այն ձախ, այնպես որ դրա և սենսորի անցքի միջև բաց կլինի:

Պատկեր
Պատկեր

Հաջորդը, տեղադրեք PCB- ն դրա վերևում, իսկ սենսորը արդեն ամրացված է քորոցի վերնագրին:

Պատկեր
Պատկեր

Դրանից հետո, սենսորը մղեք անցքի մեջ, սահեցրեք LCD- ը դեպի ետ և տեղադրեք PCB- ը քորոցի վերնագրի վրա: Այժմ ամրացրեք LCD- ն տեղում ՝ օգտագործելով M2 ընկույզներ և պտուտակներ, և PCB- ն կպցրեք կապի վերնագրին:

Պատկեր
Պատկեր

Հաջորդը, տեղադրեք հոսանքի վարդակը, միացրեք նրան մի քանի լար և կպցրեք դրանց մյուս ծայրերը PCB- ին: Heatերմաստիճանի նվազեցման խողովակների օգտագործումը այստեղ նույնպես լավ գաղափար կլինի:

Պատկեր
Պատկեր

Վերջին քայլը մետաղական թելերով ներդիրների տեղադրումն է, որպեսզի կափարիչը տեղում պտուտակված լինի M3 պտուտակներով: Այդ նպատակով դուք պետք է օգտագործեք ձեր եռակցման երկաթը դրանք տաքացնելու համար, որպեսզի դրանք մղվեն անցքերի մեջ: Դուք կարող եք ծանոթանալ այս հրահանգին, եթե ձեր 3D տպումներին մետաղական թելեր ավելացնելու մասին լրացուցիչ տեղեկությունների կարիք ունենաք:

Պատկեր
Պատկեր

Քայլ 5: Սերվերի կարգավորում

Սերվերի կարգավորում
Սերվերի կարգավորում

Մինչև որոնվածը ESP8266- ում վերբեռնելը ևս մեկ բան պետք է անել, այն է ՝ սերվերի ստեղծումը սարքի կողմից ստացված տվյալների գրանցման համար: Այդ նպատակով դուք կարող եք օգտագործել գրեթե ցանկացած Linux համակարգիչ ՝ ձեր անձնական Raspberry Pi- ից մինչև DigitalOcean կաթիլ: Ես գնացի ավելի ուշ, բայց գործընթացը գրեթե նույնն է ՝ անկախ նրանից, թե ինչ ես ընտրում:

Տեղադրելով Apache, MySQL (MariaDB) և PHP

Նախ պետք է տեղադրել LAMP, կամ այլ կերպ ասած տեղադրել Apache, MySQL (MariaDB) և PHP սերվերի վրա: Դրա համար ձեզ հարկավոր է օգտագործել ձեր դիստրոյի փաթեթների կառավարիչը, հանուն օրինակի, ես կօգտագործեմ apt, որը փաթեթների կառավարիչն է, որն օգտագործվում է գրեթե ցանկացած Debian- ի վրա հիմնված դիստրոյի կողմից, ներառյալ Raspbian- ը:

sudo apt թարմացում

sudo apt տեղադրել apache2 mysql-server mysql-client php libapache2-mod-php php-mysql

Դա անելուց հետո, եթե ձեր սերվերի IP հասցեն տեղադրեք ձեր դիտարկիչի հասցեի տողում, ապա պետք է կարողանաք տեսնել Apache- ի կանխադրված էջը:

Տվյալների բազայի ստեղծում

Այժմ մեզ անհրաժեշտ է տվյալների մուտքագրման տվյալների բազա: Սկզբում միացրեք MySQL- ին որպես արմատ ՝ գործարկելով, sudo mysql

Եվ ստեղծեք տվյալների բազան և դրան հասանելիություն ունեցող օգտվողը հետևյալ կերպ.

Ստեղծել տվյալների շտեմարան `տվիչներ

ՕԳՏԱԳՈՐԵԼ «տվիչներ»; ՍՏԵԵԼ ՍԵABԱՆԻ «ջերմաստիճան» («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

Այժմ խմբագրեք անտառահատման սցենարը `օգտագործելով nano, sudo nano log.php

Դուք պետք է փոխարինեք [օգտվողի անունը] և [գաղտնաբառը] MySQL օգտվողի օգտվողի անունով և գաղտնաբառով, որը դուք ստեղծել եք նախորդ քայլին: Բացի այդ, փոխարինեք [հաճախորդի բանալին] եզակի տողով և նշեք այն: Սա կօգտագործվի որպես գաղտնաբառ, որպեսզի մոնիտորը կարողանա ինքնությունը հաստատել սերվերում:

Վերջապես, խմբագրեք index.php- ն nano- ով, sudo nano index.php

և փոխարինեք [օգտվողի անունը] և [գաղտնաբառը] MySQL օգտվողի օգտվողի անունով և գաղտնաբառով, ինչպես դա արեցիք գրանցման սցենարի դեպքում:

HTTPS- ի կարգավորում (ըստ ցանկության)

Սա կարող է կամայական լինել, բայց եթե ESP8266- ի և սերվերի միջև կապը ինտերնետի միջոցով է, ապա խորհուրդ է տրվում օգտագործել որոշակի ծածկագրում:

Unfortunatelyավոք, դուք չեք կարող պարզապես առաջ գնալ և վկայագիր ստանալու համար օգտագործել Let's Encrypt- ի նման մի բան: Դա պայմանավորված է նրանով, որ առնվազն գրելու պահին, ESP8266- ի համար HTTP հաճախորդների գրադարանը դեռ պահանջում է, որ վկայագրի մատնահետքը տրամադրվի որպես երկրորդ փաստարկ http.begin () - ին զանգելիս: Սա նշանակում է, որ եթե օգտագործում եք Let's Encrypt- ի նման մի բան, ապա ստիպված կլինեք յուրաքանչյուր 3 ամիսը մեկ թարմացնել որոնվածը չիպին, որպեսզի յուրաքանչյուր թարմացումից հետո սերտիֆիկատի մատնահետքը թարմացվի:

Դրա շուրջը եղած ճանապարհը կլինի ինքնաստորագրված վկայագրի ստեղծումը, որը լրանում է շատ երկար ժամանակ (օրինակ ՝ 10 տարի) և պահելու տեղեկամատյանների սցենարը սեփական վիրտուալ սերվերի վրա ՝ իր ենթատիրույթով: Այդ կերպ, դուք կարող եք ունենալ վեբ ինտերֆեյս ՝ առանձին ենթատիրույթում տվյալներ մուտք գործելու համար, որոնք կօգտագործեն վստահելի մարմնի համապատասխան վկայական: Այս դեպքում ինքն ստորագրված վկայագրի օգտագործումը անվտանգության խնդիր չէ, քանի որ վկայագրի մատնահետքը, որը եզակիորեն նույնականացնում է այն, կոդավորվում է որոնվածի մեջ, և վկայականը կօգտագործվի միայն ESP8266- ի կողմից:

Նախքան սկսելը, ես ենթադրեմ, որ դուք արդեն տիրույթի անուն ունեք և կարող եք դրա վրա ենթադոմեյններ ստեղծել: Այսպիսով, սերտիֆիկատ ստեղծելու համար, որը լրանում է 10 տարի անց, գործարկեք հետևյալ հրամանը և պատասխանեք հարցերին:

sudo openssl req -x509 -հանգույցներ -օրեր 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}/APO 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

Վերջին բանը, որ պետք է արվի, վկայագրի մատնահետքի ձեռքբերումն է, քանի որ այն պետք է օգտագործվի որոնվածի կոդի մեջ:

openssl x509 -noout -tingerprint -sha1 -տեղեկացնել pem -in /etc/ssl/certs/sensors.crt

Http.begin () - ն ակնկալում է, որ մատնահետքի բայթերի միջև եղած սահմանազատիչները պետք է լինեն բացատներ, այնպես որ ձեր ծածկագրում այն օգտագործելուց առաջ անհրաժեշտ է փոխարինել գաղութները բացատներով:

Այժմ, եթե չեք ցանկանում վեբ ինտերֆեյսի համար ինքնստորագրված վկայական օգտագործել նոր ենթադոմեյն ստեղծելու և վիրտուալ հյուրընկալողի նոր կազմաձև ստեղծելու համար, sudo nano /etc/apache2/sites-available/sensors-web-ssl.conf

հետևյալ բովանդակությամբ, ServerName [ենթադոմեյն] DocumentRoot/var/www/տվիչներ #SSLEngine ON #SSLCertificateFile /etc/letsencrypt/live/ [subdomain] /letsencrypt/liv/

Համոզվեք, որ [ենթադոմեյնը] փոխարինեք վեբ ինտերֆեյսի համար տեղադրած ենթատիրույթով: Հաջորդը միացրեք նոր վիրտուալ սերվերը, վերագործարկեք Apache- ը, տեղադրեք certbot- ը և եկեք վկայագիր նոր ենթադոմեյնի համար Let's Encrypt, sudo a2ensite տվիչներ-վեբ-սսլ

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 ծրագրավորում

Ի վերջո, մնում է միայն միկրոկառավարիչի վրա որոնվածը բեռնելը: Դա անելու համար ներբեռնեք որոնվածի աղբյուրի կոդը այստեղից և բացեք այն Arduino IDE- ի միջոցով: Դուք պետք է փոխարինեք [SSID] և [Գաղտնաբառ] ձեր WiFi ցանցի փաստացի SSID- ով և գաղտնաբառով: Sprintf ֆունկցիայի կանչում դուք նույնպես պետք է փոխարինեք [Client ID] և [Client Key] ՝ այն սերվերի PHP սցենարի վրա օգտագործածներով: Վերջապես, դուք պետք է փոխարինեք [Host] - ը տիրույթի անունով կամ սերվերի IP հասցեով: Եթե օգտագործում եք HTTPS, ապա ձեզ հարկավոր է նաև տրամադրել ձեր վկայագրի մատնահետքը ՝ որպես երկրորդ փաստարկ http.begin () գործառույթի կանչի վրա: Ես բացատրել եմ, թե ինչպես ստանալ վկայականի մատնահետքը նախորդ քայլի «Setting Up HTTPS» բաժնում:

Հաջորդը, եթե դեռ չեք հասցրել, ձեզ հարկավոր կլինի տեղադրել ESP8266 Community հիմնական փաթեթը ՝ օգտագործելով Arduino IDE- ի խորհրդի կառավարիչը: Երբ դա արվի, տախտակների ընտրացանկից ընտրեք NodeMCU 1.0 (ESP-12E մոդուլ): Հաջորդը, ձեզ հարկավոր է տեղադրել SimpleDHT գրադարանը ՝ օգտագործելով Գրադարանի կառավարիչը: Վերջապես, ձեր IDE պատուհանի վերին ձախ անկյունում սեղմեք «Ստուգել» կոճակը ՝ համոզվելու համար, որ ծածկագիրը կազմվում է առանց սխալների:

Եվ հիմա, վերջապես, ժամանակն է `որոնվածը միկրոկառավարիչի վրա այրել: Դա անելու համար JP1 թռիչքը տեղափոխեք աջ, այնպես որ ESP8266- ի GPIO0- ը միացված կլինի գետնին, ինչը հնարավորություն կտա ծրագրավորման ռեժիմը: Այնուհետև կցեք ձեր USB սերիական փոխարկիչին ՝ օգտագործելով jumper լարերը ծրագրավորման վերնագրին, որը պիտակավորված է որպես P1: Mingրագրավորման վերնագրի 1 -ին կապը հիմնավորված է, 2 -ը `ESP8266- ի ընդունման քորոցը և 3 -ը` հաղորդիչը: Ձեզ անհրաժեշտ է ESP8266- ի ստացումը `ձեր USB սերիալային փոխարկիչին փոխանցելու, ընդունիչին փոխանցելու համար և, իհարկե, գետնից գետնին:

Վերջապես, սարքը միացրեք 5 Վ լարման միջոցով ՝ օգտագործելով USB- ից DC միացման մալուխ և միացրեք USB- ը սերիական փոխարկիչին ձեր համակարգչին: Այժմ դուք պետք է կարողանաք տեսնել վիրտուալ սերիական նավահանգիստը, որտեղ միացված է ESP8266- ը, հենց որ բացեք գործիքների ընտրացանկը ձեր IDE- ում: Այժմ պարզապես սեղմեք Վերբեռնման կոճակը և վերջ: Եթե ամեն ինչ ընթանար այնպես, ինչպես սպասվում էր, դուք պետք է կարողանաք տեսնել սարքի LCD- ում ջերմաստիճանի և խոնավության ցուցանիշները: Այն բանից հետո, երբ ESP8266- ը միանա ձեր ցանցին և սկսի հաղորդակցվել սերվերի հետ, ընթացիկ ամսաթիվը և ժամը նույնպես պետք է հայտնվեն էկրանին:

Մի քանի ժամ անց, երբ սերվերը կհավաքի բավականին մեծ քանակությամբ տվյալներ, դուք պետք է կարողանաք տեսնել ջերմաստիճանի և խոնավության գծապատկերները ՝ այցելելով http (ներ) ՝ // [host] /index.php?client_id= [client id]:Որտեղ [հյուրընկալողը] կամ ձեր սերվերի IP հասցեն է կամ վեբ ինտերֆեյսի համար օգտագործվող ենթադոմեյնը, և [հաճախորդի id] սարքի հաճախորդի ID- ն, որը եթե այն թողնում եք իր կանխադրված արժեքին, ապա պետք է լինի 1:

Խորհուրդ ենք տալիս: