Swimming pool wireless temperature sensor


I’m not really bathing type of person… But you know I have wife and daughter so small swimming pool in the garden is almost mandatory. OK when am not frequent occupant of that blue thing so I have to be at least a maintenance guy. Standard pool set offers just limited room for innovation so I decided to do something cool to be aware of unacceptable temperature of water inside and because I like cool stuff, cool beer bud definitely not cool water. You can admit that there are hundreds of swimming pool thermometers…OK, but hey guys what is cool on rubber duck from local hobby market? So I decided to build Sigfox based wireless temperature sensor which is not just practical but it is also nice demo for Sigfox network. I can even take it with me on holiday 🙂


  • Portable – it is a demo, I going to lend it (if I will not lost it in a sea during my holiday)
  • 3D printed fixed enclosure
  • maintenance free
  • easy display of temperature on mobile phone
  • submerge detection – to send data only if it is in a water
  • Sigfox based
  • temperature reading every minute, sending average value each 30mins
  • firmware update over the air



μController and modem

I have used  Telecom Design TD1208 Sigfox module on my custom break-out board because that module is very flexible and has quite good SDK so I don’t need external controller, module consist few ADC and GPIO ports and also supports update over the air (via proprietary protocol) which is important because device is sealed.


Temperature sensor

As temperature sensor is used MCP9700 which is quite easy to use because it returns 500mV at 0°C and each 10mV is 1°c (752mV –> (752-500) / 10 = 25.2°C). Input voltage is 2.3-5.5V so it fits our needs as well same as consumption which is 6μA according datasheet but I measured 3μA


Power supply

As power supply I have used crappy li-ion 18650 battery from ebay claiming capacity 9800mA (LOL) and cheap 0,6W solar panel. Guys I know that is total overkill for such low power device draining few μAmps and one day of charging will last probably more than year of function… But solar panel + charging module + salvaged 18650 li-ion battery is’n probably more costly than some lithium battery and beside that solar panel looks quite cool so what.


Water submerge sensing

The simplest solution using resistance of water has been used – just two electrodes + NPN transistor. Circuit is active just for fraction of second once per minute to avoid corroding of electrodes.



3D printed from PLA – PLA is not probably best choice here but it is part of my experiment – I wanted to test PLA behavior for such use cases.


Over the air firmware upload

Telecom Design chips allows to upload firmware over the air from second module witch special firmware inside. It is done in bootloader so everything what is needed here is reset button. Because device is waterproof button is realized via reed contact. So reset can be conducted with magnet from outside.


I have printed from PLA nozle 0.4mm, layer 0.2mm and 100% fill to ensure waterproof enclosure. Wall thickness is 2mm so it is quite robust. Model was designed in web-based modeler ThinerCad.


Thread is meant for additional ballast which was not needed in my case because li-ion battery did same job for me. Two screws at the bottom are electrodes for water submerge sensing.


Rim around top and bottom part are for easier and nicer hot-gluing. Similarly window for solar panel window. The edge should be taller for easier gluing.


And this is completed enclosure sealed with hot-glue



I have used my custom TD1208 break-out board with helicoil antenna. Antenna is not ideal but I have tuned it for best results so finally it works just slightly worse than shorted industrial one. Much more significant influence here in my case has enclosure PLA (ABS is even worse) has quite high permitivity and also inhomogeneous material structure caused by 3D printing resulting in significant attenuation of signal. OK but this device will be outdoor in almost ideal conditions so what. But for commercial products antenna design in conjunction with enclosure design and final product placement should be taken very seriously!



All circuit is very simple. USR4 GPIO is set as output high (3.3V) just during measurement. GPIO USR3 is the input with internal pool-up high sensing presence of water. USR4 also enables powering of sensor itself.


Custom TD1208 break-out module


NPN transistor soldered directly on the board.


Solar panel 0.6W 6V 80x55mm from ebay


1 li-ion cell charger from ebay


Final wiring. I have used red silicone to seal panel…yep it looks super ugly 🙂 all wires fixed with hot-glue like come Chinese high Q product. On the top is visible reed contact (RESET)


Sensor is buried at the bottom same as battery. So battery is water-cooled. That crappy battery is cool after all 🙂

Program is simple. There are two schedulers:

MESURE – do a measurement once per predefined intervals (1 min). 1000 samples are read then averaged to minimize noise. During measurement is also checked if USR3 is “LOW” and enables blinking of LED same as sending of messages.

SENT – send data via Sigfox network in predefined intervals (30 min), all measurements within interval are averaged

BLINK scheduler just blink LED when USR3 is low


format payload is:

  • 1B – reserve
  • 2B – temperature * 10
  • 2B – reserve
  • 2B – internal temperature on module * 10
  • 2B – internal voltage on module * 1000



Full code:

There is many ways how to visualize data but dweet+freeboard is probably the simplest and I almost always start with that because it is easy and fast.

Step 1 – Sigfox backend




Step 2 – Freeboard datasource setting

xxxx – your Sigfox module unique ID (HEX)

2016-07-16 22_01_14-freeboard


Step 3 – Widgets setting

2016-07-16 22_02_35-freeboard


js script to nicely display  “last updated” time (for text widget)



life result look like this:


Another example is usage of free tmep.cz temperature logging service which is very nice and easy. Check it out.



Here is different example of visualization of data using PHP, mySQL and HighCharts js scrits

2016-07-16 22_16_17-Měření teploty


So I see that bathing for today and upcoming day or two is mission impossible…






David is a innovation professional at TelcCo business, open-minded technological enthusiast who would like to taste everything new. In his free time, David loves to make own DIY projects and exploring world of technology. Any ideas presented here are independent and this page is not sponsored by anyone 🙂

More Posts

Follow Me:


7 thoughts on “Swimming pool wireless temperature sensor

  1. Very nice article, totally what I wanted to find.

  2. tumblr says:

    I do not even know how I ended up here, but I thought this post was great.
    I don’t know who you are but certainly you’re going to a
    famous blogger if you are not already 😉 Cheers!

  3. game killer says:

    Appreciate the recommendation. Let me try it out.

  4. webpage says:

    I’m not sure exactly why but this blog is loading extremely slow for me.

    Is anyone else having this problem or is it a issue on my end?
    I’ll check back later and see if the problem still exists.

  5. linkedin says:

    Pretty nice post. I just stumbled upon your blog and wanted to say that
    I have really enjoyed surfing around your blog posts. After all I will be subscribing
    to your feed and I hope you write again soon!

  6. MENAGER says:

    Hello. I’m very interesting by your work. I’ve a TD1208 modem on an akeru board ( http://snootlab.com/shields-snootlab/829-akeru-beta-33-fr.html) managed by an arduino. But it want to have a TD1208 standalone and customized with SDK . Which tool i need to upload eclipse generated in the modem. Thanks

    1. David says:

      Utility called tdloader, it is somewhere on telecom design site.

Leave a Reply

Your email address will not be published. Required fields are marked *