【转】麒麟板V2.0-网页应用控制LED-Arduino中文社区 - Powered by Discuz! Archiver

OneNET 发表于 2017-7-7 10:17

【转】麒麟板V2.0--网页应用控制LED

本文实现功能,利用OneNET应用网页控件控制麒麟座LED。以及一些其他的东西。
首先感谢之前的网友提供了综合程序,我只是在各位的基础上增加了一些东西~

本文献给那些:想利用网页控制麒麟板的小伙伴,生成应用将数据流关联起来,然后再讲指令格式和我程序中的命名方式即可。
程序我也会附上去,我还将附上我的应用链接!!!
程序还有很多不足,欢迎来撕~

等我有空了,我再来一版FreeRTOS的。立帖为证~

应用链接:http://open.iot.10086.cn/appview/p/f632ad83b52343d162954d5e244b7f7b
-------------------------------------------正事儿-----------------------------------------------------

增加了一个小任务,用于控制LED,这个小任务里面有两个功能:a、打开一个呼吸灯;b、用占空比去控制LED灯
1、 任务代码段:victory:

[*]void PWMLED_Task(void *pdata)
[*]{
[*]      int i;
[*]      while(1)
[*]      {
[*]                if(PwmStatus)//this is the flag for PwmLED Switch
[*]                {
[*]                        UsartPrintf(USART1, "PWM-LED ON\r\n\r\n");
[*]                        for(i=100; i>50; i--)
[*]                        {
[*]                              bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_7, TIM8, 2,10000, i*100);
[*]                              OSTimeDly(10);
[*]                        }
[*]
[*]                        for(i=50; i<=100; i++)
[*]                        {
[*]                              bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_7, TIM8, 2,10000, i*100);
[*]                              OSTimeDly(10);
[*]                        }
[*]                }
[*]                else
[*]                {
[*]                        UsartPrintf(USART1, "PWM-LED OFF\r\n\r\n");
[*]                        OSTimeDly(100);
[*]                }
[*]
[*]                bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_8, TIM8, 3,10000, (10000-LED_duty*100)); //Control PWMLED Duty
[*]                OSTimeDly(800);
[*]      }
[*]}

复制代码
2、网页控件的设置以及指令编写(看图例)

3、串口接收程序的解析
增加判断信息,判断信息一定要与下达指令一直不然就接收不到哦

