It measures:

  • 1.Temperature                  -> -40 .. +125 [ °C ] (resolution 0.01 °C );
  • 2.Relative Humidity         -> 0 .. 100 [ % ] (resolution 0.01 % );
  • 3.Light Intensity               -> 0 .. 64000 [ lux ] ( resolution 1 lux );
  • 4.Atmospheric Pressure -> 20 .. 110 [ kPa ] ( resolution0.025 kPa);
  • 5.Sound Level                  -> 30 .. 120 [ SLdB ] ( resolution 1 SLdB)
  • 6.CO2 Level                     -> 0 .. 2000 [ ppm ] ( resolution 1 ppm);

Additional functionality:

  • 1. OLED 96x64 display - to showthe measurements, output pin states, data logger information and errors;
  • 2. Additional 6 open collector outputs;
    • four of them are related to the T, H, L, CO2 measurements ( it is possible to set threshold when output is activated );
    • two of them - user-controllable;
  • 3. Real Time Clock and Calendar – supercapacitor powered;
  • 4. Data Logging capability ( can store up to >16K readings );
  • 5. User-accessible eeprom ( 500 bytes );
  • 6. Controllable Status LED
  • 7. There is USB to UART bridge, to communicate straight with PC;

Communication:

MeteoShield communicates using serial port (UART) which is wired to standard Arduino serial pins RX0 and TX0 (pins 0 and 1) or connected to USB-to-UART bridge. With two jumpers you can select data flow direction. Communication is done using protocol. Host (Ardiono bord or PC) sends commands or requests, MeteoShield answers with data and or only with acknowlegement.

Frame layout is folow:

#.[CMD].[VAR].[CODE]:[VAL][\r][\n]

[1][2] [3] [4] [5] [6] [7] [8] [9][10][11]

All parameters are in ASCII format.

  • 1.     #           - New Farme start character;
  • 2.     .            - Seperator;
  • 3.     CMD     - Command ( ‘S’ - Set or ‘R’ - Read );
  • 4.     .            - Seperator;
  • 5.     VAR     - Variable ( ‘T’ - Temperature);
  • 6.     .            - Seperator;
  • 7.     CODE   - Code ( ‘t’ – Threshold );
  • 8.     :            - Seperator;
  • 9.     VAL      - Value ( “+2500” 5 characters set temperature threshold to “+25.00”); n-baytes;
  • 10.     \r         - carriage return;
  • 11.     \n         - Line Feed also end of frame;

Example 1:

Set Temperature treshold to + 25.30°C

HOST -> MS      #.S.T.t:+2500\r\n {Send command}

MS -> HOST      #.A.N.n:A {Command is akcepted}

Example 2:

Read Humidity:

HOST -> MS      #.R.H.n:\r\n{read parameter command}

MS -> HOST      #.R.H.n:53.72 [%]\r\n {Answer}

MS -> HOST      #.A.N.n:A{Command is akcepted}

Example 3:

Display Light Intensity on OLED diplay line 3:

HOST -> MS #.S.L.l:3\r\n {Sent command}

MS -> HOST #.A.N.n:A   {Comand is akcepted}

All open source files, documentation, descriptions etc. can be found on GitHub.

Over time, the information will be updated !

Video "Part 1"

Video "Part 2"