智能家居项目-2


【1】注册和找回密码功能,Index.html中设置如下跳转连接

<h4><a href="./register.html">&nbsp;&nbsp;注册账号</a>&nbsp;&nbsp;

<a href="./getpwd.html">&nbsp;&nbsp;找回密码</a></h4>

<h4><a href="./alterpwd.html">&nbsp;&nbsp;修改密码</a>&nbsp;&nbsp;

<a href="./alter_usr.html">&nbsp;&nbsp;修改用户名</a></h4>

 

以register.html为例子,调用register.js中函数

<inputtype="submit" value="提交"style="width:80; height:30"onclick="register()"

该函数中利用document.getElementById获得用户的注册信息,再利用XMLHTTP对象与register.cgi进行数据交互的。

//Cgi文件完成SQLite的操作(相当一个应用层的main函数的c文件)中第一句必须是这句

printf("Content-type:text/html \n\n");

利用从标准输入获得数据即是获得了XMLHTTP对象发来的数据,往标准输出写入数据即是相当于发送数据给XMLHTTP对象,该对象将数据给js负责前台展现。

 

【1】

Index.html中加载<script language="javascript" src="login.js"></script>

<INPUTvalue=" 登  陆 " type="submit"style="color:#007ab5"onclick="login()">

 

【2】login.js中如下跳转到主界面,加载主界面时候就可以对用户名和密码进行校验

//组织数据包:/home.html?usrname=ygm&pwd=111111

var url ="/home.html?"+"usrname="+usrname+"&pwd="+pwd;

//【这是跳转页面,指定当前链接到/home.html网页】

window.location.href = url;

 

【3】利用div和li标签布局,

      <div id="header">

                      <!--当点击网页条标签时执行login.js文件中的jump_page(0)函数-->

                      <h2onclick="jump_page(0)" >SunPlusApp Smart Home</h2>

                      <divid="topmenu">

                            <ul>

                                  <li><aonclick="jump_page(1)" >LED Control</a></li>

                                  <li><aonclick="jump_page(2)" >Send Message</a></li>

                                  <li><aonclick="jump_page(3)" >Home Humiture</a></li>

                                  <li><aonclick="jump_page(4)" >Home Monitor</a></li>

                             </ul>

                       </div>

      </div>

jump_page函数如下,即是跳转到不同的网页

functionjump_page(index)

{

      switch(index)

      {

           case 0:

           {

                 window.location.href ="/home.html?"+g_url_data;

           }

           break;

     

           case 1:

           {

                 window.location.href ="/led_control.html?"+g_url_data;

           }

           break;

 

           case 2:

           {

                 window.location.href ="/send_message.html?"+g_url_data;

           }

           break;

 

           case 3:

           {

                 window.location.href ="/home_humiture.html?"+g_url_data;

           }

           break;

 

           case 4:

           {

                 window.location.href =g_url+":8000?"+g_url_data;

           }

           break;

 

           case 0xFF:

           {

                 window.location.href = g_url;

           }

           break;

          

           default:

           {

                 ;

           }

           break;

      }

}

 

【4】led_control.html中调用led_control.js中函数

<tr>

      <th >< id='led1' onclick='switch_led(1)'></td>

      <th ><id='led2'onclick='switch_led(2)'></td>

      <th >< id='led3'onclick='switch_led(3)'></td>

</tr>

 

该函数中利用XMLHTTP对象与switch_led.cgi进行数据交互的

function switch_led(led_number)

