Spisu treści:

Przenośna stacja pogodowa dla obserwatorów nocnego nieba: 7 kroków (ze zdjęciami)
Przenośna stacja pogodowa dla obserwatorów nocnego nieba: 7 kroków (ze zdjęciami)

Wideo: Przenośna stacja pogodowa dla obserwatorów nocnego nieba: 7 kroków (ze zdjęciami)

Wideo: Przenośna stacja pogodowa dla obserwatorów nocnego nieba: 7 kroków (ze zdjęciami)
Wideo: Czy można usłyszeć zorzę polarną? - AstroKawa 143 2024, Lipiec
Anonim
Przenośna stacja pogodowa dla obserwatorów nocnego nieba
Przenośna stacja pogodowa dla obserwatorów nocnego nieba

Zanieczyszczenie światłem to jeden z wielu problemów na świecie. Aby rozwiązać ten problem, musimy wiedzieć, jak bardzo nocne niebo jest zanieczyszczone sztucznym światłem. Wielu uczniów z nauczycielami na świecie próbuje mierzyć zanieczyszczenie światłem za pomocą drogich czujników. Zdecydowałem się zamienić swój przenośny luksomierz (więcej informacji w poprzednim projekcie instruktażowym Portable Luxmeter) na stację pogodową z czujnikiem TSL2591. Ten czujnik jest wystarczająco czuły, aby mierzyć zanieczyszczenie w nocy. Dodatkowo dodaję HTU21D do pomiaru temperatury i wilgotności.

Krok 1: Co to jest zanieczyszczenie nocne i jak je mierzy?

Co to jest zanieczyszczenie nocne i jak je mierzy?
Co to jest zanieczyszczenie nocne i jak je mierzy?

Zanieczyszczenie nocne to światło z lamp, samochodów, domów, ogromnych paneli LCD w mieście i każdego światła wykonanego przez człowieka. To światło nazywa się sztucznym. Dla obserwatorów głównym problemem w dostrzeżeniu gwiazd z miasta jest sztuczne światło, które muszą wyjść poza miasto. Dla człowieka duże zanieczyszczenie światłem jest szkodliwe. A także dla drzew, trawy i zwierząt.

Aby sprawdzić zanieczyszczenie światłem w swoim miejscu, możesz zobaczyć tutaj lightpollutionmap

To tylko model, a rzeczywiste wartości mogą się różnić. Dlatego stworzyłem ten luksomierz.

Do pomiaru zanieczyszczenia światłem mierzę tylko luksy i obliczam magnituda/arsec2.

Mogę obliczyć od luksów do kandeli na metry kwadratowe:

1 cd/m2 = 1 luks

Wielkość na sekundę kątową (mag/arcsec2) opisuje tło nocnego nieba (nazywa jasność powierzchniową).

Więcej na wiki: Jasność powierzchni

Do przeliczenia cd/m2 na mag/arcsec2 służy wzór:

[wartość w mag/arcsec2] = Log10([wartość w cd/m2]/108000)/-0,4

unihedron.com/projects/darksky/magconv.php

Krok 2: BOM

BOM
BOM

Do tego projektu potrzebujesz:

1. WEMOS D1 Mini lub dowolny mikrokontroler

(Używam wemos, bo jest najmniejszy, z portem usb można wypróbować Arduino Nano)

WEMOS D1 MINI (Yanwen Economic Air Mail)

WEMOS D1 MINI (standardowa wysyłka AliExpress)

WEMOS D1 MINI 10 sztuk (China Post Registered Air Mail-bezpłatna wysyłka)

kabel usb do programowania i wgrywania kodu do wemos

2. Czujnik TSL2591

TSL2591 (Yanwen Economic Air Mail)

TSL2591 (chińska poczta lotnicza zarejestrowana)

TSL2591 (chińska poczta lotnicza zarejestrowana)

3. Czujnik temperatury i wilgotności HTU21D

HTU21D (Cainiao Super Economy)

HTU21D (Yanwen Economic Air Mail - bezpłatna wysyłka)

4. Wyświetlacz OLED 0,96 (128 x 64)

Wyświetlacz OLED

Wyświetlacz OLED

Wyświetlacz OLED

5. 18650 bateria

