[开源硬件] esp8266如何通过get给服务器提交数据-基于Lua

[复制链接]
338|7
 楼主 | 2018-9-20 20:28 | 显示全部楼层 |阅读模式
终端设备用的是ESP8266
运行固件为NodeMCU,即嵌入式Lua环境
服务端基于PHP。简单的获取后保存上传的数据
演示代码:
服务端
  1. <html>
  2. <head>
  3. <head>
  4.   <title>数据收集器</title>
  5.   <meta charset="utf-8">
  6. </head>
  7. </head>
  8. <body>

  9. <?php
  10. $user_name = isset($_GET['name'])?$_GET['name']:null;
  11. $user_pwd = isset($_GET['pwd'])?$_GET['pwd']:null;
  12. $message = array(
  13.                 "type" => 0,
  14.                 "data" => "name:".$user_name." pwd:".$user_pwd
  15. );
  16. echo json_encode($message);       
  17. ?>
  18. <?php
  19. $file=fopen("test.csv","a+");
  20. fwrite($file, $_GET["name"]);
  21. fwrite($file, ",");
  22. fwrite($file, $_GET["pwd"]);
  23. fwrite($file, ",");

  24. fwrite($file, "\n");
  25. ?>

  26. </body>
  27. </html>
复制代码
改程序是一个PHP格式的网页文件,在网页框架内包含了2个php代码段,第一个获取get提交上来的两个数据,name和pwd
第二个PHP段是保存这两个变量传送来的数据,写入到一个CSV文件里去。
————————————————————————————————————————————————————————————————————————
终端两个代码文件,一个是初始化联网用的init.lua,一个是test.lua
  1. --init.lua
  2. print("set up wifi mode")
  3. wifi.setmode(wifi.STATION)
  4. sta_cfg={}
  5. sta_cfg.ssid="360WiFi-SJB"
  6. sta_cfg.pwd="shejibu123"
  7. wifi.sta.config(sta_cfg)

  8. wifi.sta.connect()
  9. print("IP unavaiable, Waiting...")
  10. tmr.alarm(1, 1000, 1, function()
  11. if wifi.sta.getip()~= nil then

  12. tmr.stop(1)
  13. print("Config done, IP is "..wifi.sta.getip())
  14. dofile("test.lua")
  15. end

  16. end)
复制代码
其实这个文件可以保持不变,只需要修改你的WIFI账号密码就行了,另外就是下面要跳转到什么文件里。这个文件名可以根据实际修改
终端我设定的是定时提交一组数据
  1. tmr.alarm(1, 10000, 1,  function()
  2. http.get("http://192.168.1.229:8088/test.php?name=Hello&pwd=World", nil, function(code, data)
  3.     if (code < 0) then
  4.       print("HTTP request failed")
  5.     else
  6.       print(code,data)
  7.     end
  8. end)
  9.       print("----------------------------------------------\n")
  10. end)
复制代码
所以我建立了个定时器函数,定时为10秒中断一次,然后回调函数是一个get提交,这里的URL其实可以使用变量处理的,这样就可以将你外挂传感器获取的内容通过它提交上去了

 楼主 | 2018-9-20 20:31 | 显示全部楼层

通过串口监控打印的数据。显示都是成功的
然后还可以去网站根目录下查看是否有test.csv

成功的通过网址链接将数据上传到了我自己电脑搭建的服务器上。
网址跳转我使用的是花生壳。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2018-10-17 15:54 | 显示全部楼层
支持一下!楼主试试传一些不同的信息比如时间戳之类的,看看会不会丢包。
| 2018-10-18 21:23 | 显示全部楼层
最近也在玩NodeMCU,有空可以交流一下
你最优秀
 楼主 | 2018-10-18 21:41 | 显示全部楼层
ta1ent 发表于 2018-10-17 15:54
支持一下!楼主试试传一些不同的信息比如时间戳之类的,看看会不会丢包。 ...

不会丢,我测试过发送序列,发送了1个多小时一个都没错。
 楼主 | 2018-10-18 21:42 | 显示全部楼层
ta1ent 发表于 2018-10-17 15:54
支持一下!楼主试试传一些不同的信息比如时间戳之类的,看看会不会丢包。 ...

我用PHPstudy搭建的服务器,用花生壳做内网穿透,都很靠谱,然后让全国各地朋友进行访问测试都没问题。这个方案非常经济实惠。
 楼主 | 2018-10-18 21:43 | 显示全部楼层
877049204 发表于 2018-10-18 21:23
最近也在玩NodeMCU,有空可以交流一下
你最优秀

哈哈,谢谢夸赞。版主**流或者去硬件2**流都可以。

评论

877049204 2018-10-19 15:28 回复TA
Come on 加QQ好友拉我入群 
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /1 下一条

快速回复 返回顶部 返回列表