之前拿去参赛的项目都太花里胡哨了 不太适合拿来水一篇教程 刚好学校创新实践课的学期作业是制作纸雕灯 所以为了玩出花来就做了一个可以通过网页控制模式的纸雕灯 而且为了省事和方便写这篇教程(其实是摸鱼摸到离展示还有一小时才开始写程序)所以弄得非常简单 但是麻雀虽小五脏俱全 基础的框架还是有的 (吧)


  1. 纸雕灯的制作

    因为这是个物联网教程,所以手工活就不详细介绍了,雪弗板哗啦一顿乱切,热熔胶噗嗞一顿粘,最后把LED灯带粘到底板上,做一个盒子出来,然后把一层层的切好形状的纸粘到木框上装进去放好,外观就完成了(

  2. 单片机程序的编写

    简单来说就是初始化连接WIFI,之后主程序循环执行四种功能对应的函数,这4种函数再循环调用httprequestsent函数发送http请求获取云端指令存入request_result,当返回值为change时跳出功能函数。但是因为mixly似乎无法通过拖块来改变函数类型 所以也需要在代码里把void httprequestsent 改成 String httprequestsent 否则无法编译。

    test1.gif

    mixly.mix

    3.云端服务的编写

       既然纸雕灯是从云端服务器获取指令,那么云端程序应该如何编写呢?我反正采用的是php+ajax+json,通过前端发消息到php存取json里           的数据

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="mdui.min.css">
    <script src="mdui.min.js"></script>
    <meta charset="utf-8">
    <script>
        function upload() {
            var xmlhttp;
            xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    //alert(xmlhttp.responseText);
                }
            }
            xmlhttp.open("GET", "/index.php?mode=change", true);
            xmlhttp.send();
        }
    </script>
</head>
<body class="mdui-theme-accent-light-blue">
    <center>
    <div class=".mdui-col-md-12 mdui-col-xs-10 mdui-col-lg-6 mdui-col-offset-lg-3 mdui-col-offset-xs-1">
        <button onclick="upload()" class="mdui-btn mdui-ripple mdui-color-theme-accent">切换工作模式</button>
</body>
</html>
<?php
$mode=$_GET["mode"];
$i=file_get_contents("settings.json");
$i=json_decode($i,true);
echo $i["command"];
$i["command"]="none";
$i=json_encode($i);
file_put_contents("settings.json",$i);
if($mode=="change"){
    $i=file_get_contents("settings.json");
    $i=json_decode($i,true);
    $i["command"]="change";
    $i=json_encode($i);
    file_put_contents("settings.json",$i);
}
?>

前端的AJAX函数通过httpget请求发送指令到index.php程序,php程序在接收到指令后将settings.json文件内的内容改为 none,当单片机向php发送httpget请求时,php程序就会将json文件内容丢出来决定是否变换纸雕灯的工作模式 虽然代码很多地方很奇怪(半个小时摸出来的

但是并不影响灯的正常工作 只要在单片机程序里把地址改成服务器index.php的地址就可以用了

关于怎么建立一个web服务器 windows可以使用phpstudy linux可以摸一个宝塔面板 都挺方便的

发布评论

分享到:

你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。