An automation solution for astronomical observatories



Every observatory need a meteostation thus here is the induino version!


  • High precision barometer.
  • Relative Humidity (HR) reading.
  • Dewpoint calculation.
  • Far sky temperature using Infrared Thermometer for determining cloud cover.
  • Photocell to read sun radiance  levels.
  • One internal thermometer.
  • Two external thermometer.
  • Clouldy, dewing, freezing and daylight digital flag.
  • Sensor malfunction flags.
  • Web Interface with historical data.

meteostation0 meteostation1


Pressure sensor:

We use this breakboard with  a BMP085 sensor and  Adafruit library and examples. It is a very precise barometer normally include in gadgets to determine altitude from sea level. Also include a thermometer inside that we  use to read the internal case temperature. Is a I2C component calibrate at factory. The breadboard include the pull-up resistor for the I2C. Cost about 9$

Relative humidity sensor:

We chose DHT22 sensor that is the cheaper one (humidity sensors are expensive). It use a non standard one wire protocol but it is easy to read the values with this arduino DHT library . Also include a temperature sensor need for its HR calculations but available for direct ambient measurement. I buy this one. Cost about 11$.

Cloud sensor:

The Melexis MLX90614 chip.  Really it is not a cloud sensor. It is a Infra-red thermometer that can be uses for such propose. Measuring the sky temperature and comparing with ambient temperature is a good indicator of how cloudy is the sky. It is connected also to the arduino I2C bus and is read using the code and the information of this great blog. Cost about 11$. You can buy from a general component store such digikey or mouse.



This is a  photocell canibalized from a chiness litle toy. I put  10k Ohm  resistor between the terminals and connect it to the arduino GND and analog input A0. Voltage readings are proportional to the incident light.


Follow below schematic to connect all together:

Check everything is OK burning  “indi-code/3partie/indi-duino/device/firmware/METEOtest”. Open arduino-ide serial monitor and see if the readings are OK.
Putting in a waterproof box:



Follow the general instructions.


This project uses several non-standard library. To make the things easy all this libraries are bundle with the indiduino firmware. Just mention them to said thanks and recognize intellectual property of the authors:

Burn “indi-code/3partie/indi-duino/device/firmware/meteoINDIDUINO” on your arduino board. Test.

If cloud are not detect properly possible you need to make some adjustments. Edit indiduinoMETE.ino and change correction formula or cloud temperature parameters empirically.

//Cloudy sky is warmer that clear sky. Thus sky temperature meassure by IR sensor
//is a good indicator to estimate cloud cover. However IR really meassure the
//temperatura of all the air column above increassing with ambient temperature.
//So it is important include some correction factor:
//From AAG Cloudwatcher formula. Need to improve futher.
//Sky temp correction factor. Tsky=Tsky_meassure – Tcorrection
//Formula Tcorrection = (K1 / 100) * (Thr – K2 / 10) + (K3 / 100) * pow((exp (K4 / 1000* Thr)) , (K5 / 100));
#define K1 33
#define K2 0 
#define K3 4
#define K4 100
#define K5 100
//Clear sky corrected temperature (temp below means 0% clouds)
#define CLOUD_TEMP_CLEAR -8 
//Totally cover sky corrected temperature (temp above means 100% clouds)
//Activation treshold for cloudFlag (%)



See this article

7 thoughts on “MeteoStation

  1. I was wondering if you could tell me what the voltage range of the photo cell is. Also how do you have any images of how you made the IT water tight?

  2. Will this fit instead of canibalized photocell? 🙂

  3. Or this one (but if I understand it right in case of this one will be necessary to make some changes in the code)

  4. Great idea! I’m working on my own setup right now. Is there a reason why you didn’t use an Arduino Nano?

  5. Hello
    I built the meteo station following the instructions and it works very well! Really a good job, with the interface included. So, to start with, thank you for having shared this.

    Second: at present, I just have a few remaining issues to be tuned, and you can probably help:

    (1) when I look at the Main web page with the 3 round gauges, all gauges appear with the arrow pointing vertically up, and with a “NaN” in place of a regular value. The other items on the page display correct numbers, and the “Graphs” page too. Only the gauges seem not to work. Also, when I refresh the page, correct values appear briefly but then they are immediately replaced by “NaN”. Any clues?
    (2) The “Advanced” page is empty.
    (3) does not find the tidy module. I installed pytidylib – is this not the right one to have?

    Any clues?

    Best regards

    • Hi Paolo,

      Thanks for your good words.

      Regarding your issues:
      (1) Please check if the file CHART/RTvalues.json has correct values. Also check all other *.json files in this directory. Check also that all the updater daemos are running with “ps ax”:

      (2) Advance page is for sounding information and eumesat imagen. Please check that all related vars in file are set .
      (3) to be truely I dont remember what tidy lib I ussed. Please try installing uTidylib

      Please contact again if you have futher problems.

  6. Hi, I am looking to use the meteoStaion at star parties to tell me if the sky conditions have cleared. What modifications do you suggest to give and audio signal when the sky has cleared.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s