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

WiFi температур бүртгэгч (ESP8266 -тай): 11 алхам (зурагтай)
WiFi температур бүртгэгч (ESP8266 -тай): 11 алхам (зурагтай)

Видео: WiFi температур бүртгэгч (ESP8266 -тай): 11 алхам (зурагтай)

Видео: WiFi температур бүртгэгч (ESP8266 -тай): 11 алхам (зурагтай)
Видео: 🍅 Что происходит с помидорами на жаре 🌱 Выращивание томатов в жару в открытом грунте 2024, Долдугаар сарын
Anonim
Image
Image
Материал
Материал

Сайн байна уу, энд уулзаж байгаадаа баяртай байна. Энэхүү зааварчилгаанд та хэрэгтэй мэдээлэл олж авна гэж найдаж байна. Надад санал хүсэлт, асуулт, саналаа чөлөөтэй илгээгээрэй … Энд зарим үндсэн өгөгдөл, төслийн хурдан тоймыг энд оруулав. Гар утасны хэрэглэгчдийн хувьд: Видео. Төслийн талаар сэтгэгдлээ хуваалцах хэсэгт юу гэж бодож байгаагаа надад хэлээрэй, баярлалаа. Би саяхан туршиж үзэх гэж NodeMcu (esp8266 дээр суурилсан) самбар худалдаж авсан тул энэ нь үнэхээр дэвшилтэт төсөл биш юм. Гэхдээ энэ нь ажилладаг бөгөөд энэ нь надад хэрэгтэй байгаа тул энэ өгөгдөл бүртгэгчийн гол үүрэг бол температурыг цуглуулж сервер дээр хадгалах явдал юм. Энэ нь хэрэглэгчид бүртгэгчийн байршилд ороогүй байсан ч (жишээ нь цаг агаарын станцын хувьд) өгөгдөл, графикийг онлайнаар шалгах боломжийг олгодог. Өөр нэг ашигтай шинж чанар бол кодонд орсон OTA шинэчлэлт бөгөөд хэрэглэгчид програм хангамжийг хялбархан шинэчлэх, өөрчлөх боломжийг олгодог. Би бүх мэдрэгч ба тэдгээрийг олж авах аргыг шинжлэх бөгөөд бүх давуу болон сул талыг тэнцвэржүүлэх болно.

Спойлер: бага зэрэг туршсаны дараа DS18B20 гэх мэт дижитал мэдрэгч нь тогтвортой байдал, өндөр нарийвчлалыг санал болгодог тул хамгийн сайн шийдэл болохыг олж мэдэв. Энэ нь аль хэдийн ус нэвтэрдэггүй, кабельтай болсон.

Алхам 1: Материал

Материал
Материал
Материал
Материал
Материал
Материал

