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

NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)

Видео: NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)

Видео: NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн: 8 алхам (зурагтай)
Видео: ОРХИДЕИ В ПУСТОЙ ВАЗЕ - ЛАЙФХАКИ, ТОНКОСТИ И ОШИБКИ СОДЕРЖАНИЯ, ПЕРЕВОДА И ЩАДЯЩЕЙ АДАПТАЦИИ В ОС! 2024, Долдугаар сарын
Anonim
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн
NaTaLia цаг уурын станц: Arduino нарны эрчим хүчээр ажилладаг цаг уурын станц зөв замаар хийсэн

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

Алхам 1: Цаг уурын станцын ажиллагаа

1, Дамжуулагч: Нарны хавтантай гадаа суурилуулсан хайрцаг нь цаг агаарын телеметрийг (Температур, Чийгшил, Дулааны индекс, Нарны хүч) үе үе доторх хүлээн авагч руу илгээдэг.

2, Хүлээн авагч: Raspberry PI 2 + Arduino Mega -аас хийсэн дотоод төхөөрөмж нь өгөгдөл хүлээн авахад холбогдсон 433 Mhz RF хүлээн авагчтай. Миний тохиргоонд энэ төхөөрөмж нь орон нутгийн LCD дэлгэцийн функцгүй байна. Энэ нь анхааралгүй гүйдэг. Үндсэн C програм нь цуваагаар дамжуулан Arduino -аас ирж буй өгөгдлийг хүлээн авч, дараа нь өгөгдлийг текст файлд бүртгэж, бусад төхөөрөмжөөс асуухын тулд telnet -ээр дамжуулан хамгийн сүүлд хүлээн авсан өгөгдлийг авах боломжтой болно.

Станц нь манай гэрлийн гэрлийг фоторезистор (гадаа өдөр эсвэл шөнө байгаа эсэхийг тодорхойлдог) уншиж хянадаг. Миний хувьд хүлээн авагч толгойгүй байна, гэхдээ та LCD дэлгэц нэмэхийн тулд төслийг хялбархан өөрчилж болно. Станцын цаг агаарын мэдээллийг ашиглах, задлан шинжлэх, харуулах төхөөрөмжүүдийн нэг бол миний өөр төсөл: Ironforge NetBSD талх шарагч юм.

Алхам 2: Эхний хувилбарууд

Эхний хувилбарууд
Эхний хувилбарууд
Эхний хувилбарууд
Эхний хувилбарууд
Эхний хувилбарууд
Эхний хувилбарууд
Эхний хувилбарууд
Эхний хувилбарууд

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

Нарны эрчим хүчээр ажилладаг системийг зохион бүтээхдээ mcu, радио дамжуулагч, хүчдэлийн зохицуулагч гэх мэт бүх эд ангиудад эрчим хүчний хэрэглээ чухал юм.

Бөөрөлзгөнө pi гэх мэт том компьютер эсвэл ESP шиг цахилгаан өлсгөлөн Wi -Fi төхөөрөмж ашиглан цаг агаарын өгөгдлийг хоёр битээр цуглуулах, тээвэрлэх нь хэт их хэрэг болно, гэхдээ би үүнийг энэ хичээл дээр харуулах болно.

Хамгийн сайн арга бол бүтээх явцад тоолуур эсвэл хамрах хүрээ ашиглан гүйдлийг хэмжих явдал юм (үйл ажиллагааны явцад бага хэмжээний үсрэлтийг маш богино хугацаанд (миллисекунд) хэмжихийг оролдоход хэрэгтэй болно).

Эхний зураг дээр та миний анхны (Arduino Nano based) станц, хоёр дахь Arduino Barebone Atmega 328P самбарыг харж болно.

Эхний хувилбар нь төгс ажиллаж байсан ч (хүрээлэн буй орчныг хянах, өгөгдлийг радиогоор дамжуулах) хэт өндөр цахилгаан зарцуулалттай ~ 46mA байсан бөгөөд батерейг хэдхэн долоо хоногийн дотор цэнэггүй болгосон.

Бүх хувилбарууд нь дараах батерейг ашиглаж байсан.

18650 6000mAh хамгаалагдсан Li-ion цэнэглэдэг батерейны хамгаалалтын самбар

Эдгээр ScamFire батерейг шинэчлэх. Хэдийгээр энэ нь нэлээд хуучин зааварчилгаа боловч би энэ хуурамч батерейны улмаас үүнийг засах шаардлагатай болсон хэвээр байна. Дээр дурдсан батерейг бүү худалдаж ав, бусад LION/LIPO батерейны талаар бие даан судалгаа хий, бүх 3.7V батерей нь энэ төсөл дээр ажиллах болно.

Эцэст нь ScamFire -ийн батерейг задалж, жинхэнэ хүчин чадал нь юу болохыг олж мэдэх цаг гарлаа. Тиймээс бид бодит болон "зарласан" чадавхитай зэрэгцэн 2 тооцоо хийх болно.

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

LION/LIPO батерейны талаархи жижиг нийтлэл:

TLDR:

Энэ нь юу гэсэн үг вэ гэвэл үүрний хамгийн их хүчдэл 4.2v, "нэрлэсэн" (дундаж) хүчдэл 3.7V байна.

