Სარჩევი:

კარისა და ტემპერატურის სტატუსის ჟურნალის პროექტი: 21 ნაბიჯი
კარისა და ტემპერატურის სტატუსის ჟურნალის პროექტი: 21 ნაბიჯი

ვიდეო: კარისა და ტემპერატურის სტატუსის ჟურნალის პროექტი: 21 ნაბიჯი

ვიდეო: კარისა და ტემპერატურის სტატუსის ჟურნალის პროექტი: 21 ნაბიჯი
ვიდეო: ჯენიფერ გეიზი - "უკიდურესი სიმაღლე" - აუდიო წიგნი 2024, ივლისი
Anonim
კარისა და ტემპერატურის სტატუსის მრიცხველის პროექტი
კარისა და ტემპერატურის სტატუსის მრიცხველის პროექტი

ეს ინსტრუქცია გაჩვენებთ თუ როგორ უნდა გააკეთოთ მარტივი კარი და ტემპერატურის სტატუსი 10,00 დოლარად ESP8266 NodeMCU– ს, DHT11 ტემპერატურისა და ტენიანობის სენსორის, კარის/ფანჯრის ლერწმის გადამრთველის, 10K ohm რეზისტორისა და რამდენიმე მავთულის გამოყენებით.

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

ნაბიჯი 1: პასუხისმგებლობის უარყოფა

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

ნაბიჯი 2: შექმენით უფასო IFTTT ანგარიში

დააყენეთ უფასო IFTTT ანგარიში
დააყენეთ უფასო IFTTT ანგარიში

თუ ჯერ არ გაქვთ, ახლა დროა შექმნათ უფასო IFTTT ანგარიში მათ მთავარ გვერდზე გადასვლით. საშუალებას მოგცემთ გამოიყენოთ ეს სერვისები ახალი გზებით. ამ პროექტისთვის ჩვენ ვაპირებთ გამოვიყენოთ IFTTT, რათა ESP8266- მა დაარეგისტრიროს კარის სტატუსი ლერწმის გადამრთველის საშუალებით და ტემპერატურა და ტენიანობა DHT11 სენსორის საშუალებით Google Sheets- ის დოკუმენტში.

ნაბიჯი 3: შექმენით IFTTT აპლეტი

შექმენით IFTTT აპლეტი
შექმენით IFTTT აპლეტი

სანამ ჯერ კიდევ IFTTT- ში ხართ, გადადით "ჩემი აპლეტები" განყოფილებაზე და შექმენით ახალი აპლეტი "ახალი აპლეტის" ღილაკზე დაჭერით.

ნაბიჯი 4: დააინსტალირეთ თქვენი აპლეტის "ეს" ნაწილი

კონფიგურაცია
კონფიგურაცია

დააწკაპუნეთ "ეს" სიტყვაზე, რომელიც არის ლურჯ ფერში - როგორც ეს მონიშნულია ზემოთ მოცემულ ფიგურაში.

ნაბიჯი 5: დაამატეთ WebHooks სერვისი თქვენს აპლეტს

დაამატეთ WebHooks სერვისი თქვენს აპლეტს
დაამატეთ WebHooks სერვისი თქვენს აპლეტს

საძიებო ზოლში მოძებნეთ "Webhooks" სერვისი და შეარჩიეთ Webhooks ხატი.

მას შემდეგ რაც იპოვით "Webhooks" სერვისს, დააწკაპუნეთ მასზე.

ნაბიჯი 6: დააყენეთ მიღება ვებ მოთხოვნის გამომწვევი

დააყენეთ მიღება ვებ მოთხოვნის გამომწვევი
დააყენეთ მიღება ვებ მოთხოვნის გამომწვევი

აირჩიეთ "მიიღეთ ვებ მოთხოვნის" გამომწვევი.

ნაბიჯი 7: მიუთითეთ ღონისძიების სახელი

მიუთითეთ ღონისძიების სახელი
მიუთითეთ ღონისძიების სახელი

ტექსტურ ყუთში მიუთითეთ თქვენი ახალი აპლეტი მოვლენის სახელით. მე ავირჩიე "მონაცემთა შემქმნელი", მაგრამ თქვენ შეგიძლიათ აირჩიოთ რაც მოგწონთ.