{

      var xmlhttp_object = createXHR();

      var URL = "/cgi-bin/switch_led.cgi";

      var xmlhttp_status;

      var cmd1 = '&';

 

      switch(led_number)

      {

           case 1:

           {

                 if(g_led_flag & 0x01)

                 {

                      g_led_flag &=0x06;//xx0

                 }

                 else

                 {

                      g_led_flag |= 0x01;//xx1

                 }

           }

           break;

          

           case 2:

           {

                 if(g_led_flag & 0x02)

                 {

                      g_led_flag &=0x05;//x0x

                 }

                 else

                 {

                      g_led_flag |= 0x02;//x1x

                 }

           }

           break;

          

           case 3:

           {

                 if(g_led_flag & 0x04)

                 {

                      g_led_flag &=0x03;//0xx

                 }

                 else

                 {

                      g_led_flag |= 0x04;//1xx

                 }

           }

           break;

          

           case 4:

           {

                 if(g_allled_flag == 1)

                 {

                      g_led_flag = 0x00;//000

                      g_allled_flag = 0;

                 }

                 else

                 {

                      g_led_flag = 0x07;//111

                      g_allled_flag = 1;

                 }              

           }

           break;

          

           default:

           {

                 ;

           }

           break;

      }

   

      //根据传进来参数

      display_change(g_led_flag);

      cmd1 += g_led_flag;

     

      if(xmlhttp_object)

      {

           cmd1=encodeURI(cmd1);

           cmd1=encodeURI(cmd1);

           xmlhttp_object.open("POST",URL,false);//false:synchronous;true:asynchronous//

           xmlhttp_object.setRequestHeader("If-Modified-Since","0");

           //alert('cmd1 = ' + cmd1);

           //switch_led.cgi发送数据,switch_led.cgi中就要控制灯

           xmlhttp_object.send(cmd1);

           if(4 == xmlhttp_object.readyState)

           {

                 if(200 ==xmlhttp_object.status)

                 {

                      //alert(xmlhttp_object.responseText);

                      get_led_status();

                 }

           }

           xmlhttp_object = null;

      }

      else

      {

           alert('please check the Bowser!');

      }

}

 

【5】

switch_led.c文件即是相当于测试LED驱动的测试文件而已。

//cgi第一句必须是这句

printf("Content-type:text/html \n\n");

利用从标准输入获得数据即是获得了XMLHTTP对象发来的数据,往标准输出写入数据即是相当于发送数据给XMLHTTP对象,该对象将数据给js负责前台展现。

 

 

项目开发环境 Linux+Arm53+C语言   项目需求    功能类别 功能名称 描述 家电控制模块 1、空调控制模块 信息显示 显示当前室内温度 自动控制 设置空调在某温度下自动开、关  2、风扇控制模块 状态显示 风扇开、关 自动控制 设置风扇的档数 3、灯光控制模块 状态控制 灯光的开/关控制 亮度 正常、节能  4、窗帘控制模块 自动开/关 根据室外的亮度自动开启/关闭窗帘 手动开/关 读取当前窗帘状态,手动开启/关闭 监控模块  1、烟感监控 自动控制 超过限量烟雾浓渡报警  2、红外监控 自动控制 有人非法闯进报警  3、报警功能 自动控制 打开、关闭  4、GPRS模块 信息收发 当有报警信息的时候,系统会自动将警报信息发送到指定的手机号码。 信息设定 设定接收信息的手机号  5、访客视频对讲 状态显示 观察访客信息、自定义门锁开、关 娱乐模块  1、收音机 状态控制 开、关 自定义 更换频道 自动调节声音 增大、减小  2、家庭影院 灯光控制 亮度效果调节 自动调节声音 增大、减小  3、音频播放 状态控制 开、关 自动调节声音 增大、减小 自定义模式 选择播放、随机播放、顺序播放、列表循环  4、数码相册 状态控制 开、关 自定义模式 选择播放、随机播放、顺序播放、列表循环 场景切换  1、在家模式 状态控制 家居电器开关、灯光亮度、监控状态  2、离家模式    项目源码结构:     |--bin            脚本目录         |--tar.sh     项目打包脚本     |--data           数据目录     |--include        头文件         |--beep.h     蜂鸣器模块         |--bmp.h      BMP图模块         |--config.h   项目配置文件         |--file.h     文件操作模块         |--jpeg.h     JPG图模块         |--led.h      LED模块         |--mp3.h      音频模块         |--mplayer.h  音频库模块         |--res.h      资源配置文件         |--tslib.h    触摸模块         |--ui.h       UI模块         |--vedio.h    视频模块     |--lib            库文件     |--pic            资源图片         |--icon       应用图标         |--ui         UI文件     |--shortcut       项目效果图     |--ext            第三方库         |--driver     驱动         |--lib        第三方库     |--src            代码目录         |--main.c     主程序         |--Makfile    自动编译脚本 --------------------- 作者:qq_39188039 来源:优快云 原文:https://blog.youkuaiyun.com/qq_39188039/article/details/83751526 版权声明:本文为博主原创文章,转载请附上博文链接!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁吃大象666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值