Жишээлбэл, "сонгодог" 3.7V/4.2V батерейны хүчдэлийн профайлыг энд оруулав. Хүчдэл хамгийн ихдээ 4.2 -оос эхэлдэг бөгөөд батерейны ихэнх хугацаанд 3.7 В хүртэл буурдаг. 3.4 В хүчдэлд хүрэхэд батерей нь дуусч, 3.0 В хүчдэлд таслах хэлхээ нь зайг салгадаг.

Дамми ачааллыг ашиглан хийсэн хэмжилтүүд:

Зай цэнэглэгдсэн: 4.1V

Хязгаарлалт: 3.4V

Ачааллын симуляци: 0.15A (миний төхөөрөмж үүнээс доогуур явахад жаахан асуудалтай байсан.)

Хэмжилсэн хүчин чадал: 0.77Ah, үүнийг зарласан 6000mAh -ийн оронд 800mAh болох 0.8 Ah үнэгүй өгдөг!

Энэ батерей нь хамгаалалтын хэлхээгүй байсан тул би чөлөөтэй доошоо бууж болох боловч 10 минутын дараа 3.4 В -т 3.0 В хүртэл унасан байна.

Тиймээс энгийн тооцооллоор батерей нь дараахь зүйлийг өгдөг.

Онолын хувьд

Зайны хүчдэл = 3.7V

Эрчим хүч = 3.7x6000 = 22000 мВтц

Жинхэнэ

Зайны хүчдэл = 3.7VХүч = 3.7x800 = 2960 мВтц

Хувилбар: 0.1 ARDUINO NANO BASED

LowPower номын сантай байсан ч Arduino нано нь ~ 16 мА (унтах горимд) -> FAIL.

Онолын хувьд

Павг = VxIavg = 5Vx16mA = 80 мВт

Батерейны ашиглалтын хугацаа = 22000/80 = 275 цаг = ойролцоогоор 11 хоног

RealPavg = VxIavg = 5Vx16mA = 80 мВт

Батерейны ашиглалтын хугацаа = 800/80 = 10 цаг

Хувилбар: 0.2 Atmega 328P Barebone

ATmega328 -ийн зарцуулсан хүч нь таны хийж буй зүйлээс ихээхэн хамаарна. Зүгээр л анхдагч төлөвт сууж байхдаа 16МГц давтамжтай ажиллаж байхдаа 16mA @ 5V -ийг ашиглах боломжтой.

ATmega328P нь идэвхтэй горимд байх үед секундэд хэдэн сая зааврыг тасралтгүй гүйцэтгэх болно. Цаашилбал, дижитал хөрвүүлэгч (ADC), Цуваа захын интерфэйс (SPI), таймер 0, 1, 2, хоёр утастай интерфейс (I2C), USART, ажиглагч таймер (WDT), хүрэн гарч илрүүлэх аналог төхөөрөмжүүд (BOD) эрчим хүч хэрэглэдэг.

Цахилгаан хэмнэхийн тулд ATmega328P MCU нь унтах хэд хэдэн горимыг дэмждэг бөгөөд ашиглагдаагүй нэмэлт төхөөрөмжүүдийг унтрааж болно. Унтах горимууд нь аль хэсэг нь идэвхтэй хэвээр байгаагаас хамаарч унтах хугацаа, сэрэхэд шаардагдах хугацаанаас хамаарч өөр өөр байдаг. Унтах горим ба идэвхтэй дагалдах хэрэгслийг AVR унтах, тэжээлийн номын сангаар, эсвэл товчоор хэлбэл маш бага чадлын номын сангаар удирдах боломжтой.

Бага чадлын номын санг ашиглахад хялбар боловч маш хүчирхэг. LowPower.powerDown мэдэгдэл (SLEEP_8S, ADC_OFF, BOD_OFF); Эхний аргументээс хамааран MCU -ийг SLEEP_MODE_PWR_DOWN -д 16 ms -аас 8 s -ийн хооронд байрлуулна. Энэ нь ADC болон BOD -ийг идэвхгүй болгодог. Унтах горим нь дараагийн тасалдал хүртэл бүх чип функцийг идэвхгүй болгоно гэсэн үг юм. Цаашилбал, гадаад осцилляторыг зогсооно. Зөвхөн INT1 ба INT2 дээр түвшний тасалдал, зүү солих тасалдал, TWI/I2C хаягийн тохируулга эсвэл WDT идэвхжсэн тохиолдолд MCU -ийг сэрээх боломжтой. Тиймээс ганцхан мэдэгдэл хийснээр та эрчим хүчний хэрэглээг багасгах болно. 3.3 V Pro Mini -ийн хувьд цахилгаан гүйдэлгүй, зохицуулагчгүй (доороос үзнэ үү) энэ мэдэгдлийг ажиллуулж байгаа бол эрчим хүчний хэрэглээ 4.5 мкА байна. Энэ нь 4.2 мкА идэвхжүүлсэн WDT-тай унтраах унтраах ATmega328P мэдээллийн хүснэгтэд дурдсантай ойролцоо байна (мэдээллийн хуудсыг эх сурвалжид холбосон). Тиймээс, powerDown функц нь боломжтой бүх зүйлийг унтраадаг гэдэгт би итгэлтэй байна. LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); гэсэн мэдэгдлийн тусламжтайгаар WDT идэвхгүй болох бөгөөд тасалдал гарах хүртэл та сэрэхгүй.

Нүцгэн ясны тохиргоог хийснээр бид чипийг маш бага энерги зарцуулдаг байхад 5 минутын турш унтлагын горимд оруулах боломжтой (захын төхөөрөмжгүй 0.04 мА). Гэсэн хэдий ч энэ бол болор осциллятор бүхий зөвхөн Atmega 328P чип бөгөөд үүнээс өөр зүйл биш бөгөөд батерейны хүчдэлийг 3.7V -> 5.0 В хүртэл нэмэгдүүлэхийн тулд энэ тохиргоонд ашигладаг хүчдэлийн өдөөгч нь 0.01 мА зарцуулдаг.

Тогтмол хүчдэлийн нэг ус зайлуулах төхөөрөмж бол унтах горим дахь хэрэглээг 1 мА хүртэл нэмэгдүүлдэг фото резистор юм.

Унтах болон сэрээх горимд төхөөрөмжийн хэрэглээг нарийн тооцоолох томъёо нь:

Iavg = (Ton*Ion + Tsleep*Isleep) / (Ton + Tsleep)

Ион = 13мА

Энэ нь ихэвчлэн RF433 Mhz дамжуулагчаас ирдэг.

Дамжуулагч:

Ажлын хүчдэл: хамгийн ихдээ 3V - 12V. Цахилгаан хэрэглээ 12V Ажлын гүйдэл: хамгийн их нь 40mA -аас бага, хамгийн бага нь 9m Марезонансын горим: (SAW) Модуляцийн горим: ASK Ажлын давтамж: Ева 315 МГц эсвэл 433 МГц Дамжуулах чадал: 25 мВт (12 В -т 315 МГц) Давтамжийн алдаа: +150 кГц (хамгийн их) Хурд: 10 Кб -аас бага

Унтах = 1 мА

Фоторезистор байхгүй бол хамаагүй бага байх болно.

Труноны цаг Тон = 250 мС = 0.25 сек

Унтах хугацаа Tsleep = 5 мин = 300 сек

Iavg = (Ton*Ion + Tsleep*Isleep) / (Ton + Tsleep)

Iavg = (0.25s*13mA + 300s*1mA) / (0.25s + 300s)

Iavg = 1.26mA

Павг = VxIavg = 5Vx1.26mA = 6 мВт

Онолын хувьд

Батерейны ашиглалт = 22000mWh/6mW = 3666 цаг = ойролцоогоор 152 хоног

Жинхэнэ

Батерейны ашиглалтын хугацаа = 800мВт/6мВт = 133 цаг = ойролцоогоор 5.5 хоног

Хэдийгээр эдгээр нь миний ашиглаж байсан UltraFire -ийн илүү сайн цуврал хэвээр байсан ч нарны зай эсвэл 1 мА -ийн хэрэглээ багатай энэ төсөл удаан үргэлжлэхгүй гэдгийг та харж байна.

Станц барьж, өөрийн дүгнэлт, тооцооллыг сэтгэгдэл дээр бичиж үлдээгээрэй, би нийтлэлийг шинэчлэх болно. Би өөр өөр MCU -ийн үр дүнг үнэлж, хөрвүүлэгчийг нэмэгдүүлэх болно.

Алхам 3: Амжилттай цаг уурын станц байгуулах

Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих
Амжилттай цаг уурын станц барих

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

Зураг дээрх индикаторгүй шинэ модуль нь өөрөө 3мА (*FAIL*) гадагшлуулсан тул би хуучин самбартайгаа үлдэв.

PFM Control DC-DC USB 0.9V-5V to 5V dc Boost Step-up Power Supply Module

Энэ модулийг бичиж байх үед Ebay дээр 99 центээр худалдаж авах боломжтой хэвээр байгаа боловч хэрэв та өөр өдөөгч ашиглахаар шийдсэн бол зогсолтын цахилгаан зарцуулалтыг үргэлж шалгаарай. Сайн чанарын өргөлтийн тусламжтайгаар энэ нь минийхээс хэтрэхгүй байх ёстой (0.01 мА), гэхдээ самбар дээрх жижиг LED-ийг гагнах шаардлагатай байв.

Алхам 4: Тоног төхөөрөмжийн жагсаалт

Тоног төхөөрөмжийн жагсаалт
Тоног төхөөрөмжийн жагсаалт
  • 18650 6000mAh хамгаалагдсан Li-ion цэнэглэдэг батерейны хамгаалалтын самбар
  • Ачаалагчтай Atmega 328P16M 5V
  • Adafruit DC Boarduino (Arduino нийцтэй) иж бүрдэл (w/ATmega328) <Хэрэв та ирээдүйн нүцгэн нүцгэн төслүүд хийж байгаа бол энэ нь сайн хөрөнгө оруулалт болно.
  • Фото гэрэл мэдрэмтгий резистор фоторезистор оппортезор 5мм GL5539
  • 1А 1000В диод 1N4007 IN4007 DO-41 Шулуутгагч диод
  • PFM Control DC-DC USB 0.9V-5V to 5V dc Boost Step-up Power Supply Module
  • 1.6W 5.5V 266mA мини нарны хавтангийн модуль систем эпокси эсийн цэнэглэгч DIY
  • TP405 5V Mini USB 1A лити зай цэнэглэх самбар цэнэглэгч модуль
  • Arduino/ARM/MC алсын удирдлагад зориулсан 433Mhz RF дамжуулагч ба хүлээн авагчийн холболтын хэрэгсэл <Kit нь дамжуулагч болон дамжуулагчийг хоёуланг нь агуулдаг
  • IP65 Шилжүүлэгч хамгаалалтын уулзвар хайрцаг Гадна ус нэвтрүүлдэггүй хаалт 150x110x70mm
  • Arduino -д зориулсан DHT22 температур ба харьцангуй чийгшил мэдрэгчийн шинэ модуль
  • 1x220 Ом, 2x10KOhm, 1xLED, 1xMini Switch, 1x1N4007 диод
  • Adafruit 16 МГц керамик резонатор / осциллятор [ADA1873]
  • Arduino UNO/Mega гэх мэт хүлээн авагч станц + Raspberry PI 1/2/3
  • Ил тод нийлэг хуванцар хайрцаг (заавал биш)

Та энэ бүгдийг Ebay дээрээс олж болно, би ямар ч худалдагчийг хуудсууд руу нь холбож сурталчлахыг хүсэхгүй байгаа бөгөөд ирээдүйд холбоосууд үхэх болно.

Тоног төхөөрөмжийн жагсаалтад зориулсан тэмдэглэл:

Хэрэв та ямар нэгэн байдлаар програмчлалын тусламжтайгаар Атмега тоосго хийвэл илүү ихийг худалдаж аваарай.

Нарны цэнэглэгч нь нарны гэрлээр цэнэглэгдсэн тохиолдолд л асдаг 2 улаан өнгийн LED-ийг агуулдаг бөгөөд (улаан-> цэнэглэх, цэнхэр-> бүрэн цэнэглэгдсэн төлөв) -ийг заана. Эдгээрийг мөн зарж борлуулахгүй байж болно. Энэ нь цэнэглэх явцад батерейнд арай илүү шүүс өгөх болно.

Таны харж байгаагаар миний жагсаалтад батерей эзэмшигч байхгүй байна. Яагаад? Учир нь тэд найдваргүй байдаг. Надад батерейгаа үүрнээс нь салгаж, холболтоо таслах тохиолдол олон байсан. Ялангуяа таны тохиргоог над шиг өндөр таваг дээр суурилуулсан бол цаг агаарын ямар ч хүнд нөхцөлд нээлттэй байх болно. Би тэр ч байтугай батерейг 2 цахилгаан товчоор эзэмшигч рүү нь зүүсэн боловч тэр одоо хүртэл гарч чадсан. Үүнийг бүү хий, зайнаас гаднах бүрхүүлийг аваад, хэт цэнэгээс хамгаалах хэлхээг агуулсан утсыг батерейны доод хэсэгт шууд гагнана (хамгаалалтыг алгасахгүй). Батерейны батерейг зөвхөн төхөөрөмжийг зайнд нь барихад ашиглаж болно.

TP405 5V Mini USB 1A лити батерей цэнэглэх самбар: харамсалтай нь энэ самбар нь нарны хавтангийн урвуу гүйдлийн хамгаалалтыг агуулаагүй болно, үүний тулд гүйдлийн ажиллагааг зогсоохын тулд нарны хавтангийн нэг хөл болон цэнэглэх хэлхээний хооронд 1 диод байрлуулах шаардлагатай болно. шөнө нарны зай руу буцаж орох.

Алхам 5: Чуулган

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

Энэхүү самбар нь харьцангуй цөөн бүрэлдэхүүн хэсэгтэй бөгөөд самбар дээрх тэмдэглэгээ нь маш энгийн.

Atmega328P -ийг буруу байрлуулж байгаа эсэхийг шалгаарай (энэ нь чипийг халааж, тоосго хийж, хүчдэлийн өдөөгчийг сүйтгэж болзошгүй юм).

Энэ тохиргоонд чип нь доошоо харсан (PIN1 тэмдэглэгээтэй U цоорхой). Бусад бүх бүрэлдэхүүн хэсгүүд нь тодорхой байх ёстой.

LDR -ийн хувьд хамгаалагдсан кабель ашиглана уу (жишээ нь: CDrom -ийн аудио кабель сайн ажиллах болно). Зарим тохиолдолд (хэдэн долоо хоногийн турш туршилтын явцад) энэ нь радио дохио дамжуулахад саад болж байгаа нь тогтоогджээ. Энэ бол алдааг олж засварлахад хэцүү байсан алдаануудын нэг байсан тул хэрэв та асуудалд орохыг хүсэхгүй байгаа бол үлгэрийн төгсгөлд хамгаалагдсан кабель ашиглаарай.

LED: Хайрцгийн ёроолд байгаа LED -ийг анх радио дамжуулах үед анивчихаар нэмж оруулсан боловч сүүлд нь би үүнийг хүч алдсан гэж үзэж байгаа бөгөөд ачаалах явцад ердөө 3 удаа анивчдаг.

TP: ерөнхий хэлхээний гүйдлийг хэмжих туршилтын цэг.

DHT22: Хямд DHT11 -ийг бүү худалдаж ав, сөрөг температурыг хэмжих боломжтой цагаан DHT22 авахын тулд 50 цент илүү зарцуул.

Алхам 6: Кейсийн дизайн

Кейс дизайн
Кейс дизайн
Кейс дизайн
Кейс дизайн
Кейс дизайн
Кейс дизайн

Хэдийгээр энэ нь арай хэтэрсэн боловч DHT22 температур мэдрэгчийг байрлуулахын тулд 3D хэвлэсэн шоо (weather_cube) хийсэн. Шоо нь IP хайрцгийн ёроолд наасан бөгөөд агаарт мэдрэгч хүрэхийн тулд зөвхөн 1 нүхтэй болно. Би нүхэнд зөгий, хорхой, бусад жижиг ялааны эсрэг тор нэмсэн.

Хэрэв та ил задгай тавагны тавиур дээр суурилуулсан бол станцыг илүү ус нэвтэрдэггүй болгохын тулд гадна хайрцгийг ашиглаж болно.

1 ашигтай шинж чанарын талаархи санаа: хайрцгийн дээд талд 1-2см хэмжээтэй том металл дээврийн хавтан нэмж зуны улиралд нарны гэрэл тусгадаг боловч энэ нь бидний нарны гэрлийг самбараас зайлуулж болзошгүй юм. Та самбар ба хайрцгийг тусгаарлах загварыг гаргаж болно (самбарыг наранд үлдээж, хайрцгийг сүүдэрт үлдээгээрэй).

Зураг дээр: 1 жилийн дараа ажлын орчноос хасагдсан станцуудын нэг, батерейны хүчдэл 3.9В -тэй, хайрцгийн аль ч хэсэгт усны гэмтэл байхгүй, гэхдээ кубын ёроолд наасан тор нь урагдсан байв. Станцад засвар үйлчилгээ хийх шаардлагатай болсон шалтгаан нь LDR холбогч дээрх холболтын алдаанаас үүдэлтэй боловч холбогч кабель хэвээр байгаа мэт харагдаж байсан ч холболт тасарсан тул LDR аналогийг муу унших боломжийг олгодог. Зөвлөмж: Хэрэв та стандарт компьютерийн холбогч кабель ашигладаг бол үүнээс зайлсхийхийн тулд станц бүрэн ажиллаж дууссаны дараа бүгдийг нь нааж болно.

Алхам 7: Програм хангамж

Програм хангамж
Програм хангамж

Програм хангамжийн кодонд 3 гадаад номын сан шаардлагатай болно (LowPower, DHT, VirtualWire). Би сүүлийн үед заримыг нь онлайнаар амархан олоход асуудалтай байсан тул тусдаа ZIP файлд хавсаргасан. Та Linux/Windows -ийг ямар OS ашиглаж байгаагаас үл хамааран Arduino IDE -ийн номын сангийн фолдерыг олоод тэндээс задалж аваарай.

DHT11 худалдаж авахгүй байхыг би аль хэдийн зөвлөсөн байсан ч гэсэн хэрэв та буруу DHT мэдрэгч хэрэглэвэл програмыг эхлүүлэх хэсгийн эхэнд програм үүрд өлгөгдөх болно (та асаах гэрэл 3 удаа анивчихыг ч харахгүй болно).

Гол давталтын код нь маш энгийн бөгөөд эхлээд хүрээлэн буй орчны утгыг (температур, дулааны индекс, чийгшил, нарны гэрэл) уншиж, радиогоор дамжуулж, дараа нь бага хүчирхэг номын санг ашиглан Arduino -г 5 минутын турш унтуулдаг.

Бодын хэмжээг багасгах нь радио дамжуулалтын тогтвортой байдлыг нэмэгдүүлэх болно гэдгийг би олж мэдсэн. Станц маш бага хэмжээний өгөгдөл илгээж байгаа бөгөөд 300 bps хангалттай байна. Түүнчлэн дамжуулагч нь ойролцоогоор ойролцоогоор ажиллаж байгааг мартаж болохгүй. 4.8V, ирээдүйд 3.3V хувилбар нь дамжуулах чанарыг улам бүр дордуулж болзошгүй (өгөгдлийг хана болон бусад саад бэрхшээлээр дамжуулах). Би Raspberry PI 2 -т залгагдсан Arduino Mega -ийг ашиглан PI -ээс Mega -ийг асаахад асуудал гарлаа. Шийдэл нь Мега -г тусдаа 12V гадаад тэжээлээс тэжээх явдал байв.

Алхам 8: Хувилбар 2 (ESP32 дээр суурилсан)

Хувилбар 2 (ESP32 дээр суурилсан)
Хувилбар 2 (ESP32 дээр суурилсан)
Хувилбар 2 (ESP32 дээр суурилсан)
Хувилбар 2 (ESP32 дээр суурилсан)
Хувилбар 2 (ESP32 дээр суурилсан)
Хувилбар 2 (ESP32 дээр суурилсан)

