Советую посмотреть в сторону MQTT:
1. Он создан специально для IoT, в отличие от HTTP
2. Это стандарт, в отличие от того что вы там можете навелосипедить с голым TCP
3. Есть клиент для C#: Mqttnet вроде называется
4. Для esp32 и esp8266 он точно реализован. Про 8битные ардуинки не знаю.
Проблем с тем, что датчик и компьютер находятся в разных сетях быть не должно. MQTT с этим хорошо справляется, благодаря тому что построен поверх TCP.
На стороне сервера нужно будет установить брокер - их много и разных, и даже в облаках есть.
https://mqtt.org/software/
Брокер можно поставить отдельно, но можно поднять в рамках одного процесса с твоим приложением на C#, благо mqttnet такое позволяет