ნაბიჯი 8: დააინსტალირეთ თქვენი აპლეტის ნაწილი "ის"

კონფიგურაცია
კონფიგურაცია

დააწკაპუნეთ "ეს" სიტყვაზე, რომელიც არის ლურჯ ფერში - როგორც ეს მონიშნულია ზემოთ მოცემულ ფიგურაში.

ნაბიჯი 9: შექმენით სამოქმედო სერვისი

დააყენეთ სამოქმედო სერვისი
დააყენეთ სამოქმედო სერვისი

საძიებო ველში მოძებნეთ "Google Sheets" სერვისი და დააწკაპუნეთ Google Sheets ხატულაზე.

ნაბიჯი 10: დაუკავშირდით Google Sheets- ს

დაუკავშირდით Google Sheets- ს
დაუკავშირდით Google Sheets- ს

თუ ეს ჯერ არ გაკეთებულა, თქვენ უნდა დაუკავშიროთ თქვენი IFTTT ანგარიში Google Sheets– ს. დააჭირეთ ღილაკს დაკავშირება ზემოთ ნაჩვენები და მიჰყევით ეკრანზე მითითებებს.

ნაბიჯი 11: შეარჩიეთ მოქმედება

აირჩიეთ მოქმედება
აირჩიეთ მოქმედება

დააწკაპუნეთ "დაამატე სტრიქონი ცხრილში".

ნაბიჯი 12: დააყენეთ მოქმედება

დააყენეთ მოქმედება
დააყენეთ მოქმედება

მიუთითეთ სახელი "ცხრილების სახელი" ტექსტურ ყუთში. მე ვირჩევ გამოვიყენო "Data_Logger" თანმიმდევრულობისთვის. დანარჩენი პარამეტრი დატოვეთ მარტო (თქვენ შეგიძლიათ ექსპერიმენტი ჩაატაროთ სხვა დროს) და შემდეგ დააჭირეთ ღილაკს "შექმენით მოქმედება" ეკრანის ბოლოში.

ნაბიჯი 13: გადახედეთ და დაასრულეთ თქვენი აპლეტი

გადახედეთ და დაასრულეთ თქვენი აპლეტი
გადახედეთ და დაასრულეთ თქვენი აპლეტი

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

ნაბიჯი 14: მიიღეთ საჭირო კონფიგურაციის ინფორმაცია

მიიღეთ საჭირო კონფიგურაციის ინფორმაცია მოგვიანებით
მიიღეთ საჭირო კონფიგურაციის ინფორმაცია მოგვიანებით

დააწკაპუნეთ "Webhooks" - ზე, როგორც ზემოთ მონიშნულია.

ნაბიჯი 15: გადადით Webhooks დოკუმენტაციაზე API გასაღებისთვის

გააგრძელეთ Webhooks დოკუმენტაცია API გასაღებისთვის
გააგრძელეთ Webhooks დოკუმენტაცია API გასაღებისთვის

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

ნაბიჯი 16: შეინახეთ API გასაღები

შეინახეთ API გასაღები
შეინახეთ API გასაღები
შეინახეთ API გასაღები
შეინახეთ API გასაღები

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

ასევე კარგი იდეაა აქ აპლეტის გამოცდა. გახსოვდეთ, რომ შეცვალეთ {ღონისძიება} Data_Logger ან რასაც თქვენ დაარქმევთ თქვენს მოვლენას და დაამატებთ მონაცემებს 3 ცარიელ მნიშვნელობას, შემდეგ დააწკაპუნეთ ღილაკზე "ტესტირება" გვერდის ბოლოში. თქვენ უნდა ნახოთ მწვანე შეტყობინება, რომელშიც ნათქვამია "მოვლენა დაიწყო". თუ ასეა, გადადით Google Docs– ზე და დაადასტურეთ, რომ სატესტო გვერდზე შეყვანილი მონაცემები გამოჩნდა Google Sheets– ის დოკუმენტში.

ნაბიჯი 17: შეაგროვეთ კომპონენტები

შეაგროვეთ კომპონენტები
შეაგროვეთ კომპონენტები
შეაგროვეთ კომპონენტები
შეაგროვეთ კომპონენტები
შეაგროვეთ კომპონენტები
შეაგროვეთ კომპონენტები

თქვენ დაგჭირდებათ მხოლოდ რამდენიმე ნაწილი.

1) ESP8266 NodeMcu განვითარების დაფა

2) DHT11 ტემპერატურის/ტენიანობის სენსორი

3) კარის/ფანჯრის ლერწმის გადამრთველი

4) 10k Ohm რეზისტორი

5) შემაერთებელი მავთული

ნაბიჯი 18: შეაგროვეთ კომპონენტები

1) შეაერთეთ ერთი 3v3 პინი ESP8266– ზე vcc პინი DHT11– ზე.

2) შეაერთეთ ESP8266– ის ერთ – ერთი დამჭერი მიმაგრება DHT11– ის მიწასთან.

3) შეაერთეთ pin D4 (a.k.a. pin 2 IDE- ში) ESP8266– ზე მონაცემთა პინთან DHT11– ზე.

4) შეაერთეთ სხვა 3v3 პინი ESP8266– ზე კარის/ფანჯრის ლერწმის გადამრთველის ერთ მხარეს.

5) შეაერთეთ pin D5 (a.k.a. pin 14 in IDE) ESP8266 კარის/ფანჯრის ლერწმის გადამრთველის მეორე მხარეს და ასევე დააკავშირეთ იგი 10k ohm რეზისტორის ერთ მხარეს.

6) შეაერთეთ 10k ohm რეზისტორის მეორე მხარე ESP8266- ის სხვა დასაყენებელ პინთან.

ESP8266 პინების არჩევისთვის მიმართეთ ამ სასარგებლო დიაგრამას ან ძალიან სასარგებლო ვიდეოს.

ნაბიჯი 19: ჩაწერეთ არდუინოს კოდი

ჩაწერეთ არდუინოს კოდი
ჩაწერეთ არდუინოს კოდი

დააკოპირეთ და ჩასვით ქვემოთ კოდი თქვენს Arduino IDE- ში.

#მოიცავს #მოიცავს #მოიცავს #DHT.h"

#განსაზღვრეთ DHTPIN 2 // რომელ ციფრულ პინთან ვართ დაკავშირებული

#define DOORPIN 14 // რა ციფრულ პინზეა კარის გადამრთველი.

#განსაზღვრეთ DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int რაოდენობა = 1;

const char* ssid = "some_ssid"; // შეცვალეთ ეს თქვენი ssid const char* პაროლისთვის = "some_password"; // შეცვალეთ თქვენი პაროლი int sleepTime = 100;

// Maker Webhooks IFTTT

const char* სერვერი = "maker.ifttt.com";

// IFTTT URL რესურსი

const char* რესურსი = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // დარწმუნდით, რომ გამოიყენოთ თქვენი სამსახურის სახელი და თქვენი api გასაღები.

სიმებიანი კარიStatus = "დახურულია";

არასტაბილური bool stateChanged = false;

// თუ საათობით სძინავთ, დააყენეთ ინტერვალი სთ * 60 წუთი * 60 წამი * 1000 მილიწამი

const ხანგრძლივი ინტერვალი = 1.0 * 60 * 60 * 1000; // 1 საათი ხელმოუწერელი გრძელი წინამილის = 0 - (2 * ინტერვალი);

void setup () {

Serial.begin (115200); attachInterrupt (digitalPinToInterrupt (DOORPIN), eventTriggered, CHANGE); pinMode (DOORPIN, INPUT); // კარის სენსორი dht.begin (); WiFi.begin (ssid, პაროლი);

Serial.print ("\ n დაკავშირება..");

while (WiFi.status ()! = WL_CONNECTED) {დაგვიანებით (1000); Serial.print ("."); } Serial.print ("\ n"); }

