Mundarija:

NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)

Video: NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)

Video: NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan amalga oshirildi: 8 qadam (rasmlar bilan)
Video: CS50 Live, серия 003 2024, Iyun
Anonim
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan qilingan
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan qilingan
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan qilingan
NaTaLia ob -havo stantsiyasi: Arduino quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasi to'g'ri yo'l bilan qilingan

Ikki xil joyda 1 yil muvaffaqiyatli ishlaganimdan so'ng, men quyosh energiyasi bilan ishlaydigan ob -havo stantsiyasining loyiha rejalari bilan bo'lishaman va uning quyosh energiyasidan uzoq vaqt davomida omon qoladigan tizimga aylanganini tushuntiraman. Agar siz mening ko'rsatmalarimga rioya qilsangiz va xuddi shu materiallardan foydalansangiz, siz quyosh energiyasida ishlaydigan, ko'p yillar davomida ishlaydigan ob -havo stantsiyasini qurishingiz mumkin. Aslida uning ishlash muddatini cheklaydigan yagona omil - bu batareyaning ishlash muddati.

1 -qadam: Ob -havo stantsiyasining ishlashi

1, Transmitter: tashqi panelli quyosh panelli, quti, vaqti -vaqti bilan ichki qabul qilish moslamasiga ob -havo telemetriyasini (harorat, namlik, issiqlik indeksi, quyosh kuchi) yuboradi.

2, Qabul qilgich: Raspberry PI 2 + Arduino Mega -dan tayyorlangan ichki blok, 433 MGts chastotali RF qabul qilgichi, ma'lumotlarni qabul qilish uchun ulangan. Mening sozlashimda, bu qurilmada mahalliy LCD displey funktsiyasi yo'q. U beparvolik bilan ishlaydi. C dasturining asosiy dasturi ketma -ket Arduino -dan keladigan ma'lumotlarni qabul qiladi, so'ngra ma'lumotlarni matnli faylga yozib qo'yadi va boshqa qurilmalar so'rovi uchun telnet orqali oxirgi qabul qilingan ma'lumotlarni beradi.

Stantsiya mening uyimdagi chiroqlarni fotorezistor o'qish orqali boshqaradi (bu tashqarida kunduzi yoki kechasi ekanligini aniqlaydi). Qabul qilgich mening holatimda boshsiz, lekin siz LCD displey qo'shish uchun loyihani osongina o'zgartirishingiz mumkin. Stansiyadagi ob -havo ma'lumotlarini ishlatadigan, tahlil qiladigan va ko'rsatadigan qurilmalardan biri bu mening boshqa loyiham: Ironforge NetBSD Toaster.

2 -qadam: Birinchi versiyalar

Birinchi versiyalar
Birinchi versiyalar
Birinchi versiyalar
Birinchi versiyalar
Birinchi versiyalar
Birinchi versiyalar
Birinchi versiyalar
Birinchi versiyalar

Tarmoqda ko'plab quyosh loyihalari bor, lekin ularning ko'pchiligi, odatda, quyosh batareyasi, ayniqsa bulutli, qorong'u qish oylarida, batareyani ko'proq energiya oladi, degan xatoga yo'l qo'yishadi.

Agar siz quyosh energiyasi bilan ishlaydigan tizimni loyihalashtirsangiz, yagona narsa - bu elektr energiyasi iste'moli, barcha komponentlar: mcu, radio uzatuvchi, voltaj regulyatori va boshqalar.

Ob -havo ma'lumotlarini bir necha bitni yig'ish va tashish uchun malina pi yoki ESP kabi kuchli Wi -Fi qurilmasi kabi katta kompyuterdan foydalanish ortiqcha ish bo'lardi, lekin men buni ko'rsatma beraman, hatto kichik Arduino kartasi ham.

Eng yaxshisi, har doim oqimni o'lchash moslamasi yoki o'lchov bilan o'lchash.

Birinchi rasmda siz mening birinchi (Arduino Nano Based) stansiyasini va ikkinchi Arduino Barebone Atmega 328P kartasini ko'rishingiz mumkin.

Birinchi versiya, u mukammal ishlagan bo'lsa -da (atrof -muhitni kuzatish va ma'lumotlarni radio orqali yuborish) juda yuqori quvvat sarfiga ega edi - 46mA va batareyani bir necha hafta ichida tugatdi.

Barcha versiyalarda quyidagi batareyalar ishlatilgan:

18650 6000mAh himoyalangan Li-ion qayta zaryadlanuvchi batareya o'rnatilgan himoya paneli

ScamFire batareyalarini yangilang. Garchi bu juda eski ko'rsatma bo'lsa -da, men bu soxta batareya tufayli uni tuzatishga majbur bo'ldim. Ko'rsatilgan batareyani sotib olmang, boshqa LION/LIPO batareyalari haqida o'z tadqiqotingizni o'tkazing, barcha 3.7V batareyalar ushbu loyiha bilan ishlaydi.

Oxir -oqibat, men uning haqiqiy imkoniyatlarini bilish uchun ScamFire batareyasini o'chirib qo'yishga vaqt topdim. Shunday qilib, biz haqiqiy va "e'lon qilingan" imkoniyatlar bilan yonma -yon ikkita hisob -kitob qilamiz.

Birinchidan, bu batareyaning soxta ekanligi va ular da'vo qilayotganlarning hech biri haqiqat emas, yangi versiyalar bundan ham yomoni, ular soxta nusxasini 2 sentlik himoya zanjirini tashlab ko'chirib olishdi, shuning uchun ularni nolga tushirishni hech narsa to'xtata olmaydi.

LION/LIPO batareyalari haqida kichik maqola:

TLDR:

Buning ma'nosi shundaki, hujayraning maksimal kuchlanishi 4,2v va "nominal" (o'rtacha) kuchlanish 3,7V.

Masalan, "klassik" 3.7V/4.2V batareyasi uchun kuchlanish profilidir. Batareya zaryadining ko'p qismi uchun kuchlanish maksimal 4.2dan boshlanadi va tezda 3.7V ga tushadi. 3.4V ga urganingizda, batareya zaryadsizlanadi va 3.0V kuchlanishida batareyani uzib qo'yadi.

Qo'pol yuk yordamida o'lchovlarim:

Batareya zaryadlangan: 4.1V

Chiqish chegarasi: 3,4V

Yukni simulyatsiya qilish: 0.15A (mening qurilmamda bundan pastroqda muammo bor edi.)

O'lchov sig'imi: 0,77Ah, bepul 6,8 mA / soat o'rniga 800 mA / soat bo'lgan 0,8 AH bepul!

Bu batareyada himoya zanjiri bo'lmaganligi sababli, men bemalol pastga tushishim mumkin edi, lekin 10 daqiqadan so'ng 3,4 V da u 3,0 V ga tushib ketadi.

Shunday qilib, oddiy hisob -kitoblar bilan batareya quyidagilarni ta'minlaydi:

Nazariy

Batareya quvvati = 3,7 V

Quvvat = 3,7x6000 = 22000 mVt / soat

Haqiqiy

Batareya quvvati = 3,7V Quvvat = 3,7x800 = 2960 mVt / soat

Versiya: 0.1 ARDUINO NANO asosli

Hatto LowPower kutubxonasida ham Arduino nanosi ~ 16 mA (uyqu holatida) -> YO'Q.

Nazariy

Pavg = VxIavg = 5Vx16mA = 80 mVt

Batareya muddati = 22000/80 = 275 soat = taxminan 11 kun

RealPavg = VxIavg = 5Vx16mA = 80 mVt

Batareya muddati = 800/80 = 10 soat

Versiya: 0.2 Atmega 328P yalang'och

ATmega328 tomonidan iste'mol qilinadigan quvvat ko'p jihatdan u bilan nima qilayotganingizga bog'liq. U erda odatiy holatda o'tirib, 16 MGts da ishlayotganda u 16 mA @ 5 V dan foydalanishi mumkin.

ATmega328P faol rejimda bo'lganda, u sekundiga bir necha million ko'rsatmalarni doimiy ravishda bajaradi. Bundan tashqari, raqamli konvertorga (ADC), ketma-ket periferik interfeysga (SPI), taymer 0, 1, 2, ikkita simli interfeys (I2C), USART, qo'riqchi taymeri (WDT) va jigarrang detektorga o'xshash analog qurilmalar. (BOD) quvvat sarflaydi.

Quvvatni tejash uchun ATmega328P MCU bir qator uyqu rejimlarini qo'llab -quvvatlaydi va ishlatilmaydigan qo'shimcha qurilmalarni o'chirib qo'yish mumkin. Uyqu rejimlari qaysi qismlar faolligidan farq qiladi, uyquning davomiyligi va uyg'onish uchun zarur bo'lgan vaqt (uyg'onish davri). Kutish rejimi va faol atrof-muhit birliklari AVR uyqu va quvvat kutubxonalari yordamida yoki aniqrog'i, kam quvvatli kutubxona yordamida boshqarilishi mumkin.

Kam quvvatli kutubxonadan foydalanish juda oddiy, lekin juda kuchli. LowPower.powerDown bayonoti (SLEEP_8S, ADC_OFF, BOD_OFF); birinchi dalilga qarab MCUni SLEEP_MODE_PWR_DOWNga 16 ms dan 8 s gacha qo'yadi. Bu ADC va BODni o'chiradi. Qachonki uyqu o'chsa, chipning barcha funktsiyalari keyingi uzilishgacha o'chiriladi. Bundan tashqari, tashqi osilator to'xtatiladi. INT1 va INT2 -da faqat darajali uzilishlar, pin almashtirish uzilishlari, TWI/I2C manzillar mosligi yoki WDT, agar yoqilgan bo'lsa, MCUni uyg'otishi mumkin. Shunday qilib, bitta bayonot bilan siz energiya sarfini kamaytirasiz. Quvvat LEDisiz va regulyatorsiz (pastga qarang) 3,3 V Pro Mini uchun, energiya iste'moli 4,5 mA. Bu 4,2 mA WDT yoqilgan holda uyqu uchun ATmega328P ma'lumotlar jadvalida aytilganlarga juda yaqin (ma'lumotlar sahifasi manbalarda bog'langan). Men ishonchim komilki, powerDown funktsiyasi mumkin bo'lgan hamma narsani o'chirib qo'yadi. LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); iborasi bilan WDT o'chiriladi va siz uzilish boshlangunga qadar uyg'onmaysiz.

Yalang'och suyakni sozlash bilan biz chipni 5 daqiqa uyqu rejimiga o'tkaza olamiz, shu bilan birga u juda kam energiya sarflaydi (atrof -muhit qurilmalari bo'lmagan 0,04 mA). Ammo bu faqat kristalli osilatorli Atmega 328P chipi va boshqa hech narsa emas, bu konfiguratsiyada batareyaning kuchlanishini 3,7V -> 5,0 V ga oshirish uchun ishlatiladigan kuchlanish kuchaytirgichi 0,01 mA sarflaydi.

Doimiy kuchlanish drenaji - bu uyqu rejimida iste'molni 1 mA ga oshiradigan qo'shimcha rezistor (bu barcha komponentlarni o'z ichiga oladi).

Qurilmaning uyqu va uyg'onish rejimida aniq sarfini hisoblash formulasi:

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

Ion = 13mA

Bu asosan RF433 MGts uzatgichidan keladi:

Transmitter:

Ishlash kuchlanishi: maksimal 3V - 12V Quvvat iste'moli 12V Ish oqimi: maksimal 40mA dan kam va minimal 9mResonans rejimi:

Uyqu = 1mA

Agar fotorezistor bo'lmasa, ancha past bo'ladi.

Trunon vaqti Ton = 250 mS = 0,25s

Kutish vaqti Tsleep = 5 min = 300s

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

Iavg = (0,25s*13mA + 300s*1mA) / (0,25s + 300s)

Ivg = 1,26mA

Pavg = VxIavg = 5Vx1.26mA = 6 mVt

Nazariy

Batareya quvvati = 22000mVt/6mVt = 3666 soat = taxminan 152 kun

Haqiqiy

Batareya quvvati = 800mVt/6mVt = 133 soat = taxminan 5,5 kun

Garchi bular men ishlatgan UltraFire seriyali bo'lsa ham, quyosh paneli yoki 1 mA kam sarflanmagan holda, bu loyiha uzoq davom etmasligini ko'rishingiz mumkin edi.

Bekatni qurib, izohlarga o'z topilmalaringiz va hisob -kitoblaringizni yozing, men maqolani yangilayman. Men har xil MCU va konvertorlarni kuchaytirish natijalarini qadrlayman.

3 -qadam: Muvaffaqiyatli ob -havo stantsiyasini qurish

Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish
Muvaffaqiyatli ob -havo stantsiyasini qurish

Garchi bu birinchi muvaffaqiyatli versiya bo'lsa -da, u rasmlarda biroz kamchiliklarga ega va men ularni qayta tiklay olmayman, chunki stansiyalar allaqachon joylashtirilgan. Rasmda ko'rsatilgan ikkita kuchlanishni kuchaytirgichni yozish vaqtida aeroportalash va boshqa ilovalar uchun olish mumkin. Men o'z stantsiyamni qayta loyihalashtirganimda, men kichikroq va samaraliroq kuchlanishli platani olishni o'ylardim, lekin o'lchamining kichikligi, bu uning yanada samaraliroq ekanligini anglatmaydi.

Rasmdagi indikatori bo'lmagan yangi kichik modul 3 mA (*FAIL*) ni o'zi to'kdi, shuning uchun men eski taxtamda qoldim:

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

Yozish paytida bu modul hali ham Ebayda 99 foizga sotiladi, lekin agar siz boshqa kuchaytirgichdan foydalanishga qaror qilsangiz, har doim kutish rejimidagi quvvat sarfini tekshiring. Yaxshi sifatli kuchaytirgich bilan u meniki (0,01 mA) dan oshmasligi kerak, lekin bortdagi kichik LEDni lehimlash kerak edi.

4 -qadam: Uskuna ro'yxati

Uskunalar ro'yxati
Uskunalar ro'yxati
  • 18650 6000mAh himoyalangan Li-ion qayta zaryadlanuvchi batareya o'rnatilgan himoya paneli
  • Bootloader bilan Atmega 328P16M 5V
  • Adafruit DC Boarduino (Arduino bilan mos) to'plami (w/ATmega328) <Agar siz kelajakda yalang'och loyihalarni amalga oshirayotgan bo'lsangiz, bu yaxshi sarmoya bo'ladi.
  • Fotosuratga sezgir rezistorli fotorezistorli optorezistor 5 mm GL5539
  • 1A 1000V diodli 1N4007 IN4007 DO-41 rektifikatorli diodlar
  • PFM Control DC-DC USB 0.9V-5V to 5V DC Boost Step-up Power Supply Module
  • 1.6W 5.5V 266mA mini quyosh panelli modul tizimi epoksi hujayrali zaryadlovchi DIY
  • TP405 5V Mini USB 1A Lityum Batareyani zaryadlovchi karta zaryadlovchi moduli
  • Arduino/ARM/MC masofadan boshqarish pulti uchun 433 MGts chastotali RF uzatuvchi va qabul qiluvchi aloqa to'plami
  • IP65 kalit himoyachisi ulanish qutisi 150x110x70 mm tashqi suv o'tkazmaydigan korpus
  • Arduino uchun yangi DHT22 harorat va nisbiy namlik sensori moduli
  • 1x220 Ohm, 2x10KOhm, 1xLED, 1xMini kaliti, 1x1N4007diod
  • Adafruit 16 MGts keramik rezonator / osilator [ADA1873]
  • Qabul qilgich stantsiyasi uchun Arduino UNO/Mega va boshqalar + Raspberry PI 1/2/3
  • Shaffof akril plastik quti (ixtiyoriy)

Siz bularning barchasini Ebay -da topishingiz mumkin, men hech qanday sotuvchilarni o'z sahifalariga havola qilib targ'ib qilmoqchi emasman va havolalar kelajakda baribir o'lib ketadi.

Uskunalar ro'yxati uchun eslatmalar:

Agar siz biron bir tarzda Atmega -ni g'isht bilan g'isht qilsangiz, ulardan ko'pini sotib olasiz, xuddi shu narsa kuchlanish kuchaytirgichi va quyosh zaryadini boshqarish moslamasi uchun ham amal qiladi.

Quyosh zaryadlovchi qurilmasida ikkita kichik rangli LED mavjud, ular faqat quyosh zaryad olganda yoqiladi va ko'rsatiladi (qizil-> zaryadlash, ko'k-> to'liq zaryadlangan holatlar). Bular ham sotilmagan bo'lishi mumkin. Aksincha, u zaryad olayotganda batareyaga biroz ko'proq qo'shimcha sharbat beradi.

Ko'rib turganingizdek, mening ro'yxatimda batareya ushlagichlari yo'q. Nima uchun? Chunki ular ishonchsizdir. Menda batareya ushlagichidan chiqib ketgan va aloqani uzgan holatlar ko'p bo'lgan. Ayniqsa, agar sizning dasturingiz meniki kabi yuqori idishga o'rnatilgan bo'lsa, har qanday og'ir ob -havo sharoitida ochiq. Men hatto batareyani ushlagichga 2 ta fermuar bilan bog'ladim va u hali ham chiqib ketishga muvaffaq bo'ldi. Buni qilmang, faqat batareyadan tashqi qoplamani olib tashlang va simlarni to'g'ridan -to'g'ri batareyaning pastki qismiga lehimlang, uning ichida ortiqcha zaryaddan himoya qilish davri bor (himoyani chetlab o'tmang). Batareya ushlagichidan faqat batareyani qurilmada ushlab turish uchun foydalanish mumkin.

TP405 5V Mini USB 1A lityum batareyali zaryadlovchi karta: afsuski, bu taxtada quyosh panelining teskari tok himoyasi mavjud emas, buning uchun siz quyosh panelining bir oyog'i va zaryadlovchi devori orasiga tokni to'xtatish uchun yana 1 diod qo'yish kerak bo'ladi. kechalari quyosh paneliga qaytadi.

5 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Bu taxtada nisbatan kam komponentlar bor va doskadagi markerlar juda oddiy.

Atmega328P -ni noto'g'ri joylashtirganingizga ishonch hosil qiling (bu chipni qizdirishi va g'ishtlashi, kuchlanish kuchaytirgichini ham buzishi mumkin).

Ushbu sozlashda chip pastga qaraydi (PIN -kodli kichik U teshigi). Boshqa barcha komponentlar aniq bo'lishi kerak.

LDR uchun himoyalangan kabeldan foydalaning (masalan: CDromdan audio kabel yaxshi ishlaydi). Ba'zi hollarda (ko'p haftalik testlar davomida) bu radio signal uzatilishiga xalaqit berayotgani ma'lum bo'ldi. Bu xatolarni tuzatish qiyin bo'lgan xatolardan biri edi, shuning uchun agar siz muammoga duch kelishni xohlamasangiz, ekranning kabelidan foydalaning, hikoyaning oxiri.

LED: qutining pastki qismidagi LED dastlab chiquvchi radio uzatilganda yonib -o'chish uchun qo'shilgan edi, lekin keyinchalik men uni kuch sarflash deb hisobladim va u yuklash jarayonida atigi 3 marta yonadi.

TP - umumiy zanjir uchun oqimni o'lchash uchun sinov nuqtasi.

DHT22: Arzon DHT11 sotib olmang, salbiy DHT22 ni olish uchun 50 sent ko'proq sarflang, u ham salbiy haroratni o'lchay oladi.

6 -qadam: Koson dizayni

Koson dizayni
Koson dizayni
Koson dizayni
Koson dizayni
Koson dizayni
Koson dizayni

Bu biroz ortiqcha bo'lsa -da, DHT22 harorat sensori joyida ushlab turish uchun 3D bosilgan kub (weather_cube) qilingan. Kub IP -qutining pastki qismiga yopishtirilgan bo'lib, havo sensorga yetib borishi uchun faqat 1 teshikdan iborat. Men teshikka asalarilar, ari va boshqa kichik chivinlarga qarshi to'r qo'shdim.

Tashqi qutini ixtiyoriy ravishda stantsiyani suv o'tkazmaydigan qilib qo'yish mumkin.

1 ta foydali xususiyat uchun fikr: qutining yuqori qismiga 1-2 sm uzunlikdagi katta metall plastinka qo'shilishi, yozda quyoshdan soyani beradi, lekin bu bizning quyosh nurini paneldan olib tashlashi mumkin. Siz panel va qutini ajratib turadigan dizaynni o'ylab topishingiz mumkin (paneli quyoshda, qutini soyada qoldiring).

Rasmlarda: 1 yildan keyin ish joyidan olib tashlangan stantsiyalardan biri, batareya quvvati 3,9 V ga teng, qutining hech bir joyida suv shikastlanmagan, lekin men kubning pastki qismiga yopishtirilgan to'r yirtilgan. Stansiyaga xizmat ko'rsatilishi kerak bo'lgan sabab - bu LDR ulagichidagi ulanish xatosi, garchi o'tish kabeli hali ham joyida ko'rinsa -da, aloqa uzilgan, shuning uchun pin ba'zida yomon LDR analog o'qilishini ta'minlaydi. Taklif: agar siz standart kompyuter o'tish kabellaridan foydalansangiz, buning oldini olish uchun stansiya to'liq ishlagandan so'ng, ularni hotglue bilan yopishtiring.

7 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Dastur kodiga 3 ta tashqi kutubxona kerak bo'ladi (LowPower, DHT, VirtualWire). So'nggi paytlarda ulardan ba'zilarini Internetda osongina topish muammosi bor edi, shuning uchun ularni alohida ZIP faylga biriktirdim. Linux/Windows operatsion tizimidan qat'i nazar, Arduino IDE kutubxonasi papkasini toping va o'sha erda chiqarib oling.

Shuni esda tutingki, men DHT11 -ni sotib olmaslikni maslahat bergan bo'lsam ham, agar siz noto'g'ri DHT sensoridan foydalansangiz, dastur boshlang'ich bo'limining boshida abadiy to'xtab qoladi (siz hatto ishga tushirish chiroqining 3 marta miltillashini ham ko'rmaysiz).

Asosiy tsikl kodi juda oddiy, avval u atrof -muhit qiymatlarini (harorat, issiqlik indeksi, namlik, quyosh) o'qiydi, radio orqali yuboradi, so'ng kam quvvatli kutubxonadan foydalanib Arduino -ni 5 daqiqaga uxlatadi.

Men shuni aniqladimki, radio tezligining pasayishi radio uzatish barqarorligini oshiradi. Stantsiya juda oz miqdordagi ma'lumotlarni yuboradi, 300 bps etarli. Shuni ham unutmangki, transmitter faqat taxminan ishlaydi. 4.8V, kelajakda 3.3V versiyasi bu uzatish sifatining yomonlashishiga olib kelishi mumkin (ma'lumotlarni devor orqali yuborish va boshqa to'siqlar). Men Raspberry PI 2 -ga biriktirilgan Arduino Mega -dan foydalanib, Mega -ni PI -dan quvvatlantiraman, men hech qanday uzatma olmaganman. Yechim Mega -ni alohida 12V tashqi quvvat manbai bilan ta'minlash edi.

8 -qadam: 2 -versiya (ESP32 ga asoslangan)

2 -versiya (ESP32 ga asoslangan)
2 -versiya (ESP32 ga asoslangan)
2 -versiya (ESP32 ga asoslangan)
2 -versiya (ESP32 ga asoslangan)
2 -versiya (ESP32 ga asoslangan)
2 -versiya (ESP32 ga asoslangan)

Buzilishi mumkin bo'lgan hamma narsa eski Murfidan iqtibos keltirish uchun buziladi va yillar o'tib, bekatlar sirli yo'llarda muvaffaqiyatsizlikka uchraydi. Biri o'n minglab quyosh ma'lumotlarini yuborishni boshladi, chunki buning iloji yo'q: Arduino platasida 6 kanalli (Mini va Nanoda 8 ta kanal, Mega-da 16 ta), raqamli konvertorga 10 bitli analog mavjud. Bu shuni anglatadiki, u 0 dan 5 voltgacha bo'lgan kirish kuchlanishlarini 0 dan 1023 gacha bo'lgan tamsayılarga moslashtiradi. Shunday qilib, radio, LDR -ni almashtirgandan va Atmega 328P -ni bir necha bor qayta dasturlashdan keyin men taslim bo'ldim va yangilik vaqti keldi deb qaror qildim. Keling, ESP32 ga o'tamiz.

Men ishlatgan taxta: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wi -Fi va Bluetooth kartasi Rev1 MicroPython 4MB FLASH

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

ESP-32 mikrokontroller

Ishlash kuchlanishi 3.3V Raqamli I/U pinlari 19 Analog kirish pinlari 6 Soat tezligi (Maks) 240Mhz Flash 4M bayt Uzunligi 5mm Kengligi 2.54mm Og'irligi 4g

Rasmda farqli o'laroq, LOLIN logotipi yo'q (Xitoydan qalbaki). Mening birinchi yoqimli ajablanib, taxtada bosilgan pinout Arduino pinout bilan mos kelishi edi! Men juda ko'p noma'lum taxtalar bilan shug'ullanganimdan so'ng, men kun bo'yi charchab, pinouts izlashga majbur bo'ldim, oxir -oqibat, pinout to'g'ri oldinga siljigan WoW!

Biroq, bu erda hikoyaning qorong'u tomoni bor:

Dastlab, men LDRni A15 piniga uladim, bu 12 -pin. Keyin menda 4095 o'qish bor (bu ESP32 -dagi AnlogRead bilan olishingiz mumkin), bu meni yong'oqqa aylantirdi, chunki stantsiyani qayta tiklashimning asosiy sababi eski LDR o'qishlari edi (DHT hali ham yaxshi ishlaydi)). Shunday qilib, shunday bo'ladi:

Esp 32 ikkita 12 bitli ACD registrlarini birlashtiradi. ADC1 GPIOs 32-39 ga biriktirilgan 8 ta kanal va ADC2 10 ta kanalni boshqa pimlarga ulaydi. Gap shundaki, ESP32 Wi -Fi funktsiyalarini boshqarish uchun ADC2 -ni ishlatadi, shuning uchun agar siz Wi -Fi -dan foydalansangiz, bu registrdan foydalana olmaysiz. ADC drayveri API ADC1 (8 kanal, GPIO 32 - 39 ga ulangan) va ADC2 (10 kanal, GPIO 0, 2, 4, 12 - 15 va 25 - 27 ga biriktirilgan) ni qo'llab -quvvatlaydi. Biroq, ADC2 -ni qo'llashda ba'zi cheklovlar mavjud:

ADC2 Wi-Fi drayveri tomonidan ishlatiladi. Shuning uchun, dastur ADC2-ni faqat Wi-Fi drayveri ishga tushmagan paytda ishlatishi mumkin. ADC2 pimlarining bir qismi qisqichlar sifatida ishlatiladi (GPIO 0, 2, 15), shuning uchun uni erkin ishlatish mumkin emas. Quyidagi rasmiy ishlab chiqish to'plamlarida shunday bo'ladi:

Shunday qilib, LDRni 12 -pindan A0 -ga ulash, bu VP hamma narsani hal qildi, lekin men tushunmayapman, nega ular ADC2 pinlarini ishlab chiqaruvchilar uchun mavjud deb hisoblaydilar. Qanchadan -qancha sevimli mashg'ulotchi buni tushunguncha ko'p vaqtini behuda sarflagan? Hech bo'lmaganda, ishlatilmaydigan pimlarni qizil yoki biror narsa bilan belgilang yoki yo'riqnomada umuman aytmang, shuning uchun boshqa ishlab chiqaruvchilar ular haqida, agar ular chindan ham kerak bo'lsa, bilib olishlari mumkin. ESP32 -ning butun maqsadi - uni WIFI -dan foydalanish, hamma uni WIFI -dan foydalanadi.

Arduino IDE-ni ushbu taxtaga qanday o'rnatish yaxshi boshlandi:

Men kodni bu erga qo'ygan bo'lsam -da, yana bir bor ketadi:

Bu kod Weemos LOLIN 32 dan boshqa ESP32 modellari uchun tuzilmasligi mumkin!

O'rnatish sozlamalari: -Yuklab olish/ketma -ketlikni ishlating: 115200 -CPU/ram: 240 MGts dan foydalaning (Wi -Fi | BT) -Fleshli chastotadan foydalaning: 80 MGts

Tarmoqda ESP32 -ga asoslangan ob -havo stantsiyalari bor, ular mening 1 -versiyamga qaraganda yalang'och chip bilan taqqoslaganda ancha osonroq, chunki ularni sozlash osonroq, dasturchiga qurilmani usb -ga ulab, dasturlash kerak emas. chuqur uyqu rejimi batareyadan uzoq vaqt ishlashda juda yaxshi. Men bu loyihada bir nechta joylarni ta'kidlaganimdek, eng muhim narsa - quvvat sarfi va joriy (soxta) batareya va kichik quyosh paneli bilan kutish rejimida. Haqiqatan ham, kuch 1-2 mA dan oshmaydi, aks holda loyiha uzoq vaqt davomida o'zini saqlab qololmaydi.

Chuqur uyqu rejimi e'lon qilinganidek ishlashi yana yoqimli ajablanib bo'ldi. Chuqur uyqu paytida oqim shu qadar past ediki, mening arzon multimetrim uni hatto o'lchay olmasdi (men uchun ishlaydi).

Ma'lumotni jo'natish paytida oqim 80 mA atrofida edi (bu Atmega 328P uyg'ongan va uzatilgan vaqtdan 5 barobar ko'p), lekin unutmangki, V1 bilan LDRda uyqu rejimida o'rtacha 1mA quvvat oqimi bor edi (u ham yorug'lik darajasiga bog'liq edi va 0,5mA - 1mA) ga o'tdi.

UltraFire batareyasi buzilganligi sababli, agar siz bir xil batareyadan foydalansangiz, quyidagilarni kutishingiz mumkin:

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

Iavg = (2s*80mA + 300s*0,01mA) / (2s + 300s) Iavg = 0,5mA

Pavg = VxIavg = 5Vx0,5mA = 2,5 mVt

Nazariy

Batareya muddati = 22000mVt/2,5mVt = 8800 soat = taxminan 366 kun

Haqiqiy

Batareya muddati = 800mVt/2,5mVt = 320 soat = taxminan 13 kun

Vaqtni aniq o'lchash uchun menda imkoniyat yo'q edi, lekin mening sozlamalarim bilan u 2 soniya atrofida tugaydi.

Men tushdan keyin hamma narsani maxsus kodlashda o'tkazishni xohlamadim, shuning uchun ma'lumotlarni saqlash uchun nima qilishlarini ko'rish uchun ESP32 ga asoslangan Instructables -dan boshqa ob -havo stantsiyalarini izladim. Afsuski, ular ob -havo buluti kabi moslashuvchan va cheklangan saytlardan foydalanayotganini payqadi. Men "bulut" ning muxlisi emasman va ularning kodi uzoq vaqtdan beri buzilgan, chunki sayt o'z API -ni o'zgartirdi, men 10 daqiqa vaqtimni o'zimning shaxsiy qarorimni qabul qildim, chunki bu o'ylaganchalik qiyin emas. Qani boshladik!

Birinchidan, ushbu loyiha uchun alohida elektron rasm yo'q, chunki u V1 bilan bir xil komponentlardan foydalanadi (uzrli non paneli rasmida lehimlangani uchun uzr), hamma narsa 3,3 V dan farq qiladi. DHT VCC -ga ulandi, LDR 10k bilan pastga tushdi. 18650 ta batareyalar bilan ko'rishim mumkin bo'lgan muammo, mening xitoycha soxta (6500 mAch ultra quyoshli yong'in: D), ular tushirish egri chizig'ini 4.1V yangi yoshdan boshlab, hujayra shikastlanishini to'xtatish uchun uzilish sxemasi ishga tushguncha davom etishidir. omadli bo'lganlar). Bu biz uchun 3.3V kirish sifatida yaxshi emas. Ushbu LOLIN kartasida lityum batareya ulagichi va zaryadlovchi sxemasi mavjud bo'lsa -da, men bu loyihada eski stansiyadan qo'limdan kelganini yangilamoqchi edim, shuning uchun 18650 yilgi eski qurilmada siz bu o'rnatilgan zaryadlovchidan foydalana olmaysiz. Yechim juda oddiy edi: men eski kuchlanish kuchaytirgichidan 5V ga lehimli mikro USB kabelini kesib tashladim va voila muammosi hal qilindi, chunki microUSB platasida regulyator bor.

Eski batareyada 3.7V -> 5V ga ko'tarilgan eski va yangi versiya o'rtasidagi farq 5V -> ardu 5Vda ishlaydi -> barcha komponentlar 5Vda ishlaydi.

Yangisida: batareya 3.7V -> 5V ga ko'tariladi -> ESP32 -dagi reg regulyatori orqali boshqariladi -> barcha komponentlar 3.3Vda ishlaydi.

Dasturiy ta'minot bo'yicha bizga boshqa DHT kutubxonasi kerak bo'ladi, Arduino DHT ESP bilan mos kelmaydi. Bizga kerak bo'lgan narsa DHT ESP deb nomlanadi.

Men kodni DHT misolida, bu kod taqdim eta boshladim. Kodning ishlashi quyidagicha:

1, DHT + Quyosh ma'lumotlaridan fotoseldan ekologik ma'lumotlarni oling

2, Wi -Fi -ga statik IP -ga ulaning

3, ma'lumotlarni PHP skriptiga joylashtiring

4, 10 daqiqa uxlang

Ko'rib turganingizdek, men uyg'onish vaqtini mutlaqo kamaytirish uchun samaradorlik kodini sozladim, chunki u eski loyiha yoqilganidan 5 barobar ko'proq quvvat sarflaydi. Buni qanday qildim? Birinchidan, har qanday xato bo'lsa, getTemperature () funktsiyasi noto'g'ri bilan qaytadi (bu yana 10 daqiqa uyqu degan ma'noni anglatadi). Bu DHT sensorini ishga tushirish mumkin emas yoki Wi -Fi ulanmagan bo'lishi mumkin. Wi -Fi assotsiatsiyasini abadiy sinab ko'rish uchun odatdagi while () tsikli ham o'chirildi, lekin u erda 1 soniya kechikish bo'lishi kerak, aks holda u har doim ulanmaydi va bu AP turiga, yuklanish va hokazolarga bog'liq. sodir bo'ladi, 0,5 sekundda menda nomuvofiq xatti -harakatlar bor edi (ba'zida u ulana olmasdi). Agar kimdir buni eng yaxshi usulini bilsa, uni sharhlarda qoldiring. Faqat DHT ma'lumotlari o'qilganda va Wi -Fi ulanishi tugagach, u ma'lumotlarni veb -serverdagi skriptga joylashtirishga harakat qiladi. Serial.println () kabi barcha vaqtni bekor qilish funktsiyalari normal ish rejimida o'chirilgan. Server sifatida men DNS -ni keraksiz qidirishni oldini olish uchun IP -dan foydalanaman, mening kodimda standart shlyuz va dns -server ham 0.0.0.0 ga o'rnatiladi.

Nima uchun o'z API -ni yaratish juda qiyin ekanligini tushunmayapman:

sprintf (javob, "temp =%d & hum =%d & hi =%d & sol =%d", temp, hum, salom, sol);

int httpResponseCode = http. POST (javob);

Siz bu kichik php -kodni har qanday malina pi ga qo'yasiz va siz telemetriya asosida fanlarni yoqish yoki agar qorong'i tushsa chiroqlarni yoqish kabi tizim () vazifalarini darhol bajarishingiz mumkin.

Kod haqida ba'zi eslatmalar:

WiFi.config (staticIP, shlyuz, pastki tarmoq, dns); // WIFI qanday ahmoqona ishlay boshlagandan keyin bo'lishi kerak …

WiFi rejimi (WIFI_STA); // Aks holda, u kiruvchi APni ham yaratadi

Ha, endi bilasiz. Shuningdek, IP -konfiguratsiyalarining tartibi platformalar orqali o'zgarishi mumkin, men avval shlyuz va pastki tarmoq qiymatlari almashtirilgan boshqa misollarni sinab ko'rdim. Nima uchun statik IP -ni o'rnatish kerak? Ma'lumki, agar sizning tarmog'ingizda isc dhcpd ishlaydigan Linux serveri kabi maxsus quti bo'lsa, ESP uyg'onganidan va DHCP -dan IP -ni olgandan keyin yuz millionli jurnal yozuvlari kerak bo'lmaydi. Odatda marshrutizatorlar assotsiatsiyalarni qayd qilmaydi, shuning uchun ular ko'rinmaydi. Bu quvvatni tejash narxi.

Sifatsiz batareya tufayli V2 hech qachon o'zini ushlab tura olmagan va men uni adapterga qo'yganman, shuning uchun agar siz V1 yoki V2 ni qurmoqchi bo'lsangiz, yuqorida aytilgan batareyani sotib olmang, batareyalar bo'yicha o'z tadqiqotingizni o'tkazing (har qanday 18650). Ebayda 2000mAh dan ortiq reklama qilinadigan imkoniyat - bu katta ehtimollik bilan aldash).

Tavsiya: