Obsah:

Prenosná meteorologická stanica pre pozorovateľov nočnej oblohy: 7 krokov (s obrázkami)
Prenosná meteorologická stanica pre pozorovateľov nočnej oblohy: 7 krokov (s obrázkami)

Video: Prenosná meteorologická stanica pre pozorovateľov nočnej oblohy: 7 krokov (s obrázkami)

Video: Prenosná meteorologická stanica pre pozorovateľov nočnej oblohy: 7 krokov (s obrázkami)
Video: Meteorologická stanica (využitie kryštalizácie na predpovedanie počasia) 2024, Júl
Anonim
Prenosná meteorologická stanica pre pozorovateľov nočnej oblohy
Prenosná meteorologická stanica pre pozorovateľov nočnej oblohy

Svetelné znečistenie je jedným z mnohých problémov na svete. Na vyriešenie tohto problému potrebujeme vedieť, ako veľmi je nočná obloha znečistená umelým svetlom. Mnoho študentov s učiteľmi na svete sa pokúša zmerať svetelné znečistenie drahými senzormi. Rozhodol som sa zmeniť svoj prenosný luxmeter (pre ďalšie informácie v predchádzajúcom návode na projekt Portable Luxmeter s pokynmi) na meteorologickú stanicu so senzorom TSL2591. Tento senzor je dostatočne citlivý na meranie nočného znečistenia. Tiež pridávam HTU21D na meranie teploty a vlhkosti.

Krok 1: Čo je nočné znečistenie a ako sa meria

Čo je nočné znečistenie a ako sa meria
Čo je nočné znečistenie a ako sa meria

Nočné znečistenie je svetlo z lámp, automobilov, domov, obrovských LCD panelov v meste a každého svetla vyrobeného ľuďmi. To svetlo volá umelé. Pre pozorovateľov je umelé svetlo hlavným problémom vidieť hviezdy z mesta a musia ísť mimo mesto. Pre človeka je vysoké svetelné znečistenie škodlivé. A tiež pre stromy, trávu a zvieratá.

Na kontrolu svetelného znečistenia vášho miesta tu môžete vidieť mapu svetelného znečistenia

Je to len model a skutočné hodnoty sa môžu líšiť. Preto som vytvoril ten luxmeter.

Na meranie svetelného znečistenia meriam iba lux a počítam magnitúdu/ arsec2.

Môžem vypočítať od luxov po kandelu na metre štvorcové:

1 cd/m2 = 1 lux

Magnitúda na štvorcový arcsekunda (mag/arcsec2) opisuje pozadie nočnej oblohy (nazýva sa to povrchový jas).

Viac na wiki: Jas povrchu

Na výpočet cd/m2 na mag/arcsec2 je vzorec:

[hodnota v mag/arcsec2] = Log10 ([hodnota v cd/m2]/108000)/-0,4

unihedron.com/projects/darksky/magconv.php

Krok 2: kusovník

BOM
BOM

Na tento projekt potrebujete:

1. WEMOS D1 Mini alebo akýkoľvek mikrokontrolér

(Používam wemos, pretože je najmenší, s USB portom môžete vyskúšať Arduino Nano)

WEMOS D1 MINI (Yanwen Economic Air Mail)

WEMOS D1 MINI (štandardná doprava AliExpress)

WEMOS D1 MINI 10 ks (letecká pošta registrovaná v Číne, poštovné zadarmo)

usb kábel na programovanie a nahrávanie kódu do wemos

2. Senzor TSL2591

TSL2591 (Yanwen Economic Air Mail)

TSL2591 (letecká pošta registrovaná v Číne)

TSL2591 (letecká pošta registrovaná v Číne)

3. Snímač teploty a vlhkosti HTU21D

HTU21D (super ekonomická Cainiao)

HTU21D (Yanwen Economic Air Mail - bezplatná doprava)

4. OLED displej 0,96 (128 x 64)

OLED displej

OLED displej

OLED displej

5. batéria 18650

Lítium -iónová batéria 18650

Lítium -iónová batéria 18650

držiak batérie 18650

6. Nabíjací modul TP4056

tp4056

tp4056

7. prepínacie tlačidlá alebo prepojovací mostík

swtich red dip

swtichers, veľa rôznych

8. breadboard a dupont káble

malý chlebník

súprava na chlieb

9. puzdro, tvorím z dreva + páska

cervena Paska

3D tlačiareň Prusa, dúfam, že vyrobím puzdro z plastu: D

Krok 3: Okruh

Obvod
Obvod

Obvod je veľmi jednoduchý:

Pripojte všetky moduly i2c (TSL2591, OLED, HTU21D) k pinom SCL a SDA na wemos (SDA -> D2, SCL -> D1).

Napájajte ich 3,3 V od wemos.

Pripojte plus pól batérie k 5V pinu na wemos a batériu + pin na nabíjacom module tp4056 k plus konektoru na batérii.

Spojte všetky pozemky dohromady.

Krok 4: Senzor HTU21D

Senzor HTU21D
Senzor HTU21D

Kúpim nový snímač teploty, ktorý meria s presnosťou 0,3 ° C!

Čo by ste mali vedieť o tomto senzore (od sparkfun):

  • Používa rozhranie I2C
  • Typická presnosť vlhkosti ± 2%
  • Typická teplotná presnosť ± 0,3 ° C
  • Pracuje od 0 do 100% vlhkosti, ale tento senzor sa neodporúča do drsného prostredia, kde by mohol prísť do styku s vodou (napríklad dážď).
  • Senzor 3,3V - na obmedzenie 5V signálov použite radové prevodníky logickej úrovne alebo 10k odpory
  • Na zbernici I2C môže byť súčasne iba jeden snímač HTU21D

Moje zhrnutie: Je to dobrý senzor, pretože meria s presnosťou 0,3 ° C a oboje - teplotu aj vlhkosť. Klady sú interferencie I2C a nevýhody 3,3 V, ale to v mojom prípade nevadí.

Krok 5: TSL2591

TSL2591
TSL2591

Tento senzor je vhodný na meranie znečistenia nočnej oblohy, pretože je citlivý (až 188 mikro luxov!).

1. sú diódy s možnou ir a plnou mierou. Ja to nepoužívam

2. regulátor napätia od 5V do 3,3 V

Špecifikácia čipu (od adafruit):

  • Približná odozva ľudského oka
  • Extrémne široký dynamický rozsah 1 až 600 000 000 000 počíta
  • Rozsah Lux: citlivosť 188 uLux, až 88 000 Lux vstupných meraní.
  • Teplotný rozsah: -30 až 80 *C
  • Rozsah napätia: 3,3-5V do palubného regulátora
  • Rozhranie: I2C
  • Táto doska/čip používa 7-bitovú adresu I2C 0x29 (pevná)
  • Rozmery: 19 mm x 16 mm x 1 mm / 0,75 palca x 0,63 palca x 0,04 palca Hmotnosť: 1,1 g
  • 2 diódy na meranie infračerveného aj plného spektra

Zhrnutie:

188 uLux je perfektných, aj komunikácia I2C je jednoduchá. Možno je problém vyriešený adresou I2C (0x29). Tiež palubný regulátor je dobrý a je možné použiť snímač v zime (mráz).

Krok 6: Kód

Potrebujete tieto knižnice (pridávam ich do jedného súboru zip):

  • Adafruit-GFX-Knižnica-majster
  • adafruit_gfx_library_master
  • Adafruit_HTU21DF_Library-master
  • Adafruit_Sensor-master
  • Adafruit_TSL2591_Knihovna-predloha

Kód: môžete použiť ten môj, alebo si vytvoriť vlastný. Nezabudnite nastaviť maximálny čas integrácie (600 MS) a zisk na maximum (GAIN_MAX) na meranie nočnej oblohy.

Ak sa pokúsite použiť môj kód, stiahnite si súbor ino. Keď kopírujem z inštrukcie svoj kód, niečo nie je v poriadku s knižnicami

Načítavací obrázok mesiaca používam len pre zábavu. Môžete použiť ľubovoľné, stačí použiť túto stránku na získanie poľa:

javl.github.io/image2cpp/

//https://lastminuteengineers.com/oled-display-arduino-tutorial///https://javl.github.io/image2cpp/ // veľkosť mcd https://unihedron.com/projects/darksky/magconv.php… // HD44780 je ovládač pre znakové displeje z tekutých kryštálov (LCD). https://unihedron.com/projects/darksky/magconv.php… #include

#zahrnúť

#include #include #include "Adafruit_HTU21DF.h" #include "Adafruit_TSL2591.h" int counter; // OLED displej TWI adresa #define OLED_ADDR 0x3C Adafruit_SSD1306 display (-1); // - 1 pre zobrazenie reštartu s tlačidlom reštartu na arduino doske Adafruit_HTU21DF htu = Adafruit_HTU21DF (); Adafruit_TSL2591 tsl = Adafruit_TSL2591 (2591); // zadajte číslo pre identifikátor senzora (na neskoršie použitie) uint32_t lum; uint16_t ir, plný; int ulux; float lux; plaváková teplota; float rel_hum; float mag_arcsec2; // vizuálne mags/arcsecond² [hodnota v mag/arcsec2] = Log10 ([hodnota v cd/m2]/108000)/-0,4 // symboly // stupeň pre stupne Celzia konštantný znak bez znamienka PROGMEM = {0xe, 0x11, 0x11, 0x11, 0xe, 0x0, 0x0, 0x0}; // exponent 2 const unsigned char exponent PROGMEM = {0xe, 0x1b, 0x3, 0x6, 0xc, 0x18, 0x1f, 0x0}; // 'moon_logo', 128x64px const unsigned char intro PROGMEM = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x 0xff, 0xff, 0xff, 0xc0, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfd, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 0xfc, 0x07, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xf8, 0xff, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x80, 0x1f, 0xbe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xcc, 0xff, 0xff, 0x8f, 0ff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x, 0xc0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x, 0x, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x ff, 0xff, 0xf0, 0x00, 0x3f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x 0xe0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x60, 0xff, 0xff, 0xff, 0xff, 0xef, 0x, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc 0xff, 0xff, 0xff, 0xff, 0xe1, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x38, 0 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x48, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x3f, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xc0, 0xc4, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x60, 0x0f, 0xff, 0x 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe 0x43, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x5f, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x03,, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x01, 0xff, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0x0f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0xfc, 0x01, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x 00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x01, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00 0x7f, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x03, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; void setup () {// htu21d htu.begin (); // tsl2591 senzor_t senzor; tsl.getSensor (& senzor); tsl.setGain (TSL2591_GAIN_MAX); // MAX, HIGH MED, LOW, tsl.setTiming (TSL2591_INTEGRATIONTIME_600MS); // 100MS, 200 MS, 300MS, 400MS, 500MS, 600MS // nastavenie pre oled display display.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay (); display.display (); display.drawBitmap (0, 0, úvod, 128, 64, BIELY); display.display (); oneskorenie (1000); display.setTextSize (1); display.setTextColor (BIELY); display.setFont (& FreeSerif9pt7b); display.clearDisplay (); } prázdna slučka () {lux = 0; ulux = 0; mag_arcsec2 = 0; teplota = 0; rel_hum = 0; oneskorenie (100); lum = tsl.getFullLuminosity (); ir = lum >> 16; plný = lum & 0xFFFF; oneskorenie (100); lux = tsl.calculateLux (plný, ir); // intenzita svetla v microlux ulux = lux*1000000; if (ulux <0) {ulux = 0; } mag_arcsec2 = log10 (lux/108000)/-0,4; // (log ((ulux/108000)) /(-0.4) temp = htu.readTemperature (); rel_hum = htu.readHumidity (); display_values ();} void display_values () {//display.drawPixel(120, 50, BIELY); display.clearDisplay (); display.setCursor (1, 15); display.print (temp); display.drawBitmap (42, 2, stupeň, 8, 5, WHITE); display.setCursor (50, 15); display.print ("C"); display.setCursor (70, 15); display.print (rel_hum); display.setCursor (114, 15); display.print ("%"); display.drawLine (1, 20, 127, 20, BIELY); display.drawLine (67, 1, 67, 20, WHITE); display.setCursor (1, 35); display.print ("ulux ="); display.setCursor (50, 35); display.print (ulux); display.setCursor (1, 55); display.print ("mag/arsec"); display.drawBitmap (70, 45, exponent, 8, 8, WHITE); displej. setCursor (83, 55); display.print (mag_arcsec2); display.display ();}

Krok 7: Vnútri

Vnútri
Vnútri
Vnútri
Vnútri

Vytváram si vlastné puzdro a používam breadboard s dupontnými káblami, ako vidíte.

Na nabíjanie batérie pomocou USB kábla používam TP4056 (je potrebný prepínací prepínač).

Na zapnutie/vypnutie používam dip jumper.

Pre denné svetlo TSL2591 ukazuje 0 a mag/arcsec2 je nan.

Pre nočnú oblohu by TSL2591 mal zobrazovať od 0 do 1 000 000 mikroluxov (ulux) a zodpovedajúcich mag/arcsec2

(cca. 14 až 22 mag/arsec2).

Za fullMoon som nameral 50k ulux, čo je 0,05 luxu.

Odporúča: