DataLogger IoT WiFi Connectivity Issues

I purchased two of the SparkFun DataLogger IoT boards a while back to use in conjunction with Qwicc temperature sensors so that I would be able to regularly log temperature information and send it over wifi. Additionally, I was using the sleep ability of this board to conserve battery power, so the unit would sleep for 5 minutes before powering back up and trying to connect to wifi, then sending the data. Originally, I was using the the built-in HTTP protocol for the board to upload the data and was successfully able to receive the data over wifi regularly, with the board only failing to connect to wifi every once in a while.

Recently however, the boards have begun to really struggle to connect to the wifi to the point that my old system is unusable, where the boards may take several hours to have a successful connection attempt between sleep cycles (so I’m losing all of my data).

My solution to this has been to swap to using the IoT Web Server so that all the data will still be recorded to the microSD card, and then when a wifi connection is made the data will be uploaded to the web server and then automatically downloaded (using a pyton script) and processed like I had been doing before. However, due to the lengthy amount of time in between wifi connections, it has been very challenging to do any code debugging in python to ensure only the new data is being downloaded and saved every time (eventually this data will be used as a threshold check to update something else so I can’t just make use of the SD card, I actually need to send the data over wifi). Additionally, the time between wifi connections seems like it may even be slowing down which worries me since these devices will be left alone to run for a long while once I have all the code working.

EDIT: To clarify, all the above work was done post updating the boards firmware, however when the board firmware is left as it was when it shipped, the wifi connects more regularly (order of 30 minutes for the same setup), but still not often enough to use the original system. Additionally, when the updated firmware is used, the wifi will sit for up to 3 minutes trying to connect before indicating a failure to connect and then moving on to staying awake for 60s and then entering sleep mode, resulting in roughly 4 minutes of awake time (much more battery consumed). Alternatively, using the original firmware results in typically 30s or less of time attempting to connect to wifi, with a max of 1.5 minutes, which is preferred. Unfortunately, using the original firmware with the new system will not work due to the IoT Web Server being added after the firmware updates. Another way to solve this might be to use a different built-in method, but I do not know enough about the other methods to know if they would be able to store data for extended periods of time before sending it.

Any suggestions as to why or what is causing the boards to not connect to the network are appreciated.

I don’t have many suggestions for the disconnects, but you could fairly easily append timestamps to the data and have the python script only look for fresh/new data

Have you tried it on a different WiFi network?

That is basically what I am currently doing, its just been difficult to debug the code and ensure everything is working. However, for the past several hours the boards have been connecting regularly again, so I’m not quite sure what that is about, although it has been heavily appreciated. It’s been several weeks of trying since the last time they did this so idrk what’s up.

I have not tried to connect them to other networks, because this is for a work project and the only wifi network that they will be able to use is the one they are on (so it would be sort of pointless).

I am hoping that they continue to connect regularly like this so I can finish developing my new python code just in case they start failing to connect regularly again. Then it won’t be as big of an issue.

1 Like