Агуулгын хүснэгт:

Хаалга ба температурын төлөв бүртгэгч төсөл: 21 алхам
Хаалга ба температурын төлөв бүртгэгч төсөл: 21 алхам

Видео: Хаалга ба температурын төлөв бүртгэгч төсөл: 21 алхам

Видео: Хаалга ба температурын төлөв бүртгэгч төсөл: 21 алхам
Видео: PS3 #2: Ressurecting the impossable! | EPIC rollercoaster repair that nearly broke me. 2024, Долдугаар сарын
Anonim
Хаалга ба температурын төлөв бүртгэгч төсөл
Хаалга ба температурын төлөв бүртгэгч төсөл

Энэхүү зааварчилгаа нь ESP8266 NodeMCU, DHT11 температур, чийгшлийн мэдрэгч, хаалга/цонхны зэгс унтраалга, 10К ом эсэргүүцэл, залгах утсыг ашиглан хаалганы болон температурын төлөв байдлын бүртгэлийг 10.00 доллараас бага үнээр хэрхэн хийхийг танд үзүүлэх болно.

Энэхүү төслийн гарал үүсэл нь Arduino самбар ашиглан гэрийн автоматжуулалтыг илүү их хийх хүслээс үүдэлтэй юм. Би Arduino -тэй нийцтэй EPS8266 NodeMCU -ийн талаар маш их уншиж байсан болохоор туршиж үзэхэд энэ самбар нь хямд өртөгтэй төгс самбар байх болно гэж би шийдсэн. ESP8266 хавтанг ашиглан гэрийн автоматжуулалтын төслүүдийг интернетээс хайсны дараа би анхны оролдлогоо хийхдээ температур ба хаалганы төлөв байдлын бүртгэлийг нэгтгэх ажлыг эхлүүлсэн. Эцэст нь энэ төслийг servo, чийг мэдрэгч болон бусад электрон төхөөрөмжүүдтэй хослуулан өвөөгийнхөө 50 жилийн өмнө зохион бүтээсэн жижигхэн ногоон байшинг автоматжуулах болно. Температур мэдрэгчийг ашиглан халаалтын системийг асаах, салгах шаардлагатай эсэхийг тодорхойлохын зэрэгцээ шаардлагатай үед агааржуулалтын системийг нээх, хаах тухай servo дохио өгөх болно. Соронзон зэгс унтраалга ашиглан агааржуулалтын системийн төлөв байдлыг хянах болно. Эцэст нь чийг мэдрэгчийг услах системийг автоматжуулахад ашиглах болно.

Алхам 1: Татгалзах

Энэхүү зааварчилгааг дагаж мөрдсөний үр дүнд ямар нэгэн зүйл тохиолдоход бид хариуцлага хүлээхгүй гэдгээ шууд мэдэгдэх болно. Аливаа зүйлийг бүтээхдээ үйлдвэрлэгчийн заавар, аюулгүй байдлын хуудсыг дагаж мөрдөх нь хамгийн сайн арга юм. Тиймээс өөрийн гараар бүтээхэд ашигладаг эд анги, багаж хэрэгслийн талаар эдгээр бичиг баримтаас лавлана уу. Бид зүгээр л өөрсдийнхөө алхамыг бий болгох үе шатуудын талаар мэдээлэл өгч байна. Бид мэргэжлийн хүмүүс биш. Үнэн хэрэгтээ энэхүү бүтээн байгуулалтад оролцсон 3 хүн тутмын 2 нь хүүхэд байна.

Алхам 2: IFTTT үнэгүй данс тохируулна уу

IFTTT үнэгүй данс тохируулах
IFTTT үнэгүй данс тохируулах

Хэрэв танд одоохондоо байхгүй байгаа бол IFTTT -ийн үнэгүй дансыг өөрийн нүүр хуудас руу орж тохируулах цаг болжээ. IFTTT нь If If That That гэсэн үг бөгөөд энэ нь интернетэд суурилсан үйлчилгээг шинэ аргаар холбох боломжийг олгодог үнэгүй платформ юм. эдгээр үйлчилгээг шинэ аргаар ашиглах боломжийг танд олгоно. Энэхүү төслийн хувьд бид ESP8266 -ийг Google Sheets -ийн баримт бичигт DHT11 мэдрэгч ашиглан зэгс шилжүүлэгчээр дамжуулан хаалганы төлөв, температур, чийгшлийг бүртгэх боломжийг олгохын тулд IFTTT -ийг ашиглах гэж байна.

Алхам 3: IFTTT апплет үүсгэх

IFTTT апплет үүсгэх
IFTTT апплет үүсгэх

