It kinda depends on how “professional” you want to implement that. There are ways to quickly hack together a proof of concept and there are ways to build a super secure and safe solution.
Some questions you should ask yourself
- how is it supplied via network / does it have interenet access?
- How is it initially configured?
- How many devices and locations are we talking? How do you want to manage those?
- Can you access it if you need to re-configure it? (e.g. when it is supplied via Wifi and the password changes) Or is it placed in a remote location?
- Is it a problem when someone opens it and thinkers with it? (do you have some keys stored on the device, for example to update the weather info, could those be abused?)
Can your API be abused to a degree where it is a problem for you or someone else?
Do you maybe have som sentivie or paid data there? - How do you want to do firmware/software updates?
- Is it a problem when one device gets compromized?
- How long should it survive? Temperature range/environmental conditions? Time? (think of limited lifetime of flash storage)
- How much power do you have available or shall it be battery powered?
An esp32 could be an adequate solution. An RPI should also be useable.
With the esp32 you can encrypt the flash and sign the images. It also offers a/b paritioning which is good when one image fails to boot or the update process gets interrupted.
I’d personally go with the esp32 as it seems to be better fitting the situation. Just keep in mind that the effort on your side is probably higher.
Implement some configuration interface, get used to the environment.
But if you write your app in C I guess it should be possible to run on both.
It might even make sense to slap together a proof of concept with an rpi because this will take less time and then switch to an esp32.
no raid, get a second one as off-site backup