专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

Web服务器:一个综合的web应用

作者:白栎旸   来源:本站原创   点击数:  更新时间:2014年05月06日   【字体:
    前文我们介绍了一个简单的web应用:通过web显示当前的温度和湿度,程序非常简单。本文介绍的这个web应用则相对要综合一些,这个应用的功能如下:
 
    1、可以读取当前温湿度
    2、可以通过web控制继电器实现远程控制开关的功能
    3、能够设置网络参数,并将网络参数保存到EEPROM
    4、通过web对Rainbow进行软件复位
    5、使用了独立看门狗,确保应用永远不会“死掉”
 
    在软件包的“Projects\Web-Complex”文件夹包含了本文的完整工程,可以直接编译、烧写和调试。由于程序量相对之前介绍的应用要多一些,所以就不一一介绍了,这个应用实际上是综合了之前介绍的各个功能模块基础上形成的,程序其实也比较浅显易懂,程序量(不含注释)大约200行左右,请大家自己分析。
 
    程序编译无误后,下载到Rainbow中,然后准备一张TF卡,用读卡器将Projects\Web-Complex\www这个文件夹拷贝到TF卡的根目录中,将TF卡插入Rainbow卡座中;如果需要接上继电器,需要将PA0、PA1和继电器控制端口进行连接,将PA0对应的继电器接到插座上、PA1对应的继电器和灯泡相连,如果继电器使用的输入控制电压是5V,请注意需要从5V接口取电,准备完毕后按下复位键,然后打开浏览器,在浏览器的地址栏输入:http://192.168.1.15,我们将看到下列的界面:
    页面首先显示的是当前的温度和湿度,点击“刷新”按钮可以采集最新的温湿度;页面顶部是功能区,可以在几个功能之间进行切换。点击“开关控制”,将进入下列界面:

    我们可以点击相应的按钮进行开关灯和开关插座,如图所示,此时LED1亮了,如果此时和PA0连接有继电器和插座,那么插座将会通电。点击“网络设置”,将进入下列界面:

    在这个界面中,我们可以选择使用自动获取网络配置或者手动指定网络参数,输入相应信息后点“保存配置”按钮后,信息将会保存到EEPROM。
 
    如果点击“重启系统”,MCU将会复位。
 
    在这个应用中,为了保证系统永远不会死机,我们采用了独立看门狗,使用看门狗非常简单,我们看看程序片段:
int main()
{
  setup();
 
  //开启看门狗,10秒之内必须喂狗
  IWDG_Configuration(10000);
  while(1) 
  {
    server.processConnection();
    //喂狗,防止复位
    IWDG_ReloadCounter();
    if(reboot) softReset();
  }
}
 
    程序首先调用IWDG_Configuration(10000);设置喂狗时间,这里设置的是10s,也就是说10秒之内如果没有喂狗的话,MCU将会自动复位;然后在每个循环调用IWDG_ReloadCounter()来进行喂狗。程序正常运行期间每次都能保证在10s之内喂狗,如果出现故障,无法在10s之内喂狗,MCU将会自动复位。

 

关闭窗口

相关文章