IFTTT -д байхдаа "Миний апплетууд" хэсэгт очоод "Шинэ апплет" товчийг дарж шинэ апплет үүсгэнэ үү.

Алхам 4: Апплетынхаа "энэ" хэсгийг тохируулна уу

-Г тохируулна уу
-Г тохируулна уу

Дээрх зураг дээр онцолсон цэнхэр өнгийн "энэ" үгийг дарна уу.

Алхам 5: WebHooks үйлчилгээг апплет дээрээ нэмээрэй

WebHooks үйлчилгээг апплет дээрээ нэмээрэй
WebHooks үйлчилгээг апплет дээрээ нэмээрэй

Хайлтын талбарт "Webhooks" үйлчилгээг хайж олоод Webhooks дүрсийг сонгоно уу.

"Webhooks" үйлчилгээг олсны дараа үүн дээр дарна уу.

Алхам 6: Вэб хүсэлтийн хүлээн авагчийг тохируулна уу

Вэб хүсэлтийг хүлээн авах тохиргоог тохируулна уу
Вэб хүсэлтийг хүлээн авах тохиргоог тохируулна уу

"Вэб хүсэлтийг хүлээн авах" гохыг сонгоно уу.

Алхам 7: Үйл явдлын нэрийг оруулна уу

Үйл явдлын нэр өгөх
Үйл явдлын нэр өгөх

Текст хайрцагт шинэ апплетаа үйл явдлын нэрээр оруулна уу. Би "Өгөгдөл бүртгэгч" -ийг сонгосон боловч та дуртай зүйлээ сонгох боломжтой.

Алхам 8: Апплетынхаа "тэр" хэсгийг тохируулна уу

-Г тохируулна уу
-Г тохируулна уу

Дээрх зураг дээр тодруулсан шиг цэнхэр өнгөтэй "тэр" үгийг дарна уу.

Алхам 9: Үйлдлийн үйлчилгээг тохируулах

Үйлдлийн үйлчилгээг тохируулах
Үйлдлийн үйлчилгээг тохируулах

Хайлтын талбарт "Google Хүснэгт" үйлчилгээг хайж, Google Хүснэгтийн дүрс дээр дарна уу.

Алхам 10: Google Хүснэгтэд холбогдоно уу

Google Хүснэгтэд холбогдох
Google Хүснэгтэд холбогдох

Хэрэв та үүнийг хийгээгүй бол IFTTT дансаа Google Хүснэгтэд холбох шаардлагагүй болно. Дээр үзүүлсэн Connect товчийг дараад дэлгэц дээрх зааврыг дагана уу.

Алхам 11: Үйлдлийг сонгоно уу

Үйлдлийг сонгоно уу
Үйлдлийг сонгоно уу

"Хүснэгтэд мөр нэмэх" дээр дарна уу.

Алхам 12: Үйлдлийг тохируулна уу

Үйлдлийг тохируулах
Үйлдлийг тохируулах

"Хүснэгтийн нэр" текст талбарт нэр оруулна уу. Би тууштай байхын тулд "Data_Logger" -ийг ашиглахаар сонгосон. Үлдсэн тохиргоог ганцаараа үлдээгээрэй (та эдгээр тохиргоог өөр хугацаанд туршиж үзэх боломжтой), дараа нь дэлгэцийн доод хэсэгт байрлах "Үйлдэл үүсгэх" товчийг дарна уу.

Алхам 13: Апплетаа хянаж, эцэслэх

Апплетаа хянаж, эцэслэх
Апплетаа хянаж, эцэслэх

Апплетийн тохиргоонд сэтгэл хангалуун болсны дараа "Finish" товчийг дарна уу.

Алхам 14: Хожим шаардлагатай тохиргооны мэдээллийг авах

Хожим шаардлагатай тохиргооны мэдээллийг авах
Хожим шаардлагатай тохиргооны мэдээллийг авах

Дээр дурдсанчлан "Webhooks" дээр дарна уу.

Алхам 15: API түлхүүрийн Webhooks баримт бичиг рүү үргэлжлүүлнэ үү

API түлхүүрийн Webhooks баримт бичиг рүү очно уу
API түлхүүрийн Webhooks баримт бичиг рүү очно уу

Энэ нь хачирхалтай санагдаж магадгүй ч баруун дээд буланд байгаа Documentation линк дээр дарж өөрийн өвөрмөц API түлхүүр бүхий хуудас руу очно уу.

Алхам 16: API түлхүүрийг хадгална уу

API түлхүүрийг хадгална уу
API түлхүүрийг хадгална уу
API түлхүүрийг хадгална уу
API түлхүүрийг хадгална уу

