Სარჩევი:
- ნაბიჯი 1: პასუხისმგებლობის უარყოფა
- ნაბიჯი 2: შექმენით უფასო IFTTT ანგარიში
- ნაბიჯი 3: შექმენით IFTTT აპლეტი
- ნაბიჯი 4: დააინსტალირეთ თქვენი აპლეტის "ეს" ნაწილი
- ნაბიჯი 5: დაამატეთ WebHooks სერვისი თქვენს აპლეტს
- ნაბიჯი 6: დააყენეთ მიღება ვებ მოთხოვნის გამომწვევი
- ნაბიჯი 7: მიუთითეთ ღონისძიების სახელი
- ნაბიჯი 8: დააინსტალირეთ თქვენი აპლეტის ნაწილი "ის"
- ნაბიჯი 9: შექმენით სამოქმედო სერვისი
- ნაბიჯი 10: დაუკავშირდით Google Sheets- ს
- ნაბიჯი 11: შეარჩიეთ მოქმედება
- ნაბიჯი 12: დააყენეთ მოქმედება
- ნაბიჯი 13: გადახედეთ და დაასრულეთ თქვენი აპლეტი
- ნაბიჯი 14: მიიღეთ საჭირო კონფიგურაციის ინფორმაცია
- ნაბიჯი 15: გადადით Webhooks დოკუმენტაციაზე API გასაღებისთვის
- ნაბიჯი 16: შეინახეთ API გასაღები
- ნაბიჯი 17: შეაგროვეთ კომპონენტები
- ნაბიჯი 18: შეაგროვეთ კომპონენტები
- ნაბიჯი 19: ჩაწერეთ არდუინოს კოდი
- ნაბიჯი 20: შედეგები
- ნაბიჯი 21: კრედიტები
ვიდეო: კარისა და ტემპერატურის სტატუსის ჟურნალის პროექტი: 21 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ეს ინსტრუქცია გაჩვენებთ თუ როგორ უნდა გააკეთოთ მარტივი კარი და ტემპერატურის სტატუსი 10,00 დოლარად ESP8266 NodeMCU– ს, DHT11 ტემპერატურისა და ტენიანობის სენსორის, კარის/ფანჯრის ლერწმის გადამრთველის, 10K ohm რეზისტორისა და რამდენიმე მავთულის გამოყენებით.
ამ პროექტის გენეზისი წარმოიშვა Arduino დაფაზე მეტი სახლის ავტომატიზაციის სურვილიდან, რადგან ბევრს ვკითხულობდი Arduino– ს თავსებადი EPS8266 NodeMCU– ს შესახებ და გადავწყვიტე, რომ ეს დაფა იქნებოდა იდეალური დაბალფასიანი დაფა ექსპერიმენტების ჩასატარებლად. ESP8266 დაფების გამოყენებით სახლის ავტომატიზაციის პროექტების ინტერნეტში ძიების შემდეგ, მე გადავწყვიტე ტემპერატურისა და კარის სტატუსის მრიცხველის გაერთიანება ჩემი პირველი მცდელობისთვის. საბოლოოდ ეს პროექტი გაერთიანდება სერვოსთან, ტენიანობის სენსორებთან და სხვა ელექტრონიკასთან, რომ მოხდეს ბაბუაჩემის მიერ 50 წლის წინ შექმნილი და აშენებული პატარა მწვანე სახლის ავტომატიზაცია. ტემპერატურის სენსორი გამოყენებული იქნება იმის დასადგენად, უნდა იყოს ჩართული თუ არა გათბობის სისტემა, ასევე სიგნალი სერვოებს, რომ საჭიროების შემთხვევაში გახსნან და დახურონ სავენტილაციო სისტემა. ვენტილაციის სისტემის მდგომარეობა მონიტორინგდება მაგნიტური ლერწმის ამომრთველების გამოყენებით. დაბოლოს, ტენიანობის სენსორები გამოყენებული იქნება სარწყავი სისტემის ავტომატიზაციისთვის.
ნაბიჯი 1: პასუხისმგებლობის უარყოფა
უბრალოდ უარი თქვით იმაზე, რომ ჩვენ არ ვიღებთ პასუხისმგებლობას არაფერზე, რაც ხდება ამ ინსტრუქციის შესრულების შედეგად. ყოველთვის ჯობია დაიცვას მწარმოებლის მითითებები და უსაფრთხოების ფურცლები, როდესაც რამეს აშენებთ, ასე რომ გთხოვთ გაეცნოთ ამ დოკუმენტებს ნებისმიერი იმ ნაწილისა და ინსტრუმენტისთვის, რომელსაც იყენებთ საკუთარი ხელების შესაქმნელად. ჩვენ უბრალოდ ვაწვდით ინფორმაციას იმ ნაბიჯების შესახებ, რაც ჩვენ შევადგინეთ. ჩვენ არ ვართ პროფესიონალები. ფაქტობრივად, ამ მშენებლობაში მონაწილე 3 ადამიანიდან 2 არის ბავშვი.
ნაბიჯი 2: შექმენით უფასო IFTTT ანგარიში
თუ ჯერ არ გაქვთ, ახლა დროა შექმნათ უფასო IFTTT ანგარიში მათ მთავარ გვერდზე გადასვლით. საშუალებას მოგცემთ გამოიყენოთ ეს სერვისები ახალი გზებით. ამ პროექტისთვის ჩვენ ვაპირებთ გამოვიყენოთ IFTTT, რათა ESP8266- მა დაარეგისტრიროს კარის სტატუსი ლერწმის გადამრთველის საშუალებით და ტემპერატურა და ტენიანობა DHT11 სენსორის საშუალებით Google Sheets- ის დოკუმენტში.
ნაბიჯი 3: შექმენით IFTTT აპლეტი
სანამ ჯერ კიდევ IFTTT- ში ხართ, გადადით "ჩემი აპლეტები" განყოფილებაზე და შექმენით ახალი აპლეტი "ახალი აპლეტის" ღილაკზე დაჭერით.
ნაბიჯი 4: დააინსტალირეთ თქვენი აპლეტის "ეს" ნაწილი
დააწკაპუნეთ "ეს" სიტყვაზე, რომელიც არის ლურჯ ფერში - როგორც ეს მონიშნულია ზემოთ მოცემულ ფიგურაში.
ნაბიჯი 5: დაამატეთ WebHooks სერვისი თქვენს აპლეტს
საძიებო ზოლში მოძებნეთ "Webhooks" სერვისი და შეარჩიეთ Webhooks ხატი.
მას შემდეგ რაც იპოვით "Webhooks" სერვისს, დააწკაპუნეთ მასზე.
ნაბიჯი 6: დააყენეთ მიღება ვებ მოთხოვნის გამომწვევი
აირჩიეთ "მიიღეთ ვებ მოთხოვნის" გამომწვევი.
ნაბიჯი 7: მიუთითეთ ღონისძიების სახელი
ტექსტურ ყუთში მიუთითეთ თქვენი ახალი აპლეტი მოვლენის სახელით. მე ავირჩიე "მონაცემთა შემქმნელი", მაგრამ თქვენ შეგიძლიათ აირჩიოთ რაც მოგწონთ.
ნაბიჯი 8: დააინსტალირეთ თქვენი აპლეტის ნაწილი "ის"
დააწკაპუნეთ "ეს" სიტყვაზე, რომელიც არის ლურჯ ფერში - როგორც ეს მონიშნულია ზემოთ მოცემულ ფიგურაში.
ნაბიჯი 9: შექმენით სამოქმედო სერვისი
საძიებო ველში მოძებნეთ "Google Sheets" სერვისი და დააწკაპუნეთ Google Sheets ხატულაზე.
ნაბიჯი 10: დაუკავშირდით Google Sheets- ს
თუ ეს ჯერ არ გაკეთებულა, თქვენ უნდა დაუკავშიროთ თქვენი IFTTT ანგარიში Google Sheets– ს. დააჭირეთ ღილაკს დაკავშირება ზემოთ ნაჩვენები და მიჰყევით ეკრანზე მითითებებს.
ნაბიჯი 11: შეარჩიეთ მოქმედება
დააწკაპუნეთ "დაამატე სტრიქონი ცხრილში".
ნაბიჯი 12: დააყენეთ მოქმედება
მიუთითეთ სახელი "ცხრილების სახელი" ტექსტურ ყუთში. მე ვირჩევ გამოვიყენო "Data_Logger" თანმიმდევრულობისთვის. დანარჩენი პარამეტრი დატოვეთ მარტო (თქვენ შეგიძლიათ ექსპერიმენტი ჩაატაროთ სხვა დროს) და შემდეგ დააჭირეთ ღილაკს "შექმენით მოქმედება" ეკრანის ბოლოში.
ნაბიჯი 13: გადახედეთ და დაასრულეთ თქვენი აპლეტი
მას შემდეგ რაც კმაყოფილი დარჩებით თქვენი აპლეტის კონფიგურაციით დააჭირეთ ღილაკს "დასრულება".
ნაბიჯი 14: მიიღეთ საჭირო კონფიგურაციის ინფორმაცია
დააწკაპუნეთ "Webhooks" - ზე, როგორც ზემოთ მონიშნულია.
ნაბიჯი 15: გადადით Webhooks დოკუმენტაციაზე API გასაღებისთვის
შეიძლება უცნაურად მოგეჩვენოთ, მაგრამ დააწკაპუნეთ დოკუმენტაციის ბმულზე ზედა მარჯვენა კუთხეში, რომ განაგრძოთ გვერდზე თქვენი უნიკალური API გასაღები.
ნაბიჯი 16: შეინახეთ 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 დამეხმარა იმის გაგებაში, თუ როგორ გამოვიყენო ეს ძალიან იაფი, მაგრამ საინტერესო პატარა სენსორი.
გარდა ამისა, არსებობს მრავალი გაკვეთილი, რომელიც ეხება თქვენი კარების მონიტორინგს, როგორიცაა გარაჟის კარის მონიტორი და კიდევ ერთი შემთხვევითი ნერვების გაკვეთილებიდან. მე გამოვიყენე მათი ნაწილები, რათა დამეხმარა იმის გაგებაში, თუ როგორ უნდა დამემუშავებინა ჩემი ლერწმის გადამრთველი სწორად.
დაბოლოს, ამ ინფორმაციისა და სხვა დეტალების საშუალებით, რაც ინტერნეტში აღმოვაჩინე, შევძელი შევქმნა სისტემა, რომელიც აკმაყოფილებდა ჩემს საჭიროებებს. ვიმედოვნებ, რომ ეს ინსტრუქცია თქვენთვის სასარგებლოა და შექმენით თქვენი საკუთარი.
გირჩევთ:
ESP8266 - კარისა და ფანჯრის სენსორები - ESP8266. ხანდაზმულთა დახმარება (დავიწყება): 5 ნაბიჯი
ESP8266 - კარისა და ფანჯრის სენსორები - ESP8266. ხანდაზმულთა დახმარება (დავიწყება): ESP8266 - კარის / ფანჯრის სენსორები GPIO 0 და GPIO 2 (IOT) გამოყენებით. მისი ნახვა შესაძლებელია ინტერნეტში ან ადგილობრივ ქსელში ბრაუზერებით. ასევე ჩანს " HelpIdoso Vxapp " განაცხადი იყენებს 110/220 VAC მიწოდებას 5Vdc, 1 სარელეო / ძაბვის
კაიენის ავტომატური სინათლის კარისა და ქვაბის გადამრთველი: 7 ნაბიჯი (სურათებით)
Cayenne Automatic Light Door and Kettle Switch: როდესაც სახლში ვბრუნდები, მე ვასხამ ჭიქას ჩაის და როცა სახლში მივდივარ, მე ვერ ვხედავ ჩემი კარის გასაღებს, რადგან შუქი არ არის. მე ნამდვილად ვარ გადაწყვეტილი სიტუაციის გამოსასწორებლად! :-) მე გამოვიყენებ Raspberry Pi Zero- ს, ინტერნეტთან დაკავშირებულს და
10 ძირითადი არდუინოს პროექტი დამწყებთათვის! გააკეთეთ მინიმუმ 15 პროექტი ერთი დაფით!: 6 ნაბიჯი
10 ძირითადი არდუინოს პროექტი დამწყებთათვის! გააკეთეთ მინიმუმ 15 პროექტი ერთი დაფით!: Arduino პროექტი & სამეურვეო საბჭო; მოიცავს Arduino– ს 10 ძირითად პროექტს. ყველა კოდის კოდი, გერბერის ფაილი და სხვა. SMD არ არის! მარტივი შედუღება ყველასთვის. ადვილად მოსახსნელი და შესაცვლელი კომპონენტები. თქვენ შეგიძლიათ გააკეთოთ მინიმუმ 15 პროექტი ერთი პროგრამით
მბზინავი LED სოკოს ჟურნალის ნათურა: 8 ნაბიჯი (სურათებით)
მბზინავი LED სოკოს შესანახი ნათურა: ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ ბლუთუზით კონტროლირებადი, ფერის ცვალებადი, სოკოს LED ნათურა! მე რამდენჯერმე ვცადე ბიოლუმინესცენციური სოკოს გაზრდა და მიუხედავად იმისა, რომ მე მქონდა წარმატება, ისინი არ იყვნენ დიდი აყვავებული სოკო მქონდა
USB დამწვრობა! ეს პროექტი შეიძლება დაიწვას პლასტმასის / ხის / ქაღალდის საშუალებით (სახალისო პროექტი ასევე უნდა იყოს ძალიან წვრილი ხე): 3 ნაბიჯი
USB დამწვრობა! ეს პროექტი შეიძლება დაიწვას პლასტმასის / ხის / ქაღალდის საშუალებით (სახალისო პროექტი ასევე უნდა იყოს ძალიან წვრილი ხე): არ გააკეთოთ ეს USB– ის გამოყენებით !!!! აღმოვაჩინე, რომ მას შეუძლია დააზიანოს თქვენი კომპიუტერი ყველა კომენტარიდან. ჩემი კომპიუტერი კარგადაა გამოიყენეთ 600ma 5v ტელეფონის დამტენი. მე გამოვიყენე ეს და ის მშვენივრად მუშაობს და არაფერი შეიძლება დაზიანდეს, თუ თქვენ იყენებთ უსაფრთხოების შტეფსელს ელექტროენერგიის შესაჩერებლად