[*]void OneNetApp(USART_INFO *usartInfo)
[*]{
[*]      unsigned short i=0;
[*]      uint32_t temp=0;
[*]      UsartPrintf(USART1, "usart2Info.usartCmdBuf--> %s \r\n",usart2Info.usartCmdBuf); //专用调试接收指令打印
[*]      UsartPrintf(USART1, "usart2Info.usartExtBuf--> %s \r\n",usart2Info.usartExtBuf);
[*]      //printf("%s/r/n",usart2Info.usartCmdBuf);
[*]      if(strstr((char *)usart2Info.usartCmdBuf, "Red_Led"))
[*]      {
[*]                if(usart2Info.usartExtBuf == '1')    //ץȡ³öÀ´¾ÍÊÇÔÚλÖÃ1ÄǸöµØ·½²ÅÓÐÊý¾Ý
[*]                {
[*]//                        ledStatus.Led4Sta = LED_ON;
[*]//                        Led4_Set(LED_ON);
[*]                }
[*]                else if(usart2Info.usartExtBuf == '0')
[*]                {
[*]//                        ledStatus.Led4Sta = LED_OFF;
[*]//                        Led4_Set(LED_OFF);
[*]                }
[*]
[*]                OneNet_SendData(kTypeString);
[*]      }
[*]      else if(strstr((char *)usart2Info.usartCmdBuf, "Green_Led"))
[*]      {
[*]                if(usart2Info.usartExtBuf == '1')
[*]                {
[*]                        ledStatus.Led5Sta = LED_ON;
[*]                        Led5_Set(LED_ON);
[*]                }
[*]                else if(usart2Info.usartExtBuf == '0')
[*]                {
[*]                        ledStatus.Led5Sta = LED_OFF;
[*]                        Led5_Set(LED_OFF);
[*]                }
[*]
[*]                OneNet_SendData(kTypeString);
[*]      }
[*]      else if(strstr((char *)usart2Info.usartCmdBuf, "Blue_Led"))
[*]      {
[*]                if(usart2Info.usartExtBuf == '1')
[*]                {
[*]                        ledStatus.Led6Sta = LED_ON;
[*]                        Led6_Set(LED_ON);
[*]                }
[*]                else if(usart2Info.usartExtBuf == '0')
[*]                {
[*]                        ledStatus.Led6Sta = LED_OFF;
[*]                        Led6_Set(LED_OFF);
[*]                }
[*]
[*]                OneNet_SendData(kTypeString);
[*]      }
[*]      else if(strstr((char *)usart2Info.usartCmdBuf, "Yellow_Led"))
[*]      {
[*]                if(usart2Info.usartExtBuf == '1')
[*]                {
[*]                        ledStatus.Led7Sta = LED_ON;
[*]                        Led7_Set(LED_ON);
[*]                }
[*]                else if(usart2Info.usartExtBuf == '0')
[*]                {
[*]                        ledStatus.Led7Sta = LED_OFF;
[*]                        Led7_Set(LED_OFF);
[*]                }
[*]
[*]                OneNet_SendData(kTypeSimpleJsonWithTime);
[*]      }
[*]      else if(strstr((char *)usart2Info.usartCmdBuf, "PWMLED"))
[*]      {
[*]                if(usart2Info.usartExtBuf == '1')
[*]                {
[*]                        PwmStatus = 1;
[*]                }
[*]                else if(usart2Info.usartExtBuf == '0')
[*]                {
[*]                        PwmStatus = 0;
[*]                }
[*]
[*]                OneNet_SendData(kTypeString);
[*]      }
[*]      else if(strstr((char *)usart2Info.usartCmdBuf, "LED_Duty"))
[*]      {
[*]                for(i=0;i<usart2Info.usartExtLen;i++)//½«×Ö·û´®ÀàÐÍֵת»»³ÉÊýÖµÐÍ
[*]                {
[*]                        temp =temp*10+(uint32_t)(usart2Info.usartExtBuf-'0');
[*]                }
[*]                LED_duty = temp;
[*]                temp = 0;
[*]                OneNet_SendData(kTypeString);
[*]                UsartPrintf(USART1, "LED_duty--> %d \r\n",LED_duty);
[*]
[*]      }
[*]
[*]}


复制代码
4、实验现象及解释

a、按钮可以控制,PWMLED的打开和关闭
b、旋钮可以控制LED灯的亮度。由于麒麟座LED的电路采用的是低电平点亮,所以控件上显示66%时,示波器上显示的是高电平34%(可以示波器也可以显示低电平的占空比,我懒得设置了)。





本主题由 lihanliangbilly 于 2016-11-13 23:34 设置高亮
EDP指令命名格式.jpg (0 Bytes, 下载次数: 1377) 下载附件
2016-9-26 19:58 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif




EDP指令格式http://upfiles.heclouds.com/forum-app/2016/09/26/39e41f5e4c0079034216c74273595733.jpg
控件图例.jpg (0 Bytes, 下载次数: 1371) 下载附件
2016-9-26 19:55 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif




设计的控件http://upfiles.heclouds.com/forum-app/2016/09/26/e7a1123f7d54592b9ea917501237ecdd.jpg
指令图例解释.jpg (0 Bytes, 下载次数: 1375) 下载附件
2016-9-26 20:04 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif




指令图例解释http://upfiles.heclouds.com/forum-app/2016/09/26/da54c6aa5fad756114b501729318fef2.jpg
上传信息更改.jpg (0 Bytes, 下载次数: 1377) 下载附件
2016-9-26 20:08 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif




上传信息更改http://upfiles.heclouds.com/forum-app/2016/09/26/e016bacd4c3d2bfb0de1bd33cc69107b.jpg
tek0000.jpg (0 Bytes, 下载次数: 1375) 下载附件
2016-9-26 20:11 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif




示波器显示http://upfiles.heclouds.com/forum-app/2016/09/26/aafdab91c3c3575eeb1ba3c0b11c8a3b.jpg
占空比百分之66.jpg (0 Bytes, 下载次数: 1375) 下载附件
2016-9-26 20:16 上传 https://open.iot.10086.cn/bbs/static/image/common/rleft.gif https://open.iot.10086.cn/bbs/static/image/common/rright.gif




占空比66%http://upfiles.heclouds.com/forum-app/2016/09/26/c4dc6e7f6a783c482befba0ebd1a1538.jpg


页: [1]
查看完整版本: 【转】麒麟板V2.0--网页应用控制LED