首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Raspi /如何在Web接口上切换GPIO引脚赢得10个IOT C#

Raspi /如何在Web接口上切换GPIO引脚赢得10个IOT C#
EN

Stack Overflow用户
提问于 2016-02-13 09:11:12
回答 1查看 1.7K关注 0票数 1

我想控制我的raspberry pi的GPIO引脚通过一个网络接口。通常的解决方案是使用apache运行Linux,并通过web接口启动一些python脚本。

但是我想用一个运行windows 10物联网的c#书面解决方案来完成这个任务。我发现了一个小的webserver (http://www.codeproject.com/Articles/1505/Create-your-own-Web-Server-using-C),但我不知道如何用GPIO引脚的当前状态填充网站,也不知道如何处理按钮单击以切换GPIO引脚。

有人知道在哪种情况下是可解的吗?

PS:我想控制继电器板上的一些led条和其他灯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-16 00:16:01

Windows 10 IoT Core和Raspberry Pi的工作方式是,中间有连接这两个部分的东西。像一座桥。Azure (微软的云平台)非常适合这一点。

在Azure中,您有一个名为“存储队列”的服务,它本质上是一个FIFO (先到先出)。所以你把一些东西放在你的网站上,连接到Azure,然后你的Raspberry Pi从队列中读取。如果队列中有什么东西;Raspberry Pi可以做一些事情(比如通过设置电压通过GPIO端口闪光灯)。这基本上可以触发任何电力,而不仅仅是一个LED。

简单网页

首先从Visual创建一个简单的ASP.NET MVC应用程序开始,通过文件=>新建项目=>

然后进入主页文件夹中的index.cshtml (当您打开网页时,它是前端和主登陆页)。

用按钮制作一个简单的表单:

代码语言:javascript
复制
<form method="POST" action="/Home/ToggleLight">
    <button>Toggle</button>
</form>

然后右键单击解决方案中的“引用”,然后选择“管理NuGet包”。

搜索“Azure Storage”并按“WindowsAzure.Storage”上的安装。

登录到Azure (portal.azure.com)和f中,介绍如何设置存储帐户并通过Storage创建队列。https://github.com/msdevno/LED-to-Azure-Starter-Pack

进入“控制器”文件夹中的HomeController.cs并创建如下CloudQueue函数:

代码语言:javascript
复制
private static CloudQueue InitializeQueue()
{
    var connectionstring = "YOUR OWN CONNECTION STRING GOES HERE==";
    var cloudStorageAccount = CloudStorageAccount.Parse(connectionstring);
    var queueClient = cloudStorageAccount.CreateCloudQueueClient();

    var queue = queueClient.GetQueueReference("rpi2queue"); //Name of queue

    try
    {
        queue.CreateIfNotExistsAsync();
    }
    catch (Exception ex)
    {
        Console.WriteLine("it didn't work! Here is the error: " + ex.Message);
    }
    return queue;
}

另外,不要忘记在HomeController.cs-文件中使用语句添加以下语句。

代码语言:javascript
复制
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;

在HomeController.cs-文件中创建一个ToggleLight方法,如下所示:

代码语言:javascript
复制
[HttpPost]
public ActionResult ToggleLight()
{
    var queue = InitializeQueue();
    var message = new CloudQueueMessage("On,1000");
    queue.AddMessage(message);

    return RedirectToAction("Index");
}

您的网站现在已经完成,可以在Azure的队列中添加消息,按一下按钮。

为覆盆子创建UWP应用程序

您现在需要做的是为Raspberry Pi 2 IoT核心设备创建UWP应用程序。"QueueReader_RPI2"-folder包含一个功能齐全的UWP应用程序,它包含关于如何通过读取刚才创建的Azure中的队列来触发GPIO端口的代码。

https://github.com/msdevno/LED-to-Azure-Starter-Pack/tree/master/Source/LED2Azure

这就是你如何创建一个连接到Azure的网站,它触发了Raspberry Pi,使LED灯亮起来。

编辑:你也可以看一看GitHub-repo的视频(用挪威语,但你会捕捉到漂移,如果你挣扎的话,只需按照代码遍历):https://channel9.msdn.com/Series/MSDEVNO/LED-to-Azure-Starter-Pack,如果你想看Raspberry Pi 2是如何连接的,你可以看另一个视频,它可以遍历你需要的部分和它是如何连接的(也是用挪威语):https://channel9.msdn.com/Series/MSDEVNO/IoT-og-Raspberry-Pi-2-Kickstart-Guide

如果你有新的问题,请记得把有用的帖子标记为答案来关闭你的线程,然后启动一个新的线程。请不要在同一条线上问几个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35378085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档