Энэ бол цөөн тооны гадны бүрэлдэхүүн хэсэгтэй хамгийн бага төсөл бөгөөд үүний тулд Монголбанкны жагсаалт үнэхээр богино байх болно. Гэсэн хэдий ч ямар материал шаардлагатай болохыг харцгаая.

  • NodeMcu V3 (эсвэл нийцтэй ESP8266 μ процессор);
  • RGB LED (нийтлэг анод);
  • Лед эсэргүүцэл (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (Максим нэгдсэн термометр);
  • LM35 (Texas Instrument термометр);
  • Гадаад батерей (заавал биш);
  • Кабель;
  • Холбогч (үүнийг илүү "дэвшилтэт" болгохын тулд);
  • Хайрцаг (заавал биш, дахин "дэвшилтэт" болгохын тулд);
  • LED эзэмшигч (заавал биш);

Жич: Миний хэлсэнчлэн та хоёр аргын аль нэгийг сонгох хэрэгтэй. Хэрэв та LM35 термометрийг сонговол өөр хэд хэдэн бүрэлдэхүүн хэсэг хэрэгтэй болно.

  • Attiny45/85;
  • AVR програмист (эсвэл Arduino нь ISP);
  • Эсэргүүцэл (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2.54 мм тууз холбогч (заавал биш)
  • Диод (2x1N914)
  • Perfboard эсвэл ПХБ;

Алхам 2: Мэдрэгчийг сонгох

Мэдрэгчийг сонгох
Мэдрэгчийг сонгох

Мэдрэгчийг сонгох нь маш хэцүү алхам байж болох юм: өнөөдөр олон төрлийн дамжуулагч (TI нь 144 өөр элементийг санал болгодог) өөр өөр температурын хүрээ, нарийвчлал, аналоги болон дижитал хэлбэртэй байдаг.

  • Мэдээлэл бүртгэгчийг температураас өөр хэмжигдэхүүн болгон өөрчлөх боломжтой (хүчдэл, гүйдэл, …);
  • Бага зэрэг хямд байж магадгүй;
  • Тусгай номын сан шаардлагагүй тул ашиглахад хялбар;

Сул тал:

  • ADC (энэ нь хэмжилтийн нарийвчлалд нөлөөлж болзошгүй) болон бусад гадны бүрэлдэхүүн хэсгүүдийг шаарддаг. Esp8266 нь зөвхөн нэг ADC (үнэн зөв биш) тул гадны нэгийг ашиглахыг санал болгож байна.
  • Аливаа индуктив хүчдэл нь үр дүнг өөрчилж чаддаг тул дуу чимээг эсэргүүцэх зориулалттай тусгай кабель хэрэгтэй болно.

Бага зэрэг бодсоны дараа LV35, 0.5 ° C нарийвчлалтай +10mV/° C масштабтай коэффициент бүхий шугаман мэдрэгч, 4V -аас 30В хүртэлх хүчдэл бүхий маш бага гүйдэл (ойролцоогоор 60uA) ашиглахаар шийдсэн. Дэлгэрэнгүй мэдээллийг LM35 мэдээллийн хуудсыг үзэхийг санал болгож байна.

Дижитал мэдрэгч (зөвлөж байна) Давуу талууд:

Бараг бүх гадны бүрэлдэхүүн хэсгүүд шаардлагатай;

Нэгдсэн ADC

Сул тал:

Дижитал дохиог тайлах номын сан эсвэл програм хангамж хүсэх (I2C, SPI, Цуваа, Нэг утас,…);

Илүү үнэтэй;

Би Амазоноос ус нэвтэрдэггүй 5 мэдрэгчийг олсон бөгөөд интернетэд өргөнөөр бичигдсэн тул DS18B20 -ийг сонгосон. Гол онцлог нь 9-12 битийн хэмжилт, 1 утастай автобус, тэжээлийн хүчдэл 3.0-аас 5.5 хүртэл, 0.5 ° C нарийвчлал юм. Дахин хэлэхэд, дэлгэрэнгүй мэдээллийг эндээс авах боломжтой: DS18B20.

Алхам 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

LM35 термометрийн гадаад ADC болон бусад функцийг хэрхэн хэрэгжүүлснийг дүн шинжилгээ хийцгээе. Би гурван утастай, нэг нь хамгаалалттай, хоёр нь утасгүй кабель оллоо. Би мэдрэгчийн ойролцоох тэжээлийн хүчдэлийг тогтворжуулахын тулд задлах конденсатор нэмэхээр шийдсэн. Аналог температурыг дижитал болгохын тулд би Attip85 микропроцессорыг dip8 багцад ашигласан болно. Бидний хувьд хамгийн чухал зүйл бол 10 битийн ADC (үнэхээр хамгийн сайн нь биш, гэхдээ надад хангалттай нарийвчлалтай). Esp8266 -тай холбогдохын тулд esp8266 нь 3.3V ба 5V -д attiny85 (мэдрэгчийг асаах шаардлагатай байдаг) дээр ажилладаг гэдгийг санаж Цуваа холболтыг ашиглахаар шийдсэн. Үүнийг хийхийн тулд би хүчдэлийн энгийн хуваагч ашигласан (схемийг үз). Сөрөг температурыг уншихын тулд бид гадны зарим бүрэлдэхүүн хэсгүүдийг (2x1N914 ба 1x18k резистор) нэмэх хэрэгтэй, учир нь би сөрөг цахилгаан хангамж ашиглахыг хүсэхгүй байна. Энд код байна: TinyADC репозитор. Тэмдэглэл: энэ кодыг эмхэтгэхийн тулд та суулгах хэрэгтэй болно. attiny to ide (үүнийг https://drazzy.com/package_drazzy.com_index.json хэсэгт оруулна уу), хэрэв та үүнийг яаж хийхээ мэдэхгүй байгаа бол зүгээр л Google дээрээс хайх эсвэл.hex файлыг шууд байршуулна уу.

Алхам 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Би эдгээр мэдрэгчийг Амазоноос худалдаж авсан (5 нь 10 еврогийн үнэтэй). Энэ нь зэвэрдэггүй ган таг, 1м урттай кабельтай ирсэн. Энэхүү мэдрэгч нь 9-12 битийн температурын өгөгдлийг буцааж өгөх боломжтой. Олон тооны мэдрэгчийг нэг зүүгээр холбож болно, учир нь тэд бүгд өвөрмөц ID -тэй тул DS18B20 -ийг esp8266 -д залгахын тулд та схемийг дагаж болно (хоёр дахь зураг). Би модчинд гурван зонд байх байсан гэж шийдсэн болохоор аль нь болохыг ялгах хэрэгтэй болсон. Тиймээс би програм хангамжаар холбогдсон өнгийг хаягаар нь өгөхийг бодлоо. Би дулаанаар агшдаг хоолой ашигласан (гурав дахь зураг).

Алхам 5: ESP8266 код

ESP8266 код
ESP8266 код
ESP8266 код
ESP8266 код

Би энэ ертөнцөд шинээр ирсэн болохоор маш олон номын сан ашиглахаар шийдсэн. Танилцуулгад дурдсанчлан гол шинж чанарууд нь:

  • OTA шинэчлэлт: кодыг оруулах бүртээ esp8266 -ийг компьютер дээрээ залгах шаардлагагүй (та үүнийг зөвхөн анх удаа хийх ёстой);
  • Утасгүй менежер, хэрэв утасгүй сүлжээ өөрчлөгдвөл ноорогоо дахин ачаалах шаардлагагүй болно. Та esp8266 хандалтын цэг рүү холбогдох сүлжээний параметрүүдийг дахин тохируулах боломжтой.
  • Thingspeak өгөгдлийн алдагдал;
  • LM35 ба DS18B20 хоёуланг нь дэмждэг;
  • Хэрэглэгчийн энгийн интерфэйс (RGB LED нь зарим хэрэгтэй мэдээллийг харуулдаг);

Миний програм хангамж хамгийн сайн биш, тийм ч сайн захиалга өгөөгүй тул надаас уучлал гуйгаарай. Төхөөрөмж рүү байршуулахаасаа өмнө кодыг тохиргоондоо тохируулахын тулд зарим параметрүүдийг өөрчлөх хэрэгтэй. Эндээс та програм хангамжийг татаж авах боломжтой. Нийтлэг LM35 ба DS18B20 тохиргоонууд Та OTA шинэчлэлтийн зүү тодорхойлолт, жетон, сувгийн дугаар, хэрэглэгч болон нууц үгийг өөрчлөх хэрэгтэй. 15 -аас 23 хүртэлх шугам.

#тодорхойлохYOURPINHERE улаан #НОГООНДОО тодорхойлох

#define blue YOURPINHERE const char* host = "хостын хаягийг сонгох"; // танд үнэхээр хэрэггүй, esp8266-webupdate const char* update_path = "/firmware" -г орхиж болно; // шинэчлэх хаягийг өөрчлөхийн тулд ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";

Алхам 6: ESP8266 код: LM35 хэрэглэгч

Та ADC төхөөрөмжийг асаахын тулд esp8266 -тай холбох хэрэгтэй. Цуваа холболт хийхдээ ямар зүү ашиглахыг сонгох хэрэгтэй (дибаг хийх зорилгоор тоног төхөөрөмжийн цуваа үнэгүй байх ёстой). Tx зүүг сонгох ёстой боловч үнэхээр ашигладаггүй. (Шугам 27). SoftwareSerial mySerial (RXPIN, TXPIN); Дээд талд та нэмэх хэрэгтэй: #define LM35USER

Алхам 7: ESP8266 код: DS18B20 хэрэглэгч

Эхний үйлдлийн хувьд та мэдрэгч бүрийн төхөөрөмжийн хаягийг тодорхойлох хэрэгтэй. Энэ кодыг esp руу хөрвүүлээд програмчлаад үр дүнг нь цувралаар нь үзээрэй. Кодыг эндээс олж болно (энэ гарчгийг "DS18B20 хувь хүний дотоод хаягийг унших" хуудаснаас хайх). Хаягийг авахын тулд зөвхөн нэг мэдрэгчийг холбоно уу, үр дүн нь иймэрхүү байх ёстой (энд санамсаргүй тоо байна! Жишээ нь): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Дараа нь та энэ хэсэгт байгаа миний кодыг өөрчлөх хэрэгтэй болно. DS18B20 "(31-36 -р мөр) -ийн тохиргоо:

#тодорхойлох ONE_WIRE_BUS ONEWIREPINHERE #TEMPERATURE_PRECISION TEMPBITPRECISION -ийг тодорхойлох // (9 -с 12 хүртэл) #define delayDallas READINTERVAL // (Милисекундээр, хамгийн багадаа 15s эсвэл 15000mS) DeviceAddress blueSSD, 0x1, 0x1, 0x11, 0x12}; // ХАЯГТААР ТӨЛӨӨРӨХ DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ХАЯГТААР ТӨЛӨӨРӨХ DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ХАЯГТААР ӨӨРЧЛӨЛДӨХ Дээд талд нэмэх шаардлагатай: #define DSUSER

Алхам 8: ESP8266 Бяцхан трик

ESP8266 Бяцхан трик
ESP8266 Бяцхан трик

Бага зэрэг туршилт хийсний дараа хэрэв та esp8266 -ийг програмчлалгүйгээр залгах юм бол дахин тохируулах товчлуурыг дарах хүртэл код ажиллахгүй болно. Энэ асуудлыг шийдэхийн тулд бага зэрэг судалсны дараа та 3.3V-аас D3 хүртэл татах эсэргүүцэл нэмэх хэрэгтэйг олж мэдсэн. Энэ нь процессорыг флаш санах ойгоос кодыг ачаалахыг хэлдэг бөгөөд энэ аргыг ашиглан D3 -ийг DS18B20 мэдрэгчийн өгөгдөл оруулахад шууд ашиглаж болно.

Алхам 9: Анхны удаагийн ажиллагаа

Анхны удаагийн ажиллагаа
Анхны удаагийн ажиллагаа
Анхны удаагийн ажиллагаа
Анхны удаагийн ажиллагаа

Хэрэв та кодыг зөв байршуулсан боловч Wifi менежерийн санг хэзээ ч ашиглаж байгаагүй бол wifi холболтоо тохируулах цаг болжээ. RGB LED нь өмнөхөөсөө илүү хурдан анивчихыг харах хүртэл хүлээгээд гар утас эсвэл компьютер ашиглан "AutoConnectAp" гэж нэрлэгддэг wifi сүлжээг хайж холбоно уу. Холбогдсоны дараа вэб хөтөчийг нээгээд 192.168.4.1 гэж оруулна уу, та wifi менежерийн GUI интерфэйсийг олох болно (зургийг үзнэ үү) "Wifi тохируулах" дээр дарна уу. Esp8266 wifi сүлжээ хайхыг хүлээгээд хүссэн сүлжээгээ сонгоно уу. Нууц үгээ оруулаад "Хадгалах" дээр дарна уу. Esp8266 дахин асах болно (RGB энэ удаад санамсаргүй мэдээлэл гаргадаг тул хамаагүй), сүлжээнд холбогдох болно.

Алхам 10: Дүгнэлт

Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт

Эцэст нь хэлэхэд, миний хөлдөөгчийн температурыг бүртгэх явцад өгөгдөл бүртгэгчээс авсан графикийг энд оруулав. Улбар шар өнгөөр DS18B20, цэнхэр өнгөөр LM35 ба түүний хэлхээ байна. Та тооноос аналог мэдрэгч хүртэлх нарийвчлалын хамгийн том ялгааг харж болно (миний муу "ADC хэлхээний хувьд"), биет бус өгөгдөл өгдөг. Дүгнэж хэлэхэд, хэрэв та энэ бүртгэлийг бүтээхийг хүсч байвал DS18B20 дижитал температур мэдрэгчийг ашиглахыг зөвлөж байна. Уншихад илүү хялбар, бараг л "залгаж тоглуулах", илүү тогтвортой бөгөөд нарийвчлалтай, 3.3В хүчдэл дээр ажилладаг бөгөөд олон тооны мэдрэгчид зөвхөн нэг зүү шаардагддаг. Анхаарал тавьсанд баярлалаа, энэ төсөл танд болон танд ашигтай гэж найдаж байна хэрэгтэй мэдээлэл олж авлаа. Үүнийг ойлгохыг хүссэн хүмүүст би шаардлагатай бүх мэдээллийг өгөхийг хүсч байна. Хэрэв бүх зүйлийг чөлөөтэй асуухгүй бол би бүх асуултанд хариулахад баяртай байх болно. Би англи хэлээр ярьдаггүй тул ямар нэг зүйл буруу эсвэл ойлгомжгүй байвал надад мэдэгдээрэй. Хэрэв танд энэ төсөл таалагдсан бол уралдаанд оролцохын тулд саналаа өгөөрэй эсвэл сэтгэгдлээ үлдээгээрэй. Энэ нь намайг шинэ агуулгыг байнга шинэчилж, нийтлэхийг урамшуулах болно. Баярлалаа.

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