Ice detection for footpaths

In my role as a caretaker for a large facility with car park and pavements I need to detect hazards and mitigate the dangers. The particular hazard I wish to know is when my footpaths and pavements are covered in ground ice so that I can apply grit. My paths get icy and it is barely visible – the image below has ground ice on a resin bound surface and even wearing boots I could skate the entire length of path.

Ground ice detection systems are expensive – they are used to detect conditions where warning signs are illuminated, deicing is initiated, or other remedial actions taken such as applying deicing solutions to airport runways. My needs are humbler than these; I simply want to be informed by text when ice may be present and arrive early to sweep some salt and grit over the footpaths so people don’t fall over. And I’d be more happy with false positives than false negatives – arriving to find that there is no ice is better than missing a day and someone is injured.

I intend to use LoraWAN to transmit the data as this is cheap and simple, and I have experience in coding and running such systems. Finding a detector that is simple, cheap, and reliable is a challenge. The components will be:

  • LoraWAN ice sensor
  • LoraWAN gateway through The Things Network (TTN)
  • NodeRED process to combine weather conditions including temperature, humidity, cloud cover, and wind. The latter two will likely come from a weather service.
  • SMS node in NodeRED to send warning texts

In my searching I found a number of systems that are either too expensive, too elaborate, or I don’t have the technology to produce. I can work with wires, wireless, embedded systems, 3D printed plastics, wood, and some metals such as steel in simple assemblies. Exotic plastics and sensors that require electrical potential are probably beyond my simple facilities, although the electric ones may be possible depending on my battery budget.

Meteorological conditions

There are some good references on the Internet that describe the conditions that lead to ground ice. These are likely to be the same conditions monitored by local council maintenance crews that go out and spread rock salt (called ‘gritting’ here in the UK) on the major trunk roads before a freeze. Mostly, to form ice needs:

  • little or no wind
  • water vapour in the air, or water on the ground from rainfall
  • clear skies without cloud cover
  • low temperatures, below freezing point

One way to monitor these things is to use weather sensors and meteorology reports. I could take feeds from something like Weather Underground and combine them, however standard measuring instruments are normally sited well above the ground surface so do not accurately measure the temperature on the ground.

Ice Sensors

Ice sensors come in a variety of implementations from mechanical to electrical through to optical using thermistors or other IR sensors at a distance. Some are well known in the aircraft runway industry while others are more suited to road surfaces. All the commercial ones cost in the hundreds or thousands of currency, and generally come as part of an integrated system with controller, reporting mechanism and loggers.

I need something under 50 $/£/€ so that I can afford at least a couple of them – one locally for reference, one on site to alert me. That rules out most commercial options. In addition even the most well tested commercial sensors only achieved rates of 86% in university tests, therefore I expect less accuracy in my cheap sensors and will tolerate more false positives.


I will likely go down the route of using a LoraWAN embedded item with temperature and humidity, and using a 3D printed case attach this to a tree or light pole near the main affected pathway. I’ll then combine this with cloud cover and wind sensor data – from locally if possible but if not from a weather service.

Building a LoRaWAN home network

I eventually went for a small SX1301 based LoRa gateway from RAK Wireless, the 831 and now have that running in my house network. Radio frequency work is different to SBC/MCU work and is a lot more ‘physical’ in the sense that you need to think about the radio frequency and antenna patterns. That’s a whole new / old world for me – and one which I thought I’d left from my childhood days.

I grew up in a country town where one of my leisure activities was being part of a ‘radio club’ for amateurs, also known as ham radio enthusiasts. These were the days of CW McCall and the song Convoy so I heard a lot of 10-codes used when travelling in cars. Our radio club toured commercial radio sites as well as taking part in radio jamborees, and constructed some monstrous antennas to pick up radio signals from all over the world – so I got familiar with terms like baluns, impedance matching, dipoles and yagis. Radio is amazing, does weird things and in my estimation just a little easier to understand than quantum mechanics. I never did get my Morse radio license though it may have been useful, and regret that now.

Setting up the RAK831 with a partner Raspberry Pi, initially using the jumper wires to connect them was easy and I soon got a signal through on LoRa. It seemed pretty simply just to follow the recipes on the internet as the device is based around a IC880a chip and there are plenty of code examples up on GitHub. My node devices are LoPy from Pycom and as they used MicroPython are pretty familiar from my work around e-ink displays. I registered the gateway with The Things Network and have it receiving stuff now, even if it is sitting on my filing cabinet and needs to be placed into a IP56 gray box and fixed to the wall.

I drilled through my house outer wall and poked the antenna out there, one of those ‘rubber duck’ type mono-pole ones, I think it is quarter wave but works quite well. Then registering on the ttn-mapper website allowed me to start mapping the reception from a smaller, hand-held LoPy transmitting a sequence of “1234” in a 30 second delayed loop so as not to abuse the duty cycle of the 868 ISM band. The results were both disappointing and amazing – amazing that such a short antenna transmitting/receiving can get anything and pass it back to the internet, and disappointing that it can’t be heard in behind some local buildings.

Screenshot from 2017-10-07 09-14-36

I’ve a couple of thoughts on this: a quality antenna such as a half- or full-wave may be better, orientation of the receiver (it is horizontal now) may be important, elevation could be critical, and not placing it on one side of my house but instead the roof so that it isn’t blocked by a close building may all improve things. But for my first simple use case that I want to merely ‘hear’ my small environmental sensors I think what I have now is probably sufficient!