Баримт бичгийн дэлгэцийн эхний мөрөнд таны өвөрмөц API түлхүүр гарч ирнэ. Дараа нь ашиглахын тулд энэ түлхүүрийг хуулж хадгална уу.

Апплетыг энд туршиж үзэх нь зүйтэй юм. {Event} -г Data_Logger болгон өөрчилж, үйл явдлынхаа нэрийг өөрчилж, 3 хоосон утганд зарим өгөгдлийг нэмж, хуудасны доод хэсэгт байрлах "Үүнийг турших" товчийг дарна уу. Та "Үйл явдал идэвхжсэн" гэсэн ногоон мессежийг харах ёстой. Хэрэв тийм бол Google Docs руу ороод туршилтын хуудсанд оруулсан өгөгдлүүд нь Google Хүснэгтийн баримт бичигт харагдсан болохыг баталгаажуулна уу.

Алхам 17: Бүрэлдэхүүн хэсгүүдийг цуглуулах

Бүрэлдэхүүн хэсгүүдийг цуглуулах
Бүрэлдэхүүн хэсгүүдийг цуглуулах
Бүрэлдэхүүн хэсгүүдийг цуглуулах
Бүрэлдэхүүн хэсгүүдийг цуглуулах
Бүрэлдэхүүн хэсгүүдийг цуглуулах
Бүрэлдэхүүн хэсгүүдийг цуглуулах

Танд хэдхэн хэсэг хэрэгтэй болно.

1) ESP8266 NodeMcu хөгжүүлэх зөвлөл

2) DHT11 температур/чийгшил мэдрэгч

3) Хаалга/Цонхны зэгс шилжүүлэгч

4) 10к Ом эсэргүүцэл

5) Холбох утас

Алхам 18: Бүрэлдэхүүн хэсгүүдийг угсрах

1) ESP8266 дээрх 3v3 зүүг DHT11 дээрх vcc зүүтэй холбоно уу.

2) ESP8266 дээрх газардуулгын нэгийг DHT11 дээрх газардуулгатай холбоно уу.

3) ESP8266 дээрх D4 зүү (IDE дээрх 2 -р зүү) -ийг DHT11 дээрх өгөгдлийн зүүтэй холбоно уу.

4) ESP8266 дээрх өөр 3v3 зүүг хаалга/цонхны зэгс шилжүүлэгчийн нэг талд холбоно уу.

5) ESP8266 дээрх D5 зүү (IDE -ийн 14 -р зүү) -ийг хаалга/цонхны зэгс шилжүүлэгчийн нөгөө талд холбож, 10к ом эсэргүүцлийн нэг талд холбоно.

6) 10 к ом эсэргүүцлийн нөгөө талыг ESP8266 дээрх өөр газардуулгатай холбоно уу.

ESP8266 зүү сонгохын тулд энэ хэрэгтэй диаграм эсвэл маш хэрэгтэй видеог үзнэ үү.

Алхам 19: Arduino кодыг бичнэ үү

Arduino кодыг бичнэ үү
Arduino кодыг бичнэ үү

Доорх кодыг хуулж Arduino IDE дээрээ оруулна уу.

#оруулах #оруулах #оруулах "DHT.h"

#тодорхойлох DHTPIN 2 // бид ямар дижитал зүүтэй холбогдсон байна

#DOORPIN 14 -ийг тодорхойлох // хаалганы унтраалга ямар дижитал зүү асаалттай байна.

#тодорхойлох DHTTYPE DHT11 // DHT 11

DHT dht (DHTPIN, DHTTYPE);

int тоо = 1;

const char* ssid = "some_ssid"; // үүнийг ssid const char* password = "some_password" ашиглахын тулд үүнийг өөрчил; // нууц үгээ ашиглахын тулд үүнийг өөрчил int intTimeTime = 100;

// Ид шидлэгч Webhooks IFTTT

const char* server = "maker.ifttt.com";

// IFTTT URL нөөц

const char* resource = "/trigger/SOME_SERVICE_NAME/with/key/SOME_API_KEY"; // Үйлчилгээний нэр болон api түлхүүрээ ашиглахаа мартуузай.

String doorStatus = "Хаалттай";

дэгдэмхий bool stateChanged = false;

// Хэрэв та хэдэн цаг унтдаг бол интервалыг цаг * 60 минут * 60 секунд * 1000 миллисекундээр тохируулна уу

const урт интервал = 1.0 * 60 * 60 * 1000; // 1 цаг гарын үсэг зураагүй урт өмнөхMillis = 0 - (2 * интервал);

хүчингүй тохиргоо () {

Цуваа.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 = "Хаалттай"; } өөр {Serial.println ("Хаалга нээлттэй!"); doorStatus = "Нээгдсэн"; }}

хүчингүй checkStatus () {

if (WiFi.status () == WL_CONNECTED) {// WiFi холболтын статусыг шалгана уу // Унших температур эсвэл чийгшил 250 миллисекунд зарцуулдаг! // Мэдрэгчийн уншилт нь 2 секундын настай байж болно (энэ нь маш удаан мэдрэгчтэй) float h = dht.readHumidity (); // Цельсийн температурыг уншина уу (анхдагч) float t = dht.readTemperature (); // Температурыг Fahrenheit (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 ("Температур:"); Цуваа.хэвлэх (f); 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 ("Чийгшил:"); Serial.println (h);

if (digitalRead (DOORPIN) == HIGH) // Хаалга нээлттэй байгаа эсэхийг шалгаарай

{Serial.println ("Хаалга хаалттай байна!"); doorStatus = "Хаалттай"; } өөр {Serial.println ("Хаалга нээлттэй байна!"); doorStatus = "Нээгдсэн"; } String jsonObject = String ("{" утга1 / ": \" ") + f +"*F (" + t +"*C) / " + hif +"*F (" + hic +"*C) " +" / ", \" утга2 / ": \" " + ч +" / ", \" утга3 / ": \" " + хаалганы байдал +" / "}"; HTTPClient http; String completeUrl = "https://maker.ifttt.com/trigger/bme280_readings/with/key/cZFasEvy5_3JlrUSVAxQK9"; http.begin (completeUrl); // http.begin (сервер); http.addHeader ("Агуулгын төрөл", "application/json"); http. POST (jsonObject); http.writeToStream (& Цуваа); http.end (); // Холболтыг хаах

stateChanged = худал;

int sleepTimeInMinutes = интервал / 1000/60; Serial.print ("\ n / n Унтахаар явах"); Цуваа.хэвлэх (sleepTimeInMinutes); Serial.println ("минут (ууд) …"); }}

void loop () {

тэмдэггүй урт гүйдэлMillis = millis (); саатал (4000); // Хэрэв бид өнгөрсөн хугацааг давсан бол хаалга, температурыг заавал шалгаарай. if (currentMillis - previousMillis> = интервал) {stateChanged = true; өмнөхMillis = одоогийнMillis; Цуваа.хэвлэх (тоолох ++); Serial.println (") Цаг хугацаа өнгөрсөн тул шалгаж байна!"); } else if (stateChanged) {Serial.print (count ++); Serial.println (") Төлөв өөрчлөгдсөн тул шалгаж байна!"); }

// Хэрэв байдал өөрчлөгдсөн бол хаалга, температурыг шалгана уу.

if (stateChanged) {checkStatus (); }

саатал (унтах цаг);

}

Алхам 20: Үр дүн

Үр дүн
Үр дүн

Өмнөх алхамд эх кодыг байршуулсны дараа дээр үзүүлсэн жишээ шиг үр дүн гарах ёстой.

Алхам 21: Зээл

Би Random Nerd хичээлүүдээс маш олон хэрэгтэй зөвлөмж, зөвлөгөөг олж авсан бөгөөд тэдэнд тусалсанд баярлалаа гэж хэлмээр байна. Ялангуяа ESP32 ESP8266 -ийн маш сайн зааварчилгаа нь энэхүү зааварчилгааны ихэнх хэсгийг үндэслэсэн Google Хүснэгтэд мэдрэгчийн уншилтыг нийтлэх болно.

Нэмж дурдахад TheCircuit -ийн DHT11 зааварчилгаа нь энэхүү маш хямд боловч сонирхолтой бяцхан мэдрэгчийг хэрхэн ашиглахаа ойлгоход тусалсан юм.

Цаашилбал, гаражийн хаалганы дэлгэц, Random Nerd хичээлийн өөр нэг хаалга зэргийг хянах олон хичээлүүд байдаг. Би зэгсээ хэрхэн зөв ажиллуулахаа ойлгоход туслахын тулд эдгээр хэсгүүдийг ашигласан.

Эцэст нь, энэ мэдээлэл болон интернетээс олж авсан бусад нарийн ширийн зүйлийг ашиглан би өөрийн хэрэгцээнд нийцсэн системийг бий болгож чадсан юм. Энэхүү зааварчилгаа нь танд хэрэгтэй гэж үзэж, өөрийн гараар бүтээсэн гэж найдаж байна.

Зөвлөмж болгож буй: