.Net Web API服务,可从Raspberry Pi 4中读取传感器的信息

时间:2020-09-26 14:55:22

标签: raspberry-pi mosquitto

我是树莓派4的初学者,我将不胜感激。 我正在.net中做一个简单的项目-基本上,我有一个Web APi服务,该服务应读取raspberry Pi设备传感器的指示。我已经阅读到我的Web APi服务和树莓派传感器之间最简单的通信是建立一个MQTT代理以充当IOT服务器 是否有人尝试过,这是一个简单的过程。这也是一个简单的代码,我应该用Python编写命令。我看到大多数人都使用蚊子,因为它很容易在Pi上安装。https://mosquitto.org/。在我的Web APi c#项目中,我将使用MQTT库向该代理发送(发布)和接收消息(传感器指示)。问题是–很难将带有传感器指示的传感器信息从Raspberry发送到代理。

非常感谢您。

2 个答案:

答案 0 :(得分:0)

我认为您的问题比较零散:

您正在读取什么传感器? 您需要蚊子吗?取决于您要执行的操作,呼叫的频率,对传输性能或有效负载大小的担心等。您可能需要也可能不需要MQTT代理,如果需要,则可以使用MQTTnet或类似方法在.Net中构建一个代理。

您说您正在起步,但是您已经或知道如何构建.Net Web API,在这种情况下,我说请坚持您所知道的,并决定是否以后要使用灭蚊路线。 如果您具有.Net Web API,则可以针对.Net Web API编写python请求。 这很容易,因为python并不难上手。

如果您想坚持使用.Net,并且对它更满意,请浏览Mono或运行VS Code https://www.hanselman.com/blog/HowToInstallVisualStudioCodeOnARaspberryPi4InMinutes.aspx,其中有些甚至已加载.Net Core。

您甚至可能需要冒险尝试一些实验性选项(例如Windows 10 Arm和Windows IOT Core),然后才能在它们上运行.Net应用程序。

答案 1 :(得分:0)

就您而言,您绝对不需要蚊子/ mqtt运输工具。延迟时间足够长,只能使用常规的.Net Web API。

合并以下教程: https://pimylifeup.com/raspberry-pi-humidity-sensor-dht22/ https://www.w3schools.com/python/module_requests.asp

理想情况下,您想发布数据,但是例如,在这里,这是一个get请求。

Python示例:

x = requests.get('http://localhost:5000/api/raspberrypi?sensorId=1&temperature=22.5&humidity=34')

您的.Net Web Api端点:

public async Task<IHttpActionResult> Get(int sensorId, double temperature, double humidity)
{
  var timeStamp = DateTime.Now; //Date & Time of receiving reading.
  // Your save code here
}

注意,如果您有多个共享控制器的传感器,我会为sensorId包含一个字段。