INHOUDSOPGAWE:

Draagbare weerstasie vir naghemelwaarnemers: 7 stappe (met foto's)
Draagbare weerstasie vir naghemelwaarnemers: 7 stappe (met foto's)

Video: Draagbare weerstasie vir naghemelwaarnemers: 7 stappe (met foto's)

Video: Draagbare weerstasie vir naghemelwaarnemers: 7 stappe (met foto's)
Video: Avi Loeb: Bewustzijn, UAP's, Jacques Vallée 2024, November
Anonim
Draagbare weerstasie vir Night Sky -waarnemers
Draagbare weerstasie vir Night Sky -waarnemers

Ligbesoedeling is een van die vele probleme in die wêreld. Om die probleem op te los, moet ons weet hoeveel naghemel besoedel is met kunsmatige lig. Baie studente met onderwysers in die wêreld probeer om ligbesoedeling met duur sensors te meet. Ek het besluit om my draagbare luxmeter (vir meer inligting oor vorige instruksies projek Portable Luxmeter) te verander na weerstasie met TSL2591 sensor. Hierdie sensor is sensitief genoeg om nagbesoedeling te meet. Ek voeg ook HTU21D by vir temperatuur- en humiditeitsmaatreël.

Stap 1: Wat is nagbesoedeling en hoe word dit gemeet

Wat is nagbesoedeling en hoe meet dit
Wat is nagbesoedeling en hoe meet dit

Nagbesoedeling is lig deur lampe, motors, huise, groot LCD -panele in die stad en elke lig wat deur mense gemaak word. Die ligte oproep kunsmatig. Vir waarnemers is kunsmatige lig die grootste probleem om sterre uit die stad te sien, en hulle moet buite die stad gaan. Vir mense is besoedeling van hoë lig skadelik. En ook vir bome, gras en diere.

Om die ligbesoedeling van u plek na te gaan, kan u die ligbesoedelingskaart hier sien

Dit is slegs 'n model, en die werklike waardes kan wissel. Daarom het ek die luxmeter geskep.

Om ligbesoedeling te meet, meet ek slegs lux en bereken die grootte/ arsec2.

Ek kan van lux tot candela per suqare meter bereken:

1 cd/m2 = 1 lux

Grootte per vierkante boogsekonde (mag/arcsec2) beskryf die naghemel se agtergrond (dit noem oppervlakhelderheid).

Meer oor wiki: Oppervlak helderheid

Die formule vir die berekening van cd/m2 tot mag/arcsec2 is:

[waarde in mag/arcsec2] = Log10 ([waarde in cd/m2]/108000)/-0.4

unihedron.com/projects/darksky/magconv.php

Stap 2: BOM

BOM
BOM

Vir hierdie projek benodig u:

1. WEMOS D1 Mini of enige mikrobeheerder

(Ek gebruik wemos, want dit is die kleinste, met 'n usb -poort, kan u Arduino Nano probeer)

WEMOS D1 MINI (Yanwen Economic Air Mail)

WEMOS D1 MINI (standaardversending van AliExpress)

WEMOS D1 MINI 10 stuks (China geregistreerde lugpos - gratis aflewering)

usb -kabel vir die programmering en oplaai van kode na wemos

2. TSL2591 Sensor

TSL2591 (Yanwen Economic Air Mail)

TSL2591 (China geregistreerde lugpos)

TSL2591 (China geregistreerde lugpos)

3. HTU21D temperatuur- en humiditeitsensor

HTU21D (Cainiao Super Economy)

HTU21D (Yanwen Economic Air Mail - gratis aflewering)

4. OLED -skerm 0,96 (128 x 64)

OLED -skerm

OLED -skerm

OLED -skerm

5. 18650 battery

18650 litium -ioonbattery

18650 litium -ioonbattery

battery 18650 houer

6. TP4056 laai module

tp4056

tp4056

7. skakel knoppies of dip trui

swtich rooi dip

swtichers, baie verskillende

8. broodbord en dupont kabels

klein broodbord

broodbordstel

9. geval, ek maak van hout + band

rompslomp

Prusa 3D -drukker, ek hoop dat ek 'n tas van plastiek sal doen: D

Stap 3: Skakel

Kring
Kring

Die kring is redelik eenvoudig:

Koppel alle i2c -modules (TSL2591, OLED, HTU21D) aan SCL- en SDA -penne op wemos (SDA -> D2, SCL -> D1).

Voed hulle met 3,3 V van wemos.

Koppel die plusterminal van die battery aan die 5V -pen op die wemos en die battery + die pin op die tp4056 -laadmodule met die plus -aansluiting op die battery.

Verbind alle gronde saam.

Stap 4: HTU21D -sensor

HTU21D -sensor
HTU21D -sensor

Ek koop 'n nuwe temperatuursensor, wat met 'n akkuraatheid van 0,3 ° C meet!

Dinge wat u moet weet oor hierdie sensor (van sparkfun):

  • Gebruik die I2C -koppelvlak
  • Tipiese humiditeitsnauwkeurigheid van ± 2%
  • Tipiese temperatuur akkuraatheid van ± 0,3 ° C
  • Werk van 0 tot 100% humiditeit, maar hierdie sensor word nie aanbeveel vir moeilike omgewings waar dit met water in aanraking kan kom nie (soos reën).
  • 3.3V sensor - gebruik inline logiese vlak omsetters of 10k weerstande om 5V seine te beperk
  • Slegs een HTU21D -sensor kan tegelyk op die I2C -bus woon

My opsomming: dit is 'n goeie sensor, want dit meet met akkuraatheid 0.3 ° C en beide - temperatuur en humiditeit. Voors is I2C -inmenging en nadele 3.3V, maar dit maak nie saak in my geval nie.

Stap 5: TSL2591

TSL2591
TSL2591

Hierdie sensor is goed om die besoedeling van die naghemel te meet as gevolg van sy sensitiwiteit (tot 188 mikro lux!).

1. is diodes met moontlike ir en volle maat. Ek gebruik dit nie.

2. spanningsreguleerder van 5V tot 3,3V

Skyfiespesifikasies (van adafruit):

  • Benader die reaksie van die menslike oog
  • Uiters wye dinamiese omvang 1 tot 600, 000, 000 tellings
  • Lux -reeks: 188 uLux -sensitiwiteit, tot 88.000 Lux -insetmetings.
  • Temperatuurbereik: -30 tot 80 *C
  • Spanningsbereik: 3.3-5V aan boordreguleerder
  • Koppelvlak: I2C
  • Hierdie bord/chip gebruik I2C 7-bis adres 0x29 (vas)
  • Afmetings: 19mm x 16mm x 1mm /.75 "x.63" x.04 "Gewig: 1.1g
  • 2 diodes om beide te meet - IR en volle spektrum

Opsomming:

188 uLux is perfek, ook I2C -kommunikasie is eenvoudig. Miskien kan die probleem I2C -adres (0x29) opgelos word. Aan boord is die reguleerder ook goed en moontlik om die sensor gedurende die winter (ryp) te gebruik.

Stap 6: Kode

U benodig hierdie biblioteke (ek voeg dit by een zip -lêer):

  • Adafruit-GFX-biblioteekmeester
  • adafruit_gfx_library_master
  • Adafruit_HTU21DF_Library-master
  • Adafruit_Sensor-meester
  • Adafruit_TSL2591_Library-master

Kode: u kan myne gebruik of eie skep. Moenie vergeet om die maksimum integrasietyd (600 MS) in te stel en die maksimum (GAIN_MAX) vir die naghemel te bereik nie.

Laai die ino -lêer af as u my kode probeer gebruik. As ek my kode van instruksies af kopieer, is daar iets fout met biblioteke

Ek gebruik die laai van die maan net vir die plesier. U kan enige gebruik, gebruik slegs hierdie bladsy om 'n skikking te kry:

javl.github.io/image2cpp/

//https://lastminuteengineers.com/oled-display-arduino-tutorial///https://javl.github.io/image2cpp/ // mcd tot grootte https://unihedron.com/projects/darksky/magconv.php… // Die HD44780 is 'n kontroleerder vir karaktergebaseerde vloeibare kristal-skerms (LCD's). https://unihedron.com/projects/darksky/magconv.php… #insluit

#insluit

#include #include #include "Adafruit_HTU21DF.h" #include "Adafruit_TSL2591.h" int counter; // OLED-vertoning TWI-adres #definieer OLED_ADDR 0x3C Adafruit_SSD1306-skerm (-1); // - 1 vir herbeginvertoning met herlaai -knoppie op arduino -bord Adafruit_HTU21DF htu = Adafruit_HTU21DF (); Adafruit_TSL2591 tsl = Adafruit_TSL2591 (2591); // gee 'n nommer in vir die sensor -identifiseerder (vir later gebruik) uint32_t lum; uint16_t ir, vol; int ulux; float lux; vlot temp; dryf rel_hum; float mag_arcsec2; // visuele mags/boogsekonde² [waarde in mag/arcsec2] = Log10 ([waarde in cd/m2]/108000)/-0.4 // simbole // graad vir Celsius const unsigned char degree PROGMEEM = {0xe, 0x11, 0x11, 0x11, 0xe, 0x0, 0x0, 0x0}; // eksponent 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xc0, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfd, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xfc, 0x07, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xf8, 0xff, 0x, 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, 0x80, 0x1f, 0xbe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xcc, 0xff, 0xff, 0x8f, 0x,, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,, 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, 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,, 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, 0x, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x60, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 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, 0xc0, 0x38, 0xff 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, 0xff, 0xff, 0xc0, 0xc4, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x60, 0x0f, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0x00, 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, 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, 0xf8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff,, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0x0f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,, 0xfc, 0x01, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff,, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 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, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x01, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7f, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0xfc, 0x0f, 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, 0xff 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}; ongeldige opstelling () {// htu21d htu.begin (); // tsl2591 sensor_t sensor; tsl.getSensor (& sensor); tsl.setGain (TSL2591_GAIN_MAX); // MAX, HIGH MED, LOW, tsl.setTiming (TSL2591_INTEGRATIONTIME_600MS); // 100MS, 200 MS, 300MS, 400MS, 500MS, 600MS // opstelling vir oled display display.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay (); vertoon.display (); display.drawBitmap (0, 0, intro, 128, 64, WIT); vertoon.display (); vertraging (1000); display.setTextSize (1); display.setTextColor (WIT); display.setFont (& FreeSerif9pt7b); display.clearDisplay (); } leemte lus () {lux = 0; ulux = 0; mag_arcsec2 = 0; temp = 0; rel_hum = 0; vertraging (100); lum = tsl.getFullLuminosity (); ir = lum >> 16; vol = lum & 0xFFFF; vertraging (100); lux = tsl.calculateLux (vol, ir); // ligte intensiteit in microlux ulux = lux*1000000; as (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, WIT); display.clearDisplay (); display.setCursor (1, 15); display.print (temp); display.drawBitmap (42, 2, graad, 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, WIT); display.drawLine (67, 1, 67, 20, WIT); 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, eksponent, 8, 8, WHITE); vertoon. setCursor (83, 55); display.print (mag_arcsec2); display.display ();}

Stap 7: Binne

Binne
Binne
Binne
Binne

Ek skep 'n eie kas en ek gebruik broodbord met dupont -kabels, soos u kan sien.

Ek gebruik TP4056 vir die laai van die battery met 'n usb -kabel (benodig 'n swip dip jumper).

Vir die aan/af gebruik ek 'n dip -trui.

Vir daglig toon TSL2591 0 en mag/arcsec2 is nan.

Vir die naghemel moet TSL2591 van 0 tot 1000 000 microlux (ulux) en die ooreenstemmende mag/arcsec2 wys

(cca. 14 tot 22 mag/arsec2).

Vir volmaan het ek 50k ulux gemeet, wat 0,05 lux is.

Aanbeveel: