Meteorological Sensors

Meteorological sensors

It is not difficult to self build sensors but they must be simple, so they are reliable, accurate and easy to clean. Also on eBay you can find affordable sensors.

A common mistake, in this field, you try to get an exaggerated precision. Since the sensors are outdoors and they get dirty easily, What matters most is the simplicity and reliability. The accuracy can be easily corrected and made linear by the software. We also recall that the rains and winds are so variables, that move the sensor to a few meters, might give totally different measures. So don't go overboard in chasing the 1%, at the expense of everything else.

Here we will see some examples, chosen from among the most clever and interesting.


Anemometer are simple and effective. Contain a magnetic contact that sends a pulse signal at each rotation of the rotor driven by the force of the wind. Typically have a degree of protection IP44 and a wind speed of 10 km/h provide 4 pulses per second. To connect them using two wires, without power and a PIN configured as Counter with Pullup.

Rain sensors

These images show one of the best implementations, created by Yoctopuce:

Many car-builders and commercial systems, using this solution, It is simple and reliable. With a good mechanical construction, This type of sensor can give an excellent accuracy.

Plug the meteorological sensors

Virtually all sensors for wind and rain have a contact that opens and closes, You can then, set the input pins as DigIn_Pu (digital input with pull-up) and connect the two wires of the sensor, between mass and signal (leave the pins in the +5 Volts not connected)

Many projects (for example Yoctopuce), use photodiodes, but their connections are needlessly complex, You should also feed the LEDs and you don't get benefits. Also with photodiodes, just a piece of leaf or powder, to create problems. Better to use a magnet and a magnetic contact under vacuum (Reed relay). Or, even better, a magnet and a chip, which measures the magnetic field (see –

Plug the meteorological sensors by radio

Both car-built sensors that commercial ones, they can easily send data, via radio. The solution we come up, Decodes the packets of bits, completely in software (Software Defined Radio). This way you can receive signals, by all meteorological sensors, any manufacturer, and on any frequency (normally RadioModem 169MHz, 433MHz and 868 MHz). The hardware comes down to an inexpensive USB adapter for radio and TV (Rtl2832u, ten Euros, shipping included). Nothing to be welded or to be prepared, connects to the USB and it works. For more information about these techniques, visit the site:

Will not be required, a receiver and one specific Shield, for each new model of meteorological station (as is usual with Arduino). The server just, a few lines of extra software, to decode each new sensor.

Theremino Logger Script V5

This is just a small example based on Theremino Script. To build a data logger is better to use the Theremino Logger that you download from This page.

Pending the definitive versions of Theremino Weather, We've prepared an example for Theremino Script that reads, Converts and log of several sensors of various types, including the UV, temperatures and also the tensions in volts or Millivolts. The sample will be available in upcoming releases of Theremino Script. In the meantime you can download it from here:

English version: ThereminoLogger_V5_ENG. vb
Italian version: ThereminoLogger_V5_ITA. vb
The two compressed files in a ZIP:

The files are copied examples of Theremino Script, Open with Theremino Script, configured to the number and type of sensors and slots are connected and then you must build the EXE.

The version 5 is simplified and more powerful. Contains formulas for the most common sensors. The number of channels is automatically determined by how many slots you write. This makes it possible to register on multiple columns the same sensor, in different formats (such as temperature and Millivolts)

Application Theremino_Meteo

This application is only one initial skeleton. Displays only the sensor data and does not produce a log. The publish because it contains the functions of decoding of lightning. Soon we will also add the reading of sensor dust.

The values shown in “Min distance” and “Mean distance”, consider all the events of the past 60 seconds. Maybe in future versions, We will prolong this time 10 minutes.

To see details of lightning, you have to hold the button on the left, related to lightning. The idea is that the right side of the application, will show details and graphs of the selected sensors.

Notes for versions
Versions 0.4 and 0.5 – This application is under construction, does the data log.
Version 0.6 – Now the chart correctly scrolls to the left even on Windows Vista.

– – – – – – –

Download Theremino Weather – Version 0.6 (version for programmers)

Lightning sensor

The special feature of this detector is to provide a logarithmic response, approximately proportional to the distance. For a comparison, between linear and logarithmic scales scale, read This page.

We're not competing at useful Lightning maps on the WEB. We are interested only in local lightning, within 50 Km or so. And we don't care about the direction and position, only the distance.

In this picture you can clearly see the difference between electrical impulses (ignition of appliances) and lightning from real. Lightning produce larger impulses.

The intent is to have an automated signal to protect sensitive equipment and in this our Measurer, works much better WEB maps. Web-based maps fail to see local lightning, especially if they're weak and low. Instead our Measurer, local lightning them all. And more are close and more accurately report them. Exactly what it takes to protect sensitive equipment.

Download the complete project Eagle and GCode for the cutter:

– – – – – –

Achievable accuracy

Attention: The distance scale is highly approximate. The lightning are all different, Some are between cloud and cloud, others are vertical, Some are weak (and are considered farthest of reality), other stronger (and are treated as real's closest). There are lightning that last a very short time (then indistinguishable from electrical noise) and other lasting many seconds.

The maximum you can get is an order of magnitude type: 100 Km / 10 Km / 1 Km.

The accuracy is adequate for what we want to achieve, be warned of the danger. When you hear the Thunder the distance is less than 20 Km and receive very strong impulses. If the storm is very close, it triggers the relay which insulates the equipment, When you move you restore the relay. This is the purpose of this sensor, the rest leave it to maps on the web, they are made to do statistics and determining positions.

Everything that is beyond the 100 Km, We are interested only in the functional test. The chances that a thunderstorm you walking in the right direction for 100 Km, up to hit us, are virtually zero.

– – – – – –

Preliminary videos

These are videos made during the first tests, mind you:

  • The position of the sensor is in the middle of the map, indicated with “Bollengo”
  • The weather program was under construction and some boxes were not working yet
  • The maps "blitzortung" delayed from 5 to 10 seconds
  • The maps "blitzortung" do not indicate all lightning. Many local lightning are revealed by our sensor but in the maps on the Web do not appear.

In the first and second video you see lightning very close and making sure you also feel the Thunder (recorded from the microphone). In both videos the map on the web incorrectly identified them.

In this third video the time between pulse and Thunder indicates approximately 2 Km, but the map on the web incorrectly places the lightning to 25 Km from our laboratory.

Distances are always very rough, not all lightning have the same energy. Though we could check, with the time between pulse and Thunder, as for Lightning, our detector is more accurate maps Blitzortung.

– – – – – –

Directivity of the receiving coil

To obtain a uniform sensitivity in all directions, the receiving coil must have the vertical axis, as in the image below left. If you would like the image to the right, Lightning front and back would give stronger signals of reality. While the lightning bolts on the sides would give the weakest signals.

Theremino Lightning Detector Coil - Omnidirectional Theremino Lighning Detector Coil - Bidirectional

Vertical axis – Ok Horizontal axis – WRONG WELL
Directional sensitivity Bi-directional sensitivity

If there were no land, radiation lobes would have a more rounded shape and adjust. But the soil acts as a huge ground plane, that distorts the lobes and drives them upward.

May be natural to think of “improve” This sensor, by increasing the sensitivity. But this project aims to measure distances with great accuracy, not to reveal the lightning a thousand kilometers.

Another idea would be to put the spool directional standing and make it in one direction, with some metal shielding. There try, the only effect would be to screen the reel and unable to arrive at normal 300 Km. A structure able to modify directionality should be comparable in size to the wavelength. The frequencies we receive are approximately around the 100 KHz, then the wavelength is approximately 3000 meters. To get some effect on directionality, the elements (Spotlight and directors) should be enormous, and spaced hundreds of meters of each other.

– – – – – –

Construction of the receiving coil

The image on the left is a spool of elastic thread for jewellery (in the mercerie or on eBay). The image on the right shows a cropped from the center of one coil “Rolla” (big spools 16 ' ' that you wrap the SMD components). We recommend to buy “bobbins for costume jewellery” on eBay from francesina80 and specify that should be blank. Will make you a special price: 2 for 2.5 Euro, or ten per 4.5 Euro, shipping included.

The important thing is that the inner diameter is about 60 mm. The thread about from 0.18 or 0.22 mm and the number of turns around 500. The final impedance should be about 25 MH.

With a large coil just 60 mm, is measured with great accuracy the distance of lightning up to 300 km. Are unnecessary external antennas, because it picks up only the magnetic component, who walks through walls without attenuation.

Images of the coils used in rehearsal:

– – – – – –

Shield the coil by electric fields

The coil must be screened at the top and bottom with two large washers copper adhesive. Here is shown only the top washer and its connecting wire (in green) But even the lower washer must be equal, and also it grounded.

Theremino Lightning Detector - Coil Shielding

Not to decrease sensitivity the two washers must have a central hole is very large and should be cut, so as not to present one turn short. Enlarge the image by clicking it and look at the location indicated by the green arrow.

The coil outer pole must be connected to GND. Like this, the external coil windings are internal screen. This greatly reduces the interference by the electric system.

– – – – – –

Place the coil and amplifier circuit

The coil should be placed at least two metres away from any electrical wire. It is not recommended to place it in the attic (or even worse outdoors). We investigated this detector to be small and simple, a juxtaposition of the coil avoids complex plants and keep it all within a few meters from your computer.

Initially we suggested to place the coil circuit amplifier, connect to it with a short shielded and shield is the circuit that the coil. With this arrangement, between the receiver and the Master would use a three-conductor cable, as specified here.

We recently made new experiments and found a better solution. Closes the circuit amplifier in an aluminium box (or covered by copper adhesive), connected to GND. The box can stay close to your PC and to the Master. The box part a shielded cable that goes to the receiving coil. Not to lower the resonant frequency, the capacity of the cable should not exceed 200, 300 PF maximum. With a cable for TV, from 75 ohm resistor (Rg56 or RG59 from 53 pF per meter) you could get up to 3-5 meters. Or you could use the RG179 and RG187, they are very thin despite being only 65 pF per meter. With low-capacity cables It could be as much as 10 meters.

The receiving coil should be placed by trial so as to reduce as much as possible the noise. Very good if you can get below to 100, but it's still good, If you can stand under a 150 or 200.

– – – – – –

Functional check

In the application, you must configure the Pin as HAL: Adc_16, MinValue = 0, MaxValue = 1000, Response Speed = 100 and Response Speed button disabled (not Orange).

The left picture shows a scale of approximate distance and a bottom layer less than 80. The right image shows an electrical disturbance and lightning. Note that Lightning produces larger impulses. If the sensor is away from electrical wires, electrical noise should be quite weak, you don't get counted. The application Theremino Weather tight and weak pulses discards.

The baseline level indicates the proper operation of the detector circuit. You should not exceed the value of 200, better if you can stand under a 100. Changing position to the receiving coil, away from every object (even the wooden tables lead) and possibly by decreasing the sensitivity with the trimmer, You should be able to lower this level.

You could also shield the coil with two sheets of aluminium or copper, one above and one below, connected to GND. The two sheets should have a central hole and a radial cut, so as not to present one turn short, that would reduce the sensitivity. Check that the test generator is revealed, up to 100 – 120 cm away.

For a comparison, between linear and logarithmic scales scale, read This page.

In the future we will improve this project, with detailed instructions. For now we publish raw images, made during rehearsals. In these pictures you can see how they compare our sensor signal, with the distance shown by maps Blitzortung:

Possibly write to Alessio, for advice on building and functioning.

– – – – – – –

Lightning test generator

With this generator you can make lightning sensor sensitivity. The lightning are simulated only as amplitude. The duration of these pulses is shorter than that of lightning from real.

The generator consists of:

  • A stack from 9 Volts
  • A connector for battery 9 Volts
  • A resistor from 100 K
  • A capacitor by 1 uF 16 Volts
  • A button (in the pictures a microswitch)
  • A coil from 220 UH wrapped up a small ferrite core open (must not be closed in a barrel) (about 50 coils on core from a dozen mm)

The battery keeps the load capacitor to 1 UF through a resistor from 100 K. When you press the button the capacitor is closed on the spool. The coil and the condenser swing for a brief moment and generate an electromagnetic wave, similar to that of lightning (but the shortest duration)

The coil should be similar to our, otherwise it could give much stronger or weaker magnetic pulses and distort the test. If with 58 you get very different impedance coils 220 UH, then the type of ferrite is not suitable.

  • Ferrite height = 11 mm
  • Width (outdoor) = 15 mm
  • Width (inside) = 7 mm
  • Turns = 58 (about)
  • Wire diameter: 0.5 mm (about)
  • Impedance: 220 UH

Possibly write to Alessio, for recommendations.

The coil must be kept with the vertical axis (and also that of lightning detector must be vertical). A meter apart is approximately 300 Km. Approximately ten centimetres 30 Km. A centimeter is about 3 Km. With two coils close you should get the most signal (almost 1000 Thereminico value).

EMF meter

This meter is a variation of lightning sensor. Many thanks Luciano Bears for giving us the idea. The circuit board is the same, but the value of some components was changed. Lightning Detector has been working for 700 Hz to 30 KHz (gang where lightning produce the maximum energy), Instead this detector, has been working for 7 Hz to 300 Hz (gang of disturbance from electrical installations, household appliances and electrical equipment).
Theremino - Logarithmic Electromagnetic Fields Meter

Unlike normal EMF meters, this appliance has a logarithmic output, Why doesn't need a flow switch. For a comparison, between linear and logarithmic scales scale, read This page.

Its high dynamics (about 80 DB) allows to measure, in one range, by weaker signals (equivalent to some uV/meter) up to stronger (equivalent to tens of volts per meter). We wrote “equivalent”, because normally we do not measure the electrical field component, but that card.

Three of the ten MFD capacitors (C1, C2 and C5) may be capacitors. The other three (C3, C4 and C6) “should” be ceramic (There are ceramic SMD from 10 UF rediculously). In the absence of them could use the capacitors. The capacitors, theoretically, could be damaged over time, increase its leakage current and, After many years, cause a circuit malfunction. In practice, most likely, would run forever, or almost.

Sampling circuit
Unlike classical EMF meter, This circuit also reveals the short pulses. The circuit composed of T1, T2, R1, R2, R3, C10 and C11, constitutes a “Sample Hold”. This allows you to see (in a chart) the pulses produced by the inrush current of the motors. As well as short, but intense pulses, produced by switches and switching power supplies (PC power supplies, phones and energy saving lamps).

Measure the electric component instead of the magnet
You could replace the coil with a flap type antenna (a stiff wire vertically along ten centimeters). We didn't try, but surely would arise problems, due to the electric field, generated by the meter itself. Most likely it would auto-swing, masking the weakest fields. We do not recommend so this solution.

Shield the Measurer
In all cases (whether you measure the electric field that the magnet) It is good to shield the circuit board, with a thin aluminum box (one or two millimeters). On one side, a standard three-wire extension to the Master and on the other side, shielded wire to the coil or antenna flap type.

It is recommended to use a very small flap type coil (otherwise the sensitivity would be exaggerated). A hundred turns on ferrite core by 1 or 2 cm, should be fine. What should be achieved is a measuring range centered on the values “normal”. That is an output (thereminici values from 0 to 1000), It is less than 100, outdoors and away from any source of disturbance. And it gets to a maximum of about 900..1000, When approaching the coil transformers or large motors. Fastened the flap type coil, You should finally go to an institution or in a store, and do a calibration by comparison, with a commercial fixture.

Calibration with signal generator
By passing an alternating current of known party, in a coil with known characteristics, you could generate a magnetic field with precise amplitude. The same could be done with an alternating voltage, on two plates of large area and far from each other. To simplify calculations, both the inductor than the two plates (capacitor), should have negligible size, with respect to wavelength. Electromagnetic waves “normal”, for example, generated by high-voltage power lines or Radio Vatican, contain both the electric field that the magnet. The fields produced by a pure inductor (very small), or from the plates (many area but negligible length), are almost exclusively magnets, or electric. For which, If you use a coil, as sensor element, you have to calibrate with a power generator and an inductor. Otherwise you should use voltage source and capacitor (two conductive plates).

As the electricity generator to 50 Hz is perfect. Its voltage and frequency are stable and the wavelength is infinitely large (than any thing that can be built at home). Attention only to burn out and not to give too much power to the coils. For the reels you could use a transformer with 12 Volts, and a big resistor in series with the inductor, to establish a precise current. Or, in place of the resistor, you could use a car headlight bulb. For the plates you might use the 220 Volts direct, but here you have to do really care!!! The next paragraph explains a safe way to do it.

Generate an electric field of calibration
First of all, also to simplify calculations, It is good that one of the two plates hold, that is the link to the Earth of the electrical system. To power the second plate we will use instead a safe power supply, a normal plug for 220 Volts, containing 5 resistors in series from 220 Kohm (5 they comfort series, in the event one of the resistors go short). We start by only one of the two prongs, you cross the resistors, and you leave the plug with a single wire block, that will go to the plate. The plug will be inserted into the socket the right way round, i.e. with the resistors on the stage (not on neutral). You could try the phase with a search-phase, or you could place a small neon pilot, with its resistor in series, in the plug itself. The indicator must be connected between the phase (the side where they are connected resistors) and the Earth. This system is secure, Since the resistors limit current to a level not dangerous, but IT’ INEXPERIENCED PROOF!!!

Theremino System -



Calculating volts per meter is simple. If the two plates are a big area and you are a metre apart, then there should be an electric field of 110 Volts per meter, exactly halfway between the two plates (This calculation could be wrong, I usually measure with thumb and bits of rope).

Expand the bandwidth and higher
By editing a single capacitor (C7), You can expand the bandwidth and higher, Come on 300 Hz proposed, up to a maximum of approximately 30 MHz (limit due to NE604).

  • 1 UF = 300 Hz
  • 100 NF = 3 KHz
  • 10 NF = 30 KHz
  • 1 NF = 300 KHz
  • 100 PF = 3 MHz
  • No condenser = 30 MHz

The gang up to 300 Hz, includes noise produced, common electrical appliances (appliances, motors, mains 50-60 Hz, switches, energy saving lamps, etc..)

The gang up to 30 MHz, also covers the airwaves, until all shortwave including (long wave commercial radio, medium and short, Marine transmissions, morse signals, ham radio and CB). The most powerful (that can really worry), am transmitters “broadcast”, in long and medium waves. Some of them convey with absurd powers, We talk about hundreds of Mega Watts, and it would be good to shut them down (We are no longer in 900, There are better ways, and less polluting, to be heard).

More expands the bandwidth and the more difficult it becomes to, screening good the meter. If noise produced by the same gauge, even a few microvolts, reach the antenna, or the shielded entrance, then the whole thing starts to auto-swing. In the presence of auto-oscillations, the minimum value rises, it becomes impossible to measure weaker signals.

Atmospheric pressure sensor MPXH6115A

These sensors can be connected to a standard PIN configured as Adc16 with this simple adapter. We used copper adhesive tape, cut with scissors and glued to a piece of plastic. The plastic used is soft and whitish and not resistant to high temperatures (probably polypropylene). Some tracks are very small, so you must be able and know how to solder well.

The output signal depends on the supply voltage. So if you want maximum stability you have to stabilize the power with an adapter.

Power adapter 5 Volts
With this adapter you get a 5 Volt stable: hardware/adapters # regulator5

The resistors R1 and R2 adapt signals from 5 Volt inputs from 3.3 Volt system Theremino. For this sensor, it is recommended to use R1 = 3.9 k and R2 = 10 k. You should also delete IC1 (as explained in the comments of the feeder), because the stabilization produced by IC2 is more than enough.

Calculate the bars
Starting from the number from 0 to 1000, read by a pin type Adc16, calculate the millibars, with a multiplication and an amount:

millibar = ValoreLetto * 1.02 + 105.5

The two coefficients of this formula were calculated, taking into account the voltage divider formed by R1 and R2, the fact that the ADC reads a voltage from 0 to 3.3 Volts and the characteristics of the sensor data sheet MPXH. With these two values you get by 10% pressure value “local”.

Local pressure is then correct considering the station elevation and air temperature. For this fix you modify slightly the first coefficient. As an example of a station at 255 metres and a temperature of 20 grades the coefficient 1.02 would become 1.05.

Finally you should make small corrections to both the coefficients so that exactly match the millibar average nearest stations. This site might help:

Humidity sensor module HR31

This module can be connected directly to the pins of the system Theremino and is available at many retailers and on eBay, for about 9 Euro, shipping included. Search “HR31 Module”.

The fourth pin is an ON/OFF signal adjustable with trimmer. To us this output does not serve (much better then the elaborations and thresholds of snap in the software rather than with a trimmer) whereby we will link only the analog signal pin, the + 5 volt and mass.

HR31 humidity sensor module characteristics
The module provides analog signal as it is revealed by a digital signal generated by HR31 sensor and sensor signal comparison and an adjustable threshold.

– Supply voltage from 3 to 5V
– Component based HR-31 followed by the dial gauge LM3943
– TTL level output (generated by the comparator)
– Analog level output

Pin-1 analog output signal
Pin-2 Mass
Pin-3 digital output signal
PIN-4 supply voltage

Humidity sensor module SY-HS-220

This module can be connected directly to the pins of the system Theremino and is available at many retailers, for example the following:

Precision humidity sensors – HIH4000 and HIH4030

There are three versions of this sensor, the HIH4000 which has terminals ThruHole, the HIH4300 that is HIH4301 and he also SMD SMD, but with a filter for use in environments with very high humidity and possible condensation.

Theremino System - HIH-4000 - Humidity Sensor - Connections

They are very precise and cheap enough sensors (Come on 12 AI 15 Euro depending on the service provider). A potential supplier is robot Italy:

These sensors can be connected directly to a standard PIN configured as Adc16.

The output signal depends on the supply voltage. So if you want maximum stability you have to stabilize the power with an adapter.

Power adapter 5 Volts
With this adapter you get a 5 Volt stable: hardware/adapters # regulator5

The resistors R1 and R2 adapt signals from 5 Volt inputs from 3.3 Volt system Theremino. With this sensor adaptation is not necessary then it is best to delete R2. You should also delete IC1 (as explained in the comments of the Governor), because the stabilization produced by IC2 is more than enough.

Power adapter 4.2 Volts
A simple adapter is shown here: hardware/adapters # regulator4

With 4.2 Volts of power, you get a range of output voltage from 0.6 Volts to 3.3 Volts, that is perfect for Theremino PIN, configured as Adc16.

Calculate the relative humidity
Starting from the number from 0 to 1000, read by a pin type Adc16, you calculate the percentage of relative humidity, with a multiplication and an amount:

RelativeHumidity% = ValoreLetto * 0.08182 + 18.18

The two coefficients of this formula were calculated, taking into account that the ADC reads a voltage from 0 to 3.3 Volts and sensor characteristics. Anyone wishing to obtain a more precise calibration should refine these values and possibly also take into account the temperature.

Ultra-precise temperature and humidity sensor

Theremino System - Humidity sensor
This sensor costs over thirty euros but is precise (+/-2% relative humidity and +/-0.6 degrees of temperature) and can measure temperatures from -20 to +80 degrees centigrade. It also contains a filter that protects sensitive elements against corrosion and can be eaten by 3 to 5.5 Volts. Then you can use the 5 Volts unregulated coming from USB, and that is present on all system PIN Theremino, without interposing adapters.

The output signals are:

Relative humidity standard Value Voltage (0 - 1000)
     0%             0 Volts        0
   100%             1 Volts      333
Standard Voltage temperature Value (0 - 1000)
 -50 degrees            0           0
   0 degrees          250 MV       83
  50 degrees          500 MV      166
 100 degrees          750 MV      250
 150 degrees            1 Volts    333

For more information see data sheet: T9600920-579A-HR

It is not easy to obtain the T9600-L (L = linear), Mouser and don't care about RS catalog, and on eBay is not. Exist in the catalog Farnell, but only in England:

Be careful that it is not the digital version, T9600-D which would require rewriting the firmware just for him. Digital sensors also always have a poor resolution due to limitations of ADC integrated in the sensor. For example in this sensor, Despite being one of the most expensive, the internal ADC is only by 8 bits for moisture and only by 10 bits for the temperature.

The correct version is the T9600-L, linear and then directly connectable to two pins of the system Theremino, without adapters and without rewriting the firmware.

Soil moisture sensor

This sensor can be connected directly to the pins of the system Theremino

Search “Soil moisture sensor” on eBay, should cost about 7 Euro shipping included.

Ultraviolet sensor – UVM-30A

Theremino System - UV Module - UVM-30ATheremino System - UV Module - UVM-30A

This sensor can be connected to the pins of the system Theremino but be careful: the order of the wires is not the same of our pins and also names change. So you have to connect the “-” our GND and you must swap the wires Signal and + 5 Volts.

Available sensor wires UVM-30A:  -  / SIGNAL / +
Available Pin thereminici wires: GND / +5 / SIGNAL

Search for UVM-30A on eBay, should cost about 15 Euro, shipping included.

Convert the output voltage in UV index

Theremino System - UV Module - UVM-30A Theremino System - UV Module - UVM-30A - UV Index Table

The stated accuracy is about +/- 1 UV index, so it's useless to make calculations too precise. To obtain the UV index just approximate the graph with two straight segments, the first from 0 to 1 and the second from 1 to 11. The calculation is as follows:

' The value "Val" is read from a Slot and ranges from 0 to 1000

' ----------------------------- si calcolano i millivolt  mV = val * 3.3
' ----------------------------- convert into UV index If mV < 227 Then     UV = v / 227
Else     UV = 1 + 10 * (v - 227) / (1170 - 227)
End If ' check UV value is a number with decimals is to have it whole you could convert it with CInt's but better yet would keep it with all the decimals ' and print it to one decimal place only, with ToString("0.0")

For this sensor and others may be useful Theremino Logger, a small Theremino Script that converts more sensors of various types and writes to a LOG file.
Theremino Logger you download from here: hardware/inputs/meteorology-sensors # logger

Rain and water level sensor

This sensor can be connected directly to the pins of the system Theremino

Search “Rain sensor” on eBay, should cost less than 2 Euro shipping included.

Temperature sensors

To read the temperature easily and with great accuracy it is recommended that you watch this video:

and read this post: # comment-12891

– – – – – – – – –

Sensor “AD592” – Mouser 584-AD592ANZ or eBay – from 5 to 8 Euro

Requires no calibration, measuring temperature with accuracy and excellent linearity, from -25 to +105 degrees centigrade. The output signal is a current of 1 UA for each degree Celsius starting from absolute zero. So at zero degrees provides 273 UA. For more information read the handout: AD592 data sheet (PDF)

This sensor provides a current independent of supply voltage, so the feeding with 5 Volt available on all pins and connects to ground with a 10 k resistor. The connecting point between the sensor and the resistor is the signal to be read. You connect it to the point “SIGNAL” a PIN and configures it as Adc16.

Sensor “Lm35” – Farnell 1469236 – about 2 Euro

Requires no calibration, measures the room temperature within +/-0.25 degrees centigrade, from 0 to +150 degrees Celsius and is directly connectable, our standard three-wire connectors.

You cannot use the LM35 to read negative temperature recommended schemas in data sheet. With the system with two diodes and a resistor you should also use a differential input and would be very complex.

Sensor “TMP36” – – about 3 Euro
Requires no calibration. Misura the room temperature within +/-1 degree Celsius, from -40 to +125 degrees Celsius and is directly connected to our standard three-wire connectors. The connecting pin layout is the same as LM35.

Sensor “501F” – Farnell 2191831 – about 8 Euro
Requires no calibration, measures temperature from -10 to 60 degrees and is directly connected to our standard three-wire connectors.

This sensor is very accurate, copying from datasheet: “With an accuracy of ± 0.1 K in a range of 40 k (e. g. 5° C to 45° C), the sensor is more accurate than a class F 0.1 (DIN EN 60751) Platinum sensor. Extended long wires (> 10m) will not influence the accuracy”

Convert the values thereminici (from 0 to 1000), in degrees Celsius
Examples of Theremino Script, There is the file “TempMeter. vb”, It contains recipes for the LM35 and the 501F. Use them as an example. To add other sensors, just add two lines with similar formulas. Or the same formulas can be copied, and used in other languages.

Extend the temperature range
For temperatures from -80 to +300 degrees we recommend using NTC sensors, PTC, PT100 or, best of all, the PT1000 of the next chapter.


The PT1000 platinum resistance are positive temperature coefficient (PT). The 1000 means that at zero degrees have a resistance of 1000 exact ohm.

Inside there is a small resistive element, which is usually encapsulated in a steel cylinder. The probes are equipped with suitable connection leads to high temperatures. Click on images to enlarge them.

There are also the PT100 and PT 500 (respectively by 100 and 500 ohm at zero degrees) but it is preferable to use the PT1000 because it is easier to measure them. The PT1000 can be used up to very high temperatures (normally 300 degrees and up to 650 degrees some models). Accuracy and stability are excellent. Finally the PT1000 special measures do not require (cold junction) and special materials, serving for thermocouples.

Tables for PT100, Pt500 and PT1000:

A dealer who has many models of sensors PT1000:

When you buy make sure they truly PT1000 platinum resistance, and then they follow the standard resistance values table / temperature.

Connect the Theremino Pin to PT1000

The simplest method is to connect the probe to a Pin configured as Res_16, and then calculate the temperature in software, with a proper formula. With this simple solution takes advantage of only a small part of the ADC, so the resolution is very poor. Even with the best calibration, the accuracy will be around +/-10 degrees (that is not so bad considering that we measure very high temperatures).

In this solution, you configure the PIN as ADC 16 and feeds the PT1000 with a resistor from 1.5 kohm, starting from the 5 Volts. The 5 Volts are not stabilized, for which the calibration remains valid, just as long as you do not change your computer and USB port. However the resolution is great, We speak of fractions of degrees centigrade, from -100 to +100 degrees, and up to two degrees, at higher temperatures.

This is the solution that we recommend. You configure the PIN as ADC 16 and you connect a resistor from 1 KOhm at 3.3 Volts. The resolution is great, We speak of fractions of degrees centigrade from -100 to +100 degrees, and up to two degrees, at higher temperatures. Stability and accuracy are perfect, Since we use 3.3 Volts stabilized. The only difficulty is that the 3.3 Volt is not available on pins of InOut. You could Add a controller, or connect a wire to the 3.3 Volts of the ICSP connector.

In the latter you configure the PIN as ADC 16 and feeds the PT1000, with a constant current of 1 mA, generated by an integrated controller, starting from 5 Volts present on all pins. Just a small adapter, that can be built with the copper adhesive tape, or even welding directly the three components, to each other. This solution is more complex, but it has a constant resolution below Celsius degree, up at higher temperatures (500 degrees plus).

– – – – – – – –

With new modules Adc24 you get more precision. A form Theremino Adc24 It can read up to 4 Pt1000, configured four threads, one hundred times per second and with great precision.

Adjustment with two coefficients or with table

In software you can use two calibration coefficients, one to calibrate the zero and one to calibrate the incline. Or, for maximum precision, before you calculate the resistance with a formula and then compare it with the table of PT1000, in an array of float numbers.

The software can be written in VbNet, or simply with Theremino Script, or with the simple Theremino Automation.

Thermocouple temperature sensors

Using thermocouples it is difficult. You must use specific metal joints and you must also compensate for the reference junction temperature, measured with an ambient temperature sensor. Even calibration and temperature calculation are difficult. Therefore, using in their place the PT1000, discussed in the previous chapter.

Thermocouples can be connected to a standard system input pin Theremino through the differential millivoltmeter, configured with the following values: R1 = 100 k / R2 = 100 k / R10 = 1 k.

Here you find good tables for thermocouples:

For thermocouples might also be useful to take a look here: = 1048

Limited solely to K-type thermocouples (the most commonly used) There may be a simple solution with AD597 – Farnell 1438419 – about 4 Euro These cip are internally cold-junction compensation. Are directly connected to pin standard system Theremino to measure temperatures from 0 to 330 degrees centigrade. To measure temperatures from -200 to 1250 Celsius just use an appropriate voltage divider in order to bring the voltage in the range from 0 to 3.3 Volts. For negative temperatures the battery isolator must also include a resistor to the 3.3 Volts stabilized.

– – – – – – – –

With new modules Adc24 you might get more precision. A form Theremino Adc24 It can read up to 8 thermocouples, one hundred times per second, with great precision.

Thermometers and thermostats

With Theremino the system is difficult to measure and stabilize temperatures. The dirty work they do the application HAL and the firmware that's on Master, so with just a few lines of software you can build laboratory thermometers and thermostats, tailored to your needs.

The control software could be written with Theremino Script, with Theremino Automation or in VbNet, in CSharp or even in other programming languages least used, as Java, C++, Phyton, Pascal etc…

Here's, as an example, an interesting and useful thermometer and thermostat written by Marco Russiani.

Temperature controller

These are the files of documentation:

Download Theremino Temp Controller – Version 1.4 (version for programmers)

Get the system modules

The theremino team only deals with research and does not sell hardware. The system is completely "Freeware", "Open Source", "Not for Profit" and "DIY", but there are manufacturers who can provide modules assembled and tested at a great price. One could hardly self-build them spending less. A list of manufacturers on this page:


The source code of our software does not contain copyright notices, author names and links to our site, so you can make every use, without limitation of any kind. We do not require you to specify the original source or our site but if you are happy with our software remember us and make known this site to your friends. Any donations, even small, are very welcome and can help us to maintain the software “free” and to produce always new applications.

Comments are closed.