18650 bateria litowo-jonowa

18650 bateria litowo-jonowa

uchwyt baterii 18650

6. Moduł ładujący TP4056

tp4056

tp4056

7. przełącznik przycisków lub zworka dip

swtich czerwony dip

przełączniki, wiele różnych

8. Kable do płytek stykowych i dupont

mała płytka do krojenia chleba

zestaw płytek do krojenia chleba

9. etui, tworzę z drewna + taśma

biurokracja

Drukarka 3D Prusa, mam nadzieję, że zrobię obudowę z plastiku:D

Krok 3: Obwód

Okrążenie
Okrążenie

Obwód jest dość prosty:

Podłącz wszystkie moduły i2c (TSL2591, OLED, HTU21D) do pinów SCL i SDA na wemos (SDA -> D2, SCL -> D1).

Zasil je 3,3 V z wemos.

Połącz biegun dodatni akumulatora z pinem 5V na wemos i pinem akumulatora na module ładującym tp4056 do bieguna dodatniego akumulatora.

Połącz wszystkie uziemienia razem.

Krok 4: Czujnik HTU21D

Czujnik HTU21D
Czujnik HTU21D

Kupię nowy czujnik temperatury, który mierzy z dokładnością 0,3°C !

Co powinieneś wiedzieć o tym czujniku (od sparkfun):

  • Wykorzystuje interfejs I2C
  • Typowa dokładność wilgotności ±2%
  • Typowa dokładność temperatury ±0,3 °C
  • Działa od 0 do 100% wilgotności, ale ten czujnik nie jest zalecany do trudnych warunków, w których może mieć kontakt z wodą (takich jak deszcz).
  • Czujnik 3.3V - użyj wbudowanych konwerterów poziomów logicznych lub rezystorów 10k, aby ograniczyć sygnały 5V
  • Na magistrali I2C może znajdować się jednocześnie tylko jeden czujnik HTU21D

Moje podsumowanie: to dobry czujnik, bo mierzy z dokładnością 0,3°C i zarówno temperaturę jak i wilgotność. Plusy to interferencja I2C, a minusy 3,3V, ale w moim przypadku to nie ma znaczenia.

Krok 5: TSL2591

TSL2591
TSL2591

Ten czujnik jest dobry do pomiaru zanieczyszczenia nocnego nieba ze względu na jego czułość (do 188 mikro luksów!).

1. to diody z możliwym ir i pełnym pomiarem. Nie używam tego.

2. regulator napięcia od 5V do 3,3V

Specyfikacje chipów (z adafruit):

  • Przybliżona odpowiedź ludzkiego oka
  • Niezwykle szeroki zakres dynamiki od 1 do 600 000 000 zliczeń
  • Zakres luksów: czułość 188 uLux, do 88 000 pomiarów wejściowych luksów.
  • Zakres temperatur: -30 do 80*C
  • Zakres napięcia: 3,3-5 V do wbudowanego regulatora
  • Interfejs: I2C
  • Ta płyta/układ wykorzystuje 7-bitowy adres I2C 0x29 (stały)
  • Wymiary: 19mm x 16mm x 1mm / 0,75" x 0,63" x.04"Waga: 1,1g
  • 2 diody do pomiaru zarówno - IR, jak i pełnego widma

Streszczenie:

188 uLux jest idealny, również komunikacja I2C jest prosta. Może problem da się naprawić adres I2C (0x29). Również na pokładzie regulator jest dobry i można go używać w zimie (mrozie).

Krok 6: Kod

Potrzebujesz tych bibliotek (dodaję je do jednego pliku zip):

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

Kod: możesz użyć mojego lub stworzyć własny. Nie zapomnij ustawić maksymalnego czasu integracji (600 MS) i wzmocnienia na maksimum (GAIN_MAX) dla pomiaru nocnego nieba.

Jeśli spróbujesz użyć mojego kodu, pobierz plik ino. Kiedy kopiuję z instructable mój kod, coś jest nie tak z bibliotekami

Używam ładującego się obrazu księżyca tylko dla zabawy. Możesz użyć dowolnego, po prostu użyj tej strony, aby uzyskać tablicę:

javl.github.io/image2cpp/

//https://lastminuteengineers.com/oled-display-arduino-tutorial///https://javl.github.io/image2cpp/ // mcd do wielkości https://unihedron.com/projects/darksky/magconv.php… // HD44780 to kontroler dla wyświetlaczy ciekłokrystalicznych (LCD) opartych na znakach. https://unihedron.com/projects/darksky/magconv.php… #include

#włączać

#include #include #include "Adafruit_HTU21DF.h" #include "Adafruit_TSL2591.h" licznik int; // wyświetlacz OLED adres TWI #define OLED_ADDR 0x3C Adafruit_SSD1306 display(-1); // - 1 dla wyświetlania restartu z przyciskiem restartu na płycie arduino Adafruit_HTU21DF htu = Adafruit_HTU21DF(); Adafruit_TSL2591 tsl = Adafruit_TSL2591(2591); // podaj liczbę dla identyfikatora czujnika (do późniejszego wykorzystania) uint32_t lum; uint16_t ir, pełny; int ulux; luks pływakowy; temp. pływaka; pływak rel_hum; pływak mag_arcsec2; // wizualne mags/sekunda łuku² [wartość w mag/arcsec2] = Log10([wartość w cd/m2]/108000)/-0,4 // symbole // stopień Celsjusza const unsigned char degree PROGMEM = { 0xe, 0x11, 0x11, 0x11, 0xe, 0x0, 0x0, 0x0 }; // wykładnik 2 const unsigned char wykładnik 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, 0 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0fff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0ff, 0xff, 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, 0xff, 0x80, 0x1f, 0xbe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xcc, 0xff, 0xff, 0x8fxff, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xc0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x, 0x, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 0xe0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x60, 0xff, 0xff, 0xff, 0xff, 0xefff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xe1, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0x 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0x, 0x38, 0x 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, 0ff, 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, 0xff, 0xff 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x 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, 0xff 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, 0xff, 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, 0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0x0f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0ff, 0xff,, 0xfc, 0x01, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xffx, 0xff,, 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, 0xff, 0 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x01, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x 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, 0x 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; void setup() { // htu21d htu.begin(); // tsl2591 czujnik_t czujnik; tsl.getSensor(&czujnik); tsl.setGain(TSL2591_GAIN_MAX); // MAX, WYSOKA ŚREDNIA, NISKA, tsl.setTiming(TSL2591_INTEGRATIONTIME_600MS); // 100MS, 200 MS, 300MS, 400MS, 500MS, 600MS // konfiguracja wyświetlacza OLED display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.display(); display.drawBitmap(0, 0, intro, 128, 64, BIAŁY); display.display(); opóźnienie (1000); display.setTextSize(1); display.setTextColor (BIAŁY); display.setFont(&FreeSerif9pt7b); display.clearDisplay(); } void loop() { luks = 0; ulux =0; mag_arcsec2=0; temp=0; rel_hum=0; opóźnienie (100); lum = tsl.getFullLuminosity(); ir = lum >> 16; pełny = lum & 0xFFFF; opóźnienie (100); luks = tsl.calculateLux(pełny, ir); // natężenie światła w mikroluxach ulux= luks*1000000; jeśli (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, BIAŁY); display.clearDisplay(); display.setCursor (1, 15); display.print(temp); display.drawBitmap(42, 2, degree, 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, WHITE); 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, wykładnik, 8, 8, WHITE); display. setCursor(83, 55); display.print(mag_arcsec2); display.display();}

Krok 7: Wewnątrz

Wewnątrz
Wewnątrz
Wewnątrz
Wewnątrz

Tworzę własną obudowę i używam płytki stykowej z kablami dupontowymi jak widać.

Używam TP4056 do ładowania akumulatora kablem USB (potrzebuję zworki swtich dip).

Do włączania/wyłączania używam zworki.

Dla światła dziennego TSL2591 pokazuje 0, a mag/arcsec2 to nan.

W przypadku nocnego nieba TSL2591 powinien pokazywać od 0 do 1000000 mikroluxów (ulux) i odpowiadające im mag/arcsec2

(ok. 14 do 22 mag/arsec2).

Dla fullMoon zmierzyłem 50k ulux, czyli 0,05 luksa.

Zalecana: