I want to develop a quality water IoT system. The picture below shows the idea.

enter image description here

I'm not sure the device that I have to use for this project.

My idea is:

  1. Every X minutes (I'm not sure the time) get information from the sensors.
  2. Run some machine learning algorithms and/or deep learning algorithms on the device itself.
  3. Send all data to my server.
  4. Visualize data on my dashboard.
  5. To be able to make requests to the sensors in real time from my dashboard.

Firstly I thought using an Arduino UNO with the wifi module ESP8266, but is the best choice if I want to carry out artificial intelligence actions? Is a Raspberry Pi a best option? Combine both?

I have no intention of selling it, or anything like that. But I would like it to be as professional as possible and that is why I ask your help. I have put the Arduino and Raspberry as examples because they are the devices that I know the most (I also use the Lopy too) but if there were better options I would be happy to learn them.

My idea with this project is not only the project, but also, learn how to start projects and choose the best option.

NOTE: If it's possible I prefer use Python/MicroPython lenguage.

NOTE 2: Maybe in a future I will change Wifi to Lorawan (I'm not sure if it's important for you).

  • 2
    define best choice
    – jsotola
    Commented Mar 15, 2021 at 20:53
  • @jsotola The choice a professional would make. The optimal device for this situation.
    – Lleims
    Commented Mar 16, 2021 at 8:41
  • 1
    so, you mean cheapest?
    – jsotola
    Commented Mar 16, 2021 at 14:12

1 Answer 1


Hard to tell based on the current information, but if you want to run ML/DL algorithms you will need some computing power, so at least a Raspberry Pi. It supports Python but far from optimal if it will be running from a battery.

In my opinion you could run these algorithms on server side and just focus on data collection on the device itself. This way you will be fine with Arduino and/or ESP. But probably you should omit the Arduino and run the ESP as a stand alone device. It supports MicroPython.

Both Raspberry Pi and ESP have built-in WiFi, that is convenient and does not require external circuits.

Switching to LoraWan on the other hand will need external circuits that you have to be prepared for. Probably it won't be a problem with a Raspberry Pi as it has plenty of IO ports but you have to be more careful with an ESP or Arduino to have free IO for a LoraWan module later. In such cases you should do a quick research how most LoraWan modules are interfaced and ensure that you will have those interfaces available on your device.

  • Thank you! I am aware is "more coherent" run the IA on the server, but I want to focus run it on the device. Therefore I understand that your opinion would be to use an RPi
    – Lleims
    Commented Mar 15, 2021 at 12:09
  • @Lleims In that case yes, generally yes, but it highly depends on the details of the AI part of the application. Commented Mar 15, 2021 at 12:10
  • And the new RPi Pico, can play some paper? Or you discard it as an Arduino? THANK YOU!! :)
    – Lleims
    Commented Mar 15, 2021 at 12:12
  • @Lleims No it is more powerful than that having a dual-core 133 MHz processor compared to the 16 MHz or so controller on an Arduino Uno, but still with 256 kB SRAM it does not seem powerful enough to run ML/DL algorithms. Commented Mar 15, 2021 at 12:38
  • Are you wanting to run the "learning" part of the deep learning on the device ? Are you sure ? I would have assumed that you'll collect data from multiple tanks and then run some learning on that. You may then want to run the resulting model on the device, to infer something (or to filter out un-interesting data). Running the resulting model maybe easy as Pi ! Commented Mar 15, 2021 at 22:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.