电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>会根据Web API调用的响应使LED闪烁的开源项目

会根据Web API调用的响应使LED闪烁的开源项目

2022-12-23 | zip | 0.25 MB | 次下载 | 免费

资料介绍

描述

在此项目中,您将使用适用于 Raspberry Pi 2 组件上的 Windows 10 IoT Core 的 Adafruit 入门包来创建一个项目,该项目会根据 Web API 调用的响应使 LED 闪烁。

硬件设置

按照页面底部的 Fritzing 图将 Raspberry Pi2 连接到面包板和其他组件。

注意:LED 引脚已从之前的Blinky 示例从 GPIO 5 更改为 GPIO 18。 

代码

主页.cs

您可以从https://github.com/ms-iot/adafruitsample下载代码启动项目,我们将引导您完成添加与 Web 服务对话并在地图上获取您的 pin 所需的代码。什么地图?

打开“Lesson_201\StartSolution\Lesson_201.sln 并打开 MainPage.xaml.cs 文件。

我们已经填写了一些方法作为您在此解决方案中的起点。如果你想跳到前面,你可以在以下位置找到所有代码已完成的解决方案:“Lesson_201\FullSolution\Lesson_201.sln”

在 MainPage 类的顶部添加以下行。这些定义了您将用于控制 LED 的 Pi2 上的哪个引脚以及对您将很快添加的 InternetLed 类的引用。

 密封部分  : 
    {
        
          GPIOToUse =  ;

        
        InternetLed  ernetLed;

        主页()

现在在 OnNavigatedTo 方法中添加代码,它将:

  1. 创建一个新的 InternetLed 对象
  2. 进行 Web API 调用以将我们的图钉放在制造商地图上
  3. 初始化对象
  4. 调用 webapi 获取我们的延迟值。
  5. 使用返回的延迟循环 100 次,每次通过都会使 LED 闪烁。

如果您不想在地图上添加图钉,请删除MakePinWebAPICall();  


protected override async void 
{
    调试。 ;

     ;

    
    {
        
        internetLed =   ;

        
        internetLed。
         blinkDelay = await internetLed.  ;

         (  i =  ; i <  ; i++)
        {
            互联网主导。 ;
            等待任务。;
        }

    }
    抓住(例外 e)
    {
        调试。 ;
    }
}

InternetLed.cs

现在您将添加一个新的类文件,其中大部分工作将实际执行。

从主菜单中选择项目->添加类...

添加新项对话框将打开并默认为 Visual C# 类。

输入InternetLed.cs作为文件名,然后单击添加

将为您创建并打开类文件。

更新使用的

您需要替换文件顶部的 using 部分,以便代码可以引用 GPIO 设备、Web 界面和系统诊断。

   .Net.Http;
 Windows.Devices.Gpio;

命名空间 Lesson_201
{

班级成员

在类括号内添加以下行,稍后代码将引用这些行。

  
    {
        
         GpioController gpio;
        GpioPin LedControlGPIOPin;
          LedControlPin;

        
           DefaultBlinkDelay =  ;

        
          eLedState { Off, On };
        eLedState _LedState;

类构造器

现在,添加将存储用于控制 LED 的引脚值的类构造函数代码。

公共 
    {
        调试。 ;

        
        LedControlPin = ledControlPin;
    }

初始化成员

添加初始化代码,它负责设置与 Pi2 通用输入输出 (GPIO) 控制器通信

公共无效
{
    调试。 ;

     
    gpio = GpioController。 ;

    LedControlGPIOPin = gpio.  ;
    LedControlGPIO引脚。 ;

    
    GpioPinValue startingValue = LedControlGPIOPin. ;
    _LedState = (startingValue  GpioPinValue.Low) ? eLedState.On : eLedState.Off;
}

LedState 属性

这将与 led 状态(开与关)的交互包装到一个中央位置。

//LED交互的属性。
eLedState LedState
{
    {_LedState; }
    
    {
         .WriteLine("InternetLed::LedState::set " +  .ToString());
        (LedControlGPIOPin !=  )
        {
            GpioPinValue newValue = (  == eLedState.On  GpioPinValue.High : GpioPinValue.Low);
            LedControlGPIO引脚。(新值);
            _LedState =;
        }
    }
}

眨眼法

添加处理更改 LED 状态的方法。

// 将 LED 的状态从 )       
         
        {
             == eLedState.On )
            {
                LedState = eLedState。;
            }
            
            {
                LedState = eLedState。;
            }
        }

GetBlinkDelayFromWeb 方法

这是该类的主要工作完成的地方。

首先设置 HttpClient 调用,然后执行它。然后将返回的字符串输出到调试通道中,这样就可以看到了。

接下来,我们确定延迟的值是多少并返回它。  

 
        
          WebAPIURL =  ;
        
         {
            Debug.WriteLine(  );

             responseString =  ;

            
            {
                (  client =   ())
                {
                    
                    responseString = await client.GetStringAsync(WebAPIURL);

                    
                    Debug.WriteLine(  .Format(  , responseString));
                }
            }
            (例外 e)
            {
                Debug.WriteLine(e.Message);
            }

              (!  .TryParse(responseString, out  ))
            {
                = DefaultBlinkDelay;
            }

            
              ;
        }
    }
}

试试看

输入所有代码后,您可以构建解决方案并在 Pi2 上运行代码。如果需要,您可以查看有关如何在 PI 上连接和运行代码的说明,重新访问第 1 课 - Blinky

打开 Visual Studio 的输出选项卡。如果需要在主菜单上使用Debug -> Window -> Output

现在您可以观察 Debug.WriteLine 命令的输出。  

查找以“Response string:”开头的消息,随后将在“[]”方括号中包含来自 Web API 的响应。

MainPage::OnNavigatedTo
InternetLed::新InternetLed
InternetLed::InitalizeLed
InternetLed::MakeWebApiCall
响应:[  ]
InternetLed::LedState 关闭

闪烁的 LED

此时,您的 LED 应该根据从 Web API 返回的时间字符串的值大约每秒闪烁一次。

在这里查看下一课


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费