- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想通过网络界面控制我的树莓派的 GPIO 引脚。通常的解决方案是使用 apache 运行 Linux 并通过 Web 界面启动一些 python 脚本。
但我想使用运行 Windows 10 iot 的 c# 编写的解决方案来执行此操作。我找到了一个小网络服务器(http://www.codeproject.com/Articles/1505/Create-your-own-Web-Server-using-C),但我不知道如何用 GPIO 引脚的当前状态填充网站或如何处理按钮点击以切换 GPIO 引脚
有谁知道它可以用什么样的方式解决?
PS:我想通过继电器板控制一些 LED 灯带和其他灯。
最佳答案
Windows 10 IoT Core 和 Raspberry Pi 的工作方式是中间有一些东西连接两个部分。就像一座桥。 Azure(微软的云平台)非常适合这一点。
在 Azure 中,您有一项称为“存储队列”的服务,它本质上是一个 FIFO(先进先出)。因此,您从连接到 Azure 的网站将内容放入队列,然后您的 Raspberry Pi 从队列中读取。如果队列中有东西; Raspberry Pi 可以做一些事情(比如通过设置电压通过 GPIO 端口闪烁 LED)。这基本上可以触发任何带电的东西,而不仅仅是 LED。
首先通过 File => New Project => Web 从 Visual Studio 创建一个简单的 ASP.NET MVC 应用程序。
然后进入 Home 文件夹中的 index.cshtml(这是启动网页时的前端和主登录页面)。
制作一个带有按钮的简单表单:
<form method="POST" action="/Home/ToggleLight">
<button>Toggle</button>
</form>
然后右键单击解决方案中的“引用”并选择“管理 NuGet 包”。
搜索“Azure Storage”并在“WindowsAzure.Storage”上按安装。
登录到 Azure (portal.azure.com) 并按照有关如何设置存储帐户的指南并通过存储资源管理器创建队列。 https://github.com/msdevno/LED-to-Azure-Starter-Pack
进入“Controllers”文件夹中的 HomeController.cs 并创建一个 CloudQueue 函数,如下所示:
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 文件中添加以下 using 语句。
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
在 HomeController.cs 文件中创建一个 ToggleLight 方法,如下所示:
[HttpPost]
public ActionResult ToggleLight()
{
var queue = InitializeQueue();
var message = new CloudQueueMessage("On,1000");
queue.AddMessage(message);
return RedirectToAction("Index");
}
您的网站现已完成,可以通过单击按钮在 Azure 的队列中添加消息。
您现在需要做的是为 Raspberry Pi 2 IoT Core 设备创建 UWP 应用。 “QueueReader_RPI2”文件夹包含一个功能齐全的 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
请记住通过将有用的帖子标记为答案来关闭您的主题,然后如果您有新问题则开始新的主题。请不要在同一个话题中提出多个问题。
关于c# - Raspi/如何通过 Web 界面切换 GPIO 引脚 Win 10 IOT C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378085/
我拥有一台连接树莓的3d打印机。为了远程控制打印机(例如通过中继来关闭和关闭打印机),我制作了一个小的python脚本。 控制它的一种可能性是使用似乎可以正常工作的Telegram Bot(电茶壶)。
我正在尝试构建一个将在 Raspberry Pi 上运行的多进程应用程序。其中一个进程应该从 rpi 相机获取一帧并将其保存到磁盘以供其他进程之一使用。但是,python multiprocessin
我在尝试通过 USB 在 teensy 和 Raspberry Pi3 之间进行通信时遇到了一些问题。 当我发送 unsigned int 时,我收到所有包含字节值 13 的数字的错误数字,该字节已更
运行钴的 raspi-2_gold 时,无法播放选定的视频。它卡在黑屏上。 什么有效: 它最初能够加载所有缩略图 可以选择视频 所有视频控件工作正常 尝试过 Nerd 统计,否 接收到的帧,显示编解码
我目前正在开发基于 JavaFX 的跨平台应用程序。在 Windows 上它运行流畅,但在 Linux 上的 Raspberry Pi 3 上,阶段(又名 JFX 窗口)没有窗口框架。取而代之的是,在
我正在修补我的 RaspberryPi 和我的 Arduino 以通过 I2C 发送一些文本。到目前为止我已经开始工作了,但是出现了一个不应该存在的数字。 我正在发送“Hello”,将其转换为 int
我在 RasPi 4 (redis:6-alpine) 上的 docker 容器中运行 redis。 Nextcloud 在另一个容器中使用它(通过 docker-compose)。 由于几天 red
对不起我的英语水平。我想制作一个流式传输视频并运行多种功能的网页。我正在使用 python 和 flask 服务器。但是,有些问题我无法单独解决。我有源代码。这几乎是完美的。 源代码。 import
我创建了一个干净的Raspi安装,并刚刚开始安装nginx,但由于错误,我无法启动它,对于没有任何更改的新安装,这对我来说是不太符合逻辑的……。这里的错误:。也许有人可以帮助我,遗憾的是,我对Linu
我想在 Raspi 上安装 TensorFlow Lite。 我假设我可以首先pip install为 Raspi 预构建的 TensorFlow。我正在阅读交叉编译 TensorFlow Lite
实际上,我正在“魔镜”工作,现在我遇到了 python 脚本问题,应该打开/关闭我的显示器。 I copied the python script from this site #!/usr/bin/
我正在尝试在 Raspi (Pololu VL53L1X) 上使用飞行时间传感器,但 python 中没有该传感器的库。原始制造商为传感器提供了 C API,但我不知道如何在我的 python 代码中
我在 RASP PI 2B [Jessie lite] 上有一个 python 程序,它从终端命令行运行得很好。但是,当尝试从 cron 运行时,它会失败,如下所述。我已经设置了 mta 和日志记录。
我想安装 psutil 模块来读取 CPU 数据。不幸的是,安装后执行代码时仍然显示以下内容。 导入 psutil 导入错误:没有名为“psutil”的模块 如我所见,安装是在 Python 2.7
我买了 PiFace,我想关注 this指南,但我没有 raspi-blacklist.conf。 到目前为止我的步骤是: 我已经按照this安装了我的rpi指导。 我已执行sudo rpi-upda
我正在尝试在我的旧 Raspberry Pi B+ 第一代上安装“.NET Core 3.0”运行时,但由于运行 dotnet 命令时出现段错误,我无法让它运行。 首先,我使用arm32版本的二进制文
我在使用 Java 从 Raspi 中获得良好的声音时遇到了很大的问题。 我想为我用 Java 编写的媒体服务器编写一个小型 AirPlay 客户端。我开始使用 javazoom 中的 Player
我有一个 Raspberry Pi 3B,我想使用它来控制电机 PWM .在 Python 中,这非常适合将 GPIO 引脚的电压从 0% 逐渐增加到 100% (100% == 3.3V): imp
我想通过网络界面控制我的树莓派的 GPIO 引脚。通常的解决方案是使用 apache 运行 Linux 并通过 Web 界面启动一些 python 脚本。 但我想使用运行 Windows 10 iot
对于一个学校项目,我们正在尝试在 ntag213(Mifare Ultralight C 180Bytes)上写入,但我们无法在其上写入。除此之外,该库在读取 Ultralight C/ntag213
我是一名优秀的程序员,十分优秀!