Obsah:

Přenosná meteorologická stanice pro pozorovatele noční oblohy: 7 kroků (s obrázky)
Přenosná meteorologická stanice pro pozorovatele noční oblohy: 7 kroků (s obrázky)

Video: Přenosná meteorologická stanice pro pozorovatele noční oblohy: 7 kroků (s obrázky)

Video: Přenosná meteorologická stanice pro pozorovatele noční oblohy: 7 kroků (s obrázky)
Video: PŘÍMÉ DŮKAZY O EXISTENCI MIMOZEMSKÉ CIVILIZACE(UFO) 2024, Červenec
Anonim
Přenosná meteorologická stanice pro pozorovatele noční oblohy
Přenosná meteorologická stanice pro pozorovatele noční oblohy

Světelné znečištění je jedním z mnoha problémů na světě. Abychom tento problém vyřešili, musíme vědět, jak moc je noční obloha znečištěna umělým světlem. Mnoho studentů s učiteli na světě se snaží změřit světelné znečištění drahými senzory. Rozhodl jsem se změnit svůj přenosný luxmetr (pro více informací zkontrolujte předchozí projekt instruktabilní Portable Luxmeter) na meteorologickou stanici se senzorem TSL2591. Tento senzor je dostatečně citlivý na měření nočního znečištění. Také přidávám HTU21D pro měření teploty a vlhkosti.

Krok 1: Co je to noční znečištění a jak se měří?

Co je noční znečištění a jak se měří?
Co je noční znečištění a jak se měří?

Noční znečištění je světlo z lamp, aut, domů, obrovských LCD panelů ve městě a každé světlo vyrobené člověkem. To světelné volání umělé. Pro pozorovatele je umělé světlo hlavním problémem vidět hvězdy z města a musí jít mimo město. Pro člověka je vysoké světelné znečištění škodlivé. A také pro stromy, trávu a zvířata.

Chcete -li zkontrolovat světelné znečištění vašeho místa, můžete zde vidět mapu světelného znečištění

Je to pouze model a skutečné hodnoty se mohou lišit. Proto jsem vytvořil ten luxmetr.

Pro měření světelného znečištění měřím pouze lux a počítám velikost/ arsec2.

Mohu vypočítat od luxů po kandelu na metry čtvereční:

1 cd/m2 = 1 lux

Velikost na čtvereční arcsekundu (mag/arcsec2) popisuje pozadí noční oblohy (nazývá se povrchový jas).

Více na wiki: Jas povrchu

Pro 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

Pro tento projekt potřebujete:

1. WEMOS D1 Mini nebo jakýkoli mikrokontrolér

(Používám wemos, protože je nejmenší, s USB portem můžete vyzkoušet Arduino Nano)

WEMOS D1 MINI (Yanwen Economic Air Mail)

WEMOS D1 MINI (standardní dodávka AliExpress)

WEMOS D1 MINI 10 ks (letecká pošta registrovaná v Číně - doprava zdarma)

usb kabel pro programování a nahrávání kódu do wemos

2. Senzor TSL2591

TSL2591 (Yanwen Economic Air Mail)

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

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

3. Snímač teploty a vlhkosti HTU21D

HTU21D (Cainiao Super Economy)

HTU21D (Yanwen Economic Air Mail - doprava zdarma)

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

OLED displej

OLED displej

OLED displej

5. 18650 baterie

18650 lithium -iontová baterie

18650 lithium -iontová baterie

držák baterie 18650

6. Nabíjecí modul TP4056

tp4056

tp4056

7. spínací tlačítka nebo propojovací můstek

swtich red dip

swtichers, mnoho různých

8. prkénko a dupontovací kabely

malé prkénko

sada na prkénko

9. pouzdro, tvořím ze dřeva + páska

červená páska

3D tiskárna Prusa, doufám, že vyrobím pouzdro z plastu: D

Krok 3: Okruh

Obvod
Obvod

Obvod je velmi jednoduchý:

Připojte všechny moduly i2c (TSL2591, OLED, HTU21D) k pinům SCL a SDA na wemos (SDA -> D2, SCL -> D1).

Napájejte je 3,3 V od wemos.

Připojte plusový pól baterie k 5V pinu na wemos a baterii + pin na nabíjecím modulu tp4056 ke plusovému pólu na baterii.

Propojte všechny pozemky dohromady.

Krok 4: Senzor HTU21D

Senzor HTU21D
Senzor HTU21D

Kupuji nový teplotní senzor, který měří s přesností 0,3 ° C!

Věci, které byste o tomto senzoru měli vědět (od Sparkfun):

  • Používá rozhraní I2C
  • Typická přesnost vlhkosti ± 2%
  • Typická teplotní přesnost ± 0,3 ° C
  • Funguje od 0 do 100% vlhkosti, ale tento senzor se nedoporučuje do drsných prostředí, kde by mohl přijít do styku s vodou (například déšť).
  • Senzor 3,3 V - použijte omezené logické převodníky úrovně nebo 10k odpory k omezení 5V signálů
  • Na sběrnici I2C může být současně umístěn pouze jeden snímač HTU21D

Moje shrnutí: je to dobrý senzor, protože měří s přesností 0,3 ° C a obojí - teplotu a vlhkost. Pro je rušení I2C a nevýhody 3,3 V, ale to v mém případě nevadí.

Krok 5: TSL2591

TSL2591
TSL2591

Tento senzor je vhodný pro měření znečištění noční oblohy, protože má citlivost (až 188 mikro luxů!).

1. jsou diody s možnou ir a plnou mírou. Nepoužívám to.

2. regulátor napětí od 5V do 3,3 V

Specifikace čipu (od adafruit):

  • Přibližná reakce lidského oka
  • Extrémně široký dynamický rozsah 1 až 600 000 000 000 se počítá
  • Rozsah Lux: citlivost 188 uLux, až 88 000 Lux vstupních měření.
  • Teplotní rozsah: -30 až 80 *C
  • Rozsah napětí: 3,3-5V do palubního regulátoru
  • Rozhraní: I2C
  • Tato deska/čip používá 7bitovou adresu I2C 0x29 (pevná)
  • Rozměry: 19 mm x 16 mm x 1 mm / 0,75 palce x 0,63 palce x 0,04 palce Hmotnost: 1,1 g
  • 2 diody pro měření infračerveného i plného spektra

Souhrn:

188 uLux je perfektní, také komunikace I2C je jednoduchá. Možná lze problém vyřešit I2C adresou (0x29). Také palubní regulátor je dobrý a je možné použít senzor v zimě (mráz).

Krok 6: Kód

Potřebujete tyto knihovny (přidávám je do jednoho souboru zip):

  • Adafruit-GFX-Library-master
  • adafruit_gfx_library_master
  • Adafruit_HTU21DF_Library-master
  • Adafruit_Sensor-master
  • Adafruit_TSL2591_Library-master

Kód: můžete použít můj, nebo si vytvořit vlastní. Pro měření noční oblohy nezapomeňte nastavit maximální integrační čas (600 MS) a zisk na maximum (GAIN_MAX).

Pokud se pokusíte použít můj kód, stáhněte si prosím soubor ino. Když kopíruji z instructable můj kód, něco není v pořádku s knihovnami

Načítání obrázku měsíce používám jen pro zábavu. Můžete použít libovolné, stačí použít tuto stránku pro získání pole:

javl.github.io/image2cpp/

//https://lastminuteengineers.com/oled-display-arduino-tutorial///https://javl.github.io/image2cpp/ // velikost mcd https://unihedron.com/projects/darksky/magconv.php… // HD44780 je řadič pro znakové displeje z tekutých krystalů (LCD). https://unihedron.com/projects/darksky/magconv.php… #include

#zahrnout

#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 pro zobrazení restartu tlačítkem restartu na arduino desce Adafruit_HTU21DF htu = Adafruit_HTU21DF (); Adafruit_TSL2591 tsl = Adafruit_TSL2591 (2591); // zadejte číslo pro identifikátor senzoru (pro pozdější použití) uint32_t lum; uint16_t ir, plný; int ulux; float lux; plovoucí teplota; float rel_hum; float mag_arcsec2; // vizuální mags/arcsecond² [hodnota v mag/arcsec2] = Log10 ([hodnota v cd/m2]/108000)/-0,4 // symboly // stupeň pro Celsius konstantní znak bez znaménka 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, 0x0, 0x, 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, 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, 0x0 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, 0xc0, 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, 0x, 0x, 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, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 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, 0x, 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, 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, 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, 0x 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}; neplatné nastavení () {// 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 // nastavení pro zobrazení oled displeje.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay (); display.display (); display.drawBitmap (0, 0, úvod, 128, 64, BÍLÁ); display.display (); zpoždění (1000); display.setTextSize (1); display.setTextColor (BÍLÁ); display.setFont (& FreeSerif9pt7b); display.clearDisplay (); } void loop () {lux = 0; ulux = 0; mag_arcsec2 = 0; teplota = 0; rel_hum = 0; zpoždění (100); lum = tsl.getFullLuminosity (); ir = lum >> 16; plný = lum & 0xFFFF; zpoždění (100); lux = tsl.calculateLux (plný, ir); // intenzita světla 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, BÍLÁ); 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, BÍLÁ); 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: Uvnitř

Uvnitř
Uvnitř
Uvnitř
Uvnitř

Vytvářím vlastní pouzdro a používám breadboard s dupontními kabely, jak vidíte.

Používám TP4056 k nabíjení baterie pomocí USB kabelu (je potřeba propojovací přepínač).

Pro zapnutí/vypnutí používám dip jumper.

Pro denní světlo ukazuje TSL2591 0 a mag/arcsec2 je nan.

Pro noční oblohu by měl TSL2591 ukazovat od 0 do 1 000 000 mikroluxů (ulux) a odpovídajících mag/arcsec2

(přibližně 14 až 22 mag/arsec2).

Pro fullMoon jsem naměřil 50k ulux, což je 0,05 luxu.

Doporučuje: