I’ve just discovered that the SIMs from Soracom don’t support NB-IoT yet, so they can’t connect to the narrowband network. They redirected me to Rogers, saying they are the only Canadian IoT provider that has NB-IoT (Cat-M2) coverage. I’m currently trying to obtain an NB-IoT SIM card from them. If Rogers can’t provide a SIM for me, I’ll just use the Soracom SIM to connect to the LTE or 4G networks (because, luckily for me, the MKR1500 doesn’t only support NB-IoT, but also Cat-M1 networks such as LTE). If it comes to that, I won’t be able to use narrowband technology for the project.
On another note, I coded the data collection part of the project. In the meantime that I wait for another SIM, I can start optimizing. The sensors must read multiple data points, from which the code will calculate the average and show the result. Here is the order in which the readings will occur and how they will be calculated:

The plan is to dip the device in the water and wait 10 seconds before pushing the “take readings” button, to give the sensors time to stabilize. Then, H2OSupport will take the ORP readings, since we’ve realized it is important to take them quickly. The device will calculate the average ORP value in a matter of nanoseconds. After that, it will procede to take the EC readings, and calculate the average once again. The same steps are true for the pH readings. At around 15 seconds of pressing the “take readings” button, the turbidity readings will be taken. And finally, the temperature readings will be taken. The temperature sensor is solicited last because it is the sensor who’s values take the longest to stabilize.
Therefore, the total time of which the device is in the water should be around 40 to 50 seconds.