Хагарч болох бүх зүйл эвдэрч, хуучин Мерфигийн хэлсэн үгийг сонсох болно. Нэг нь хэдэн арван мянга хүртэл нарны гэрлийн өгөгдөл илгээж эхэлсэн бөгөөд энэ нь боломжгүй юм: Arduino самбар нь 6 суваг (Мини ба Нано дээр 8 суваг, Мега дээр 16 суваг), 10 битийн аналогийг дижитал хөрвүүлэгч рүү оруулдаг. Энэ нь 0 -ээс 5 вольтын хооронд оролтын хүчдэлийг 0 -ээс 1023 хүртэлх бүхэл тоон утгатай харьцуулна гэсэн үг юм. Тиймээс радио, LDR -ийг сольж, Atmega 328P -ийг олон удаа дахин програмчилсны дараа би бууж өгч, инновацийн цаг болсон гэж шийдсэн. ESP32 руу явцгаая.

Миний ашиглаж байсан самбар бол: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi & Bluetooth Card Rev1 MicroPython 4MB FLASH

wiki.wemos.cc/products:lolin32:lolin32_lit…

Микроконтроллер ESP-32

Ашиглалтын хүчдэл 3.3V дижитал оролтын зүү 19 аналог оролтын зүү 6 цаг хурд (хамгийн их) 240Mhz Flash 4M байт урт 5мм өргөн 2.54мм жин 4g

Зурган дээрх шиг LOLIN лого байхгүй (Хятадаас хуурамч). Миний анхны тааламжтай гэнэтийн зүйл бол самбар дээр хэвлэсэн pinout нь Arduino pinout -тэй таарч байсан явдал байв. Олон тооны нэргүй самбартай харьцсаны дараа би өдөржингөө pinouts хайх хэрэгтэй болж, ядарч, алдаа гаргажээ.

Гэсэн хэдий ч түүхийн харанхуй тал нь энд байна.

Эхэндээ би LDR -ийг A15 -тэй холбосон бөгөөд энэ нь зүүг хооронд нь холбох нь илүү хялбар байсан. Дараа нь би 4095 уншилттай болсон (энэ нь ESP32 дээр AnlogRead -ээс авах боломжтой хамгийн дээд хэмжээ юм), энэ нь намайг унагахад хүргэсэн, учир нь миний станцыг дахин бүтээсэн шалтгаан нь хуучин LDR -ийн уншилт байсан (DHT хэвийн ажиллаж байсан)). Тиймээс ийм зүйл болж байна:

Esp 32 нь 12 битийн ACD хоёр бүртгэлийг нэгтгэдэг. ADC1 нь GPIOs 32-39-д хавсаргасан 8 суваг, ADC2 нь өөр суваг дээр 10 сувгийг холбодог. ESP32 нь ADC2 -ийг wifi функцийг удирдахад ашигладаг тул хэрэв та Wifi ашигладаг бол энэ бүртгэлийг ашиглах боломжгүй юм. ADC драйвер API нь ADC1 (8 суваг, GPIOs 32 - 39 -д хавсаргасан), ADC2 (10 суваг, GPIO 0, 2, 4, 12 - 15 ба 25 - 27 -д хавсаргасан) дэмждэг. Гэсэн хэдий ч ADC2 -ийн хэрэглээ нь програмын хувьд зарим хязгаарлалттай байдаг.

ADC2-ийг Wi-Fi драйвер ашигладаг. Тиймээс програм нь Wi-Fi драйвер эхлээгүй үед зөвхөн ADC2-ийг ашиглах боломжтой. Зарим ADC2 тээглүүрийг бэхэлгээний зүү болгон ашигладаг (GPIO 0, 2, 15), тиймээс үүнийг чөлөөтэй ашиглах боломжгүй юм. Дараах албан ёсны Хөгжлийн иж бүрдэлд ийм байна.

Тиймээс LDR -ийг 12 -р зүүгээс A0 руу холбох нь VP бүх зүйлийг шийдсэн боловч яагаад тэд ADC2 зүүг үйлдвэрлэгчдэд ашиглах боломжтой гэж жагсаасан болохыг би ойлгохгүй байна. Үүнийг олох хүртэл өөр хэдэн хоббичин хэдэн цагаа дэмий үрсэн бэ? Наад зах нь ашиглах боломжгүй тээглүүрийг улаан эсвэл ямар нэгэн зүйлээр тэмдэглээрэй, эсвэл гарын авлагад огт дурдаагүй бол бусад үйлдвэрлэгчид үнэхээр хэрэгтэй байгаа тохиолдолд л тэдний талаар олж мэдэх боломжтой. ESP32 -ийн бүх зорилго бол үүнийг WIFI -тэй ашиглах явдал юм, бүгд үүнийг WIFI -ээр ашигладаг.

Энэ самбарт Arduino IDE-ийг хэрхэн тохируулах талаар сайн эхлэл:

Хэдийгээр би үүнийг кодонд оруулсан боловч энэ нь дахин гарч ирнэ.

Энэ кодыг Weemos LOLIN 32 -ээс бусад ESP32 загварт хөрвүүлэхгүй байж магадгүй юм!

Бүтээлийн тохиргоо: -Дараах/цуваа: 115200 ашиглах -CPU/RAM: 240Mhz ашиглах (Wifi | BT)

Сүлжээнд олон тооны ESP32 дээр суурилсан цаг уурын станцууд байдаг бөгөөд эдгээр нь миний 1 -р хувилбар нүцгэн чиптэй харьцуулахад хамаагүй илүү түгээмэл байдаг, учир нь тэдгээрийг суулгахад илүү хялбар байдаг, танд програмист хэрэггүй бөгөөд зөвхөн төхөөрөмжийг USB -д залгаад програмчлах шаардлагагүй болно. гүн унтах горим нь батерейгаас удаан хугацаанд ажиллахад тохиромжтой. Цохилтын цаана энэ бол таслагч тээглүүрт гагнахаас өмнө туршиж үзсэн хамгийн анхны зүйл байсан, учир нь энэ төсөлд олон газрыг тэмдэглэснээр хамгийн чухал зүйл бол цахилгаан зарцуулалт, одоогийн (хуурамч) батерей, жижиг нарны хавтантай байх явдал юм. Хүч чадал нь 1-2 мА-аас хэтрэх боломжгүй, эс тэгвээс төсөл урт хугацаанд тогтвортой ажиллах боломжгүй болно.

Гүн нойрны горим зарласны дагуу ажилладаг нь дахин нэг гайхалтай гэнэтийн бэлэг болов. Гүн нойрсох үед гүйдэл маш бага байсан тул миний хямд олон метр үүнийг хэмжиж ч чадахгүй байв (миний хувьд ажилладаг).

Мэдээлэл илгээх явцад гүйдэл нь ойролцоогоор 80 мА байсан (энэ нь Atmega 328P -ийг сэрээж, дамжуулж байх үеийнхээс 5 дахин их байсан), гэхдээ V1 -ийн хувьд LDR дээр унтах горимд 1mA цахилгаан тэжээлийн ус зайлуулах суваг байсныг бүү мартаарай. Энэ нь гэрлийн түвшингээс хамаарч 0.5мА -аас 1мА хүртэл өөрчлөгдсөн) одоо алга болсон.

Хэрэв та ижил батерей ашиглавал UltraFire батерейг задалсны дараа таны хүлээж буй зүйл бол:

Iavg = (Ton*Ion + Tsleep*Isleep) / (Ton + Tsleep)

Iavg = (2s*80mA + 300s*0.01mA) / (2s + 300s) Iavg = 0.5mA

Павг = VxIavg = 5Vx0.5mA = 2.5 мВт

Онолын хувьд

Батерейны ашиглалт = 22000mWh/2.5mW = 8800 цаг = ойролцоогоор 366 хоног

Жинхэнэ

Батерейны ашиглалтын хугацаа = 800мВт/2.5мВт = 320 цаг = ойролцоогоор 13 хоног

Надад цагийг яг таг хэмжих хүрээ байгаагүй, гэхдээ миний тохируулгаар 2 секунд орчим үргэлжилдэг.

Би үдээс хойш бүх зүйлийг захиалгаар кодлоход зарцуулахыг хүсээгүй тул өгөгдөл хадгалахад юу хийж байгааг харахын тулд ESP32 дээр суурилсан Instructables -аас бусад цаг уурын станцуудыг хайлаа. Тэд weathercloud гэх мэт уян хатан бус, хязгаарлагдмал сайтуудыг ашиглаж байгааг харамсалтай нь анзаарсан. Би "үүл" -ийн шүтэн бишрэгч биш бөгөөд сайт нь API -г өөрчилснөөс хойш код нь удаан хугацаанд эвдэрсэн тул миний бодож байгаа шиг тийм ч хэцүү биш тул би тусгай шийдэл гаргахад 10 минут зарцуулсан. Эхэлцгээе!

Нэгдүгээрт, энэ төслийн хувьд тусдаа хэлхээний зураг байхгүй, учир нь энэ нь V3 -тэй ижил бүрэлдэхүүн хэсгүүдийг ашигладаг (харамсалтай нь муухай талхны зурган дээр гагнаж байгаад уучлаарай), бүх зүйл 3.3V -ээс ялгаатай. DHT нь VCC -тэй холбогдож, LDR нь 10к -ээр татагдсан. Миний хятадын хуурамч (6500 mAh хэт нарны түймэр хэхэ: D) гэх мэт 18650 батерейтай холбоотой асуудал бол тэд 4.1V -ийн шинэ үеэс гадагшлах муруйг эхлүүлж, эсийн эвдрэлийг зогсоохын тулд таслах хэлхээ нь эхлэх хүртэл явагдах явдал юм. ийм азтай хүмүүс). Энэ нь бидний хувьд 3.3V оролт шиг сайн зүйл биш юм. Энэхүү LOLIN хавтан нь литийн батерейны холбогч, цэнэглэгч хэлхээтэй боловч энэ төсөлд би хуучин станцаасаа хийж чадах бүхнээ шинэчлэхийг хүсч байсан тул хуучин 18650 -ийн тусламжтайгаар та энэ цэнэглэгчийг ашиглах боломжгүй. Шийдэл нь маш энгийн байсан: microUSB дээрх самбар нь зохицуулагчтай тул хуучин хүчдэлийн өргөгчөөс 5V -д гагнагдсан микро USB кабелийг салгаж, voila -ийн асуудлыг шийдсэн.

Тиймээс хуучин батерейны 3.7V -> 5V хүртэл нэмэгдүүлсэн хуучин ба шинэ хувилбаруудын ялгаа нь 5V -> ardu 5V дээр ажилладаг -> бүх бүрэлдэхүүн хэсгүүд 5V дээр ажилладаг.

Шинээр: батерей нь 3.7V -> 5V хүртэл нэмэгдсэн -> ESP32 дээрх самбар дээр зохицуулагдсан -> бүх бүрэлдэхүүн хэсгүүд 3.3V дээр ажилладаг.

Програм хангамжийн хувьд бидэнд өөр DHT номын сан хэрэгтэй болно, Arduino DHT нь ESP -тэй нийцэхгүй байна. Бидэнд хэрэгтэй байгаа зүйлийг DHT ESP гэж нэрлэдэг.

Би кодоо энэ кодын өгсөн DHT жишээн дээр үндэслэж эхлэв. Кодын үйл ажиллагаа нь:

1, DHT + нарны гэрэл зургаас фотоэлементээс хүрээлэн буй орчны мэдээллийг авах

2, статик IP ашиглан wifi -д холбогдоно уу

3, өгөгдлийг php скрипт дээр байрлуулах

4, 10 минутын турш унт

Би анзаарсанчлан би кодыг үр ашгийн хувьд тохируулсан бөгөөд энэ нь хуучин төслийг асаахаас 5 дахин их эрчим хүч зарцуулж байгаа тул сэрэх хугацааг эрс багасгах болно. Би үүнийг яаж хийсэн юм бэ? Юуны өмнө, ямар нэгэн төрлийн алдаа гарсан тохиолдолд getTemperature () функц нь худал гэж буцаана (энэ нь дахиад 10 минут унтана гэсэн үг). Энэ нь DHT мэдрэгчийг эхлүүлэх боломжгүй эсвэл wifi холболт байхгүй байж магадгүй юм. Wifi холболтыг үүрд үргэлжлүүлэн оролдох ердийн () давталтыг мөн хассан боловч тэнд 1 секундын хоцролтыг үлдээх шаардлагатай байсан ч энэ нь үргэлж холбогдохгүй бөгөөд энэ нь AP төрөл, ачаалал гэх мэтээс хамаарна. 0.5 секундын дараа би үл нийцэх зан авиртай болсон (заримдаа холбогдож чадахгүй байсан). Үүнийг хийх илүү сайн арга замыг мэддэг хүн байвал үүнийг коммент хэсэгт үлдээнэ үү. Зөвхөн DHT -ийн өгөгдлийг уншиж, wifi холболт дуусахад л өгөгдлийг вэб сервер дээрх скриптэд оруулахыг оролдох болно. Serial.println () гэх мэт бүх төрлийн цаг алдах функцууд нь ердийн ажиллагааны горимд идэвхгүй болдог. Серверийн хувьд би шаардлагагүй DNS хайхаас зайлсхийхийн тулд IP ашигладаг бөгөөд миний кодонд анхдагч гарц болон dns сервер хоёулаа 0.0.0.0 гэж тохируулагдсан байдаг.

Зөвхөн өөрийн API -ийг бий болгоход яагаад ийм хэцүү байдгийг би ойлгохгүй байна.

sprintf (хариулт, "temp =%d & hum =%d & hi =%d & sol =%d", temp, hum, hi, sol);

int httpResponseCode = http. POST (хариулт);

Та энэ жижиг php кодыг ямар ч бөөрөлзгөнө pi дээр тавьдаг бөгөөд хэрэв та хангалттай харанхуй болсон бол фенүүдээ асаах, гэрлээ асаах гэх мэт телеметрийн үндсэн дээр system () даалгавруудыг шууд хийх боломжтой болно.

Кодын талаархи зарим тэмдэглэл:

WiFi.config (staticIP, гарц, дэд сүлжээ, dns); // Wifi хэрхэн тэнэг болж эхэлсний дараа байх ёстой …

WiFi горим (WIFI_STA); // Үгүй бол энэ нь хүсээгүй AP -ийг үүсгэх болно

Тийм ээ, одоо та мэдэж байна. Мөн IP тохиргооны дарааллыг платформоор дамжуулан өөрчилж болно, би эхлээд гарц болон дэд сүлжээний утгыг сольж байсан бусад жишээг туршиж үзсэн. Яагаад статик IP тохируулах ёстой вэ? Мэдээжийн хэрэг, хэрэв та сүлжээнд isc dhcpd ажиллуулдаг линукс сервер шиг тусгай хайрцагтай бол ESP -ийг сэрээд DHCP -аас IP авахад хэдэн зуун сая бүртгэл оруулахыг хүсэхгүй байна. Чиглүүлэгчид ихэвчлэн холболтыг бүртгэдэггүй бөгөөд энэ нь харагдахгүй болно. Энэ бол эрчим хүч хэмнэх үнэ юм.

Чанар муутай батерейны улмаас V2 хэзээ ч өөрийгөө тогтвортой байлгаж чадаагүй бөгөөд би үүнийг адаптер дээр суулгасан тул хэрэв та V1 эсвэл V2 аль алиныг нь бүтээхийг хүсч байвал дээрх батерейг худалдаж авдаггүй бол батерейны талаар өөрийн судалгааг хий. Ebay дээрх 2000mAh -ээс дээш зар сурталчилгааны багтаамж нь өндөр магадлалтай луйвар юм).

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