void eventTriggered () {

stateChanged = ჭეშმარიტი; Serial.println ("კარის შემოწმება!"); if (digitalRead (DOORPIN) == HIGH) // შეამოწმეთ კარი ღიაა თუ არა {Serial.println ("კარი დაკეტილია!"); doorStatus = "დახურულია"; } else {Serial.println ("კარი ღიაა!"); doorStatus = "გაიხსნა"; }}

void checkStatus () {

თუ (WiFi.status () == WL_CONNECTED) {// შეამოწმეთ WiFi კავშირის სტატუსი // კითხვის ტემპერატურა ან ტენიანობა დაახლოებით 250 მილიწამს იღებს! // სენსორული მაჩვენებლები ასევე შეიძლება იყოს 2 წამამდე "ძველი" (ეს არის ძალიან ნელი სენსორი) float h = dht.readHumidity (); // წაიკითხეთ ტემპერატურა ცელსიუსით (ნაგულისხმევი) float t = dht.readTemperature (); // წაიკითხეთ ტემპერატურა ფარენჰეიტზე (isFahrenheit = true) float f = dht.readTemperature (true); // შეამოწმეთ თუ წაკითხული ვერ მოხერხდა და გამოდით ადრე (ხელახლა ცდა). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println ("DHT სენსორიდან წაკითხვა ვერ მოხერხდა!"); // სერიული. ბეჭდვა ("."); // DHT სენსორიდან წაკითხვა ვერ მოხერხდა! დაბრუნების; } // გამოთვალეთ სითბოს ინდექსი ფარენჰეიტში (ნაგულისხმევი) float hif = dht.computeHeatIndex (f, h); // გამოთვალეთ სითბოს ინდექსი ცელსიუსში (isFahreheit = false) float hic = dht.computeHeatIndex (t, h, false);

Serial.print ("\ n");

Serial.print ("ტემპერატურა:"); სერიული. ბეჭდვა (ვ); Serial.print (" *F ("); Serial.print (t); Serial.print (" *C)"); Serial.print ("\ t"); Serial.print ("სითბოს ინდექსი:"); სერიული. ბეჭდვა (hif); Serial.print (" *F ("); Serial.print (hic); Serial.print (" *C)%"); Serial.print ("\ t"); Serial.print ("ტენიანობა:"); სერიული. ბეჭდვა (თ);

if (digitalRead (DOORPIN) == HIGH) // შეამოწმეთ კარი ღიაა თუ არა

{Serial.println ("კარი დაკეტილია!"); doorStatus = "დახურულია"; } else {Serial.println ("კარი ღიაა!"); doorStatus = "გაიხსნა"; } String jsonObject = სიმებიანი ("{" მნიშვნელობა 1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" მნიშვნელობა 2 / ": \" " + თ +" / ", \" მნიშვნელობა 3 / ": \" " + კარი სტატუსი +" / "}"; HTTPClient http; სიმებიანი სრულიUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (სრულიUrl); // http.begin (სერვერი); http.addHeader ("შინაარსის ტიპი", "აპლიკაცია/json"); http. POST (jsonObject); http.writeToStream (და სერიული); http.end (); // კავშირის დახურვა

stateChanged = ყალბი;

int sleepTimeInMinutes = ინტერვალი / 1000/60; Serial.print ("\ n / n წადი დაიძინე"); Serial.print (sleepTimeInMinutes); Serial.println ("წუთი (ები) …"); }}

ბათილი მარყუჟი () {

ხელმოუწერელი გრძელი მიმდინარემილის = მილილი (); დაგვიანება (4000); // თუ ჩვენ გადააჭარბეთ გასულ დროს მაშინ აიძულეთ შემოწმება კარი და ტემპერატურა. if (currentMillis - previousMillis> = ინტერვალი) {stateChanged = true; previousMillis = მიმდინარე მილი; Serial.print (რაოდენობა ++); Serial.println (") შემოწმება გასული დროის გამო!"); } else if (stateChanged) {Serial.print (რაოდენობა ++); Serial.println (") შემოწმება მდგომარეობის გამო!"); }

// თუ მდგომარეობა შეიცვალა, შეამოწმეთ კარი და ტემპერატურა.

if (stateChanged) {checkStatus (); }

შეფერხება (ძილის დრო);

}

ნაბიჯი 20: შედეგები

შედეგები
შედეგები

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

ნაბიჯი 21: კრედიტები

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

გარდა ამისა, TheCircuit– ის DHT11 Instructable დამეხმარა იმის გაგებაში, თუ როგორ გამოვიყენო ეს ძალიან იაფი, მაგრამ საინტერესო პატარა სენსორი.

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

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

გირჩევთ: