Aurdino UNO WiFi问题向大神们求助

2016-08-282.1万
AI 快速预览详细 收起
本文讨论了使用Arduino UNO WiFi板子向服务器每秒发送字符串时遇到的问题。用户发现字符串在Terminal中以7秒间隔显示,无论调整LOOP内的delay或去掉delay,间隔依然为7秒。文章提供了详细的代码和拓扑结构,包括Arduino端的Ciao库配置和服务器端的Servlet代码。通过这些信息,可以帮助用户排查并解决这个问题。
上个月入手一枚Arduino UNO WiFi板子,据官网介绍,该板子是UNO集成了ESP8266,且可以不使用AT命令。入手后,一直有点别的事情要忙,昨天才拿出来试验一下。不过遇到个有趣的问题,希望大神们能给予指点。

我是打算用这板子,向服务器每秒发送一个字符串(门的开关状况、开关时间)。拓扑结构如下图:
Aurdino UNO WiFi问题向大神们求助图2

板子的设置没问题,按照官网的做即可,非常简单。
Aurdino UNO WiFi问题向大神们求助图1

然后就是灌了一段试验的代码,测试向服务器发送字符串"50":
  1. #include <Wire.h>
  2. #include <Ciao.h>
  3. #define CONNECTOR     "rest"
  4. #define SERVER_ADDR   "192.168.88.87" // Server IP
  5. String command = "/servlet/testWifi?p=50";
  6. void setup()
  7. {
  8.   Ciao.begin();
  9.   Ciao.write(CONNECTOR, SERVER_ADDR, command);
  10.   delay(50);
  11. }
  12. void loop()
  13. {
  14.   Ciao.write(CONNECTOR, SERVER_ADDR, command);
  15. }
复制代码
服务器端,有个Servlet接收这个字符串,然后在Terminal里显示。Servlet代码如下:
  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. @WebServlet(urlPatterns = {"/testWifi"})
  9. public class testWifi extends HttpServlet
  10. {
  11.     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  12.             throws ServletException, IOException
  13.     {
  14.         response.setContentType("text/html;charset=UTF-8");
  15.         try (PrintWriter out = response.getWriter())
  16.         {
  17.             request.setCharacterEncoding("UTF-8");
  18.             response.setContentType("text/html;charset=UTF-8");
  19.             String para01 = request.getParameter("p");
  20.             System.out.println("Parameter = " + para01);
  21.         }
  22.     }
  23.         
  24.     @Override
  25.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  26.             throws ServletException, IOException
  27.         {
  28.         processRequest(request, response);
  29.     }
  30.         
  31.     @Override
  32.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  33.             throws ServletException, IOException
  34.         {
  35.         processRequest(request, response);
  36.     }
  37.         
  38.     @Override
  39.     public String getServletInfo()
  40.         {
  41.         return "Short description";
  42.     }// </editor-fold>
  43. }
复制代码
服务器是抓到这个字符串了,貌似很成功。
Aurdino UNO WiFi问题向大神们求助图3

但是,这个字符串在Terminal里是以7秒间隔显示的!无论我怎么调整LOOP内的delay或者干脆去掉了delay,这个间隔依然是7秒!

请各位大神施以援手。老夫这厢作揖了。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(8)
kevinzhang19701
kevinzhang19701
作者
板子淘汰真快啊。

leejason
leejason
小弟也入手了这块板子,但是First Configuration 这里,已经USB供电但是找不到它创建的AP,无法访问其配置页面,是怎么回事啊
kevinzhang19701
kevinzhang19701
作者
回复leejason
:L唉,没办法
kevinzhang19701
kevinzhang19701
作者
Arduino.org上,获得一个回复。这个问题看来在这一版是没希望了。

kevinzhang19701
kevinzhang19701
作者
照搬了官方样例,restClient和ThingSpeak,问题仍在。奇了怪了!
kevinzhang19701
kevinzhang19701
作者
回复Grey

arduino.org官网上没有类似的问题提出,我后续会跟一个帖子,看看其他人是否也有这样的现象。反正,我是觉得有点奇怪。
我看网上的这块板子的应用,大部分是充当Web Server的。我用这板子当server端,没发现延迟问题。所以,个人感觉很奇怪。
Grey
Grey回复kevinzhang19701
不会是官方板子有坑吧,有上org的论坛看过吗?
Grey
Grey
是不是远程服务器本身有限制?跑样例的时候有问题吗?这是org新出没多久的板子
kevinzhang19701
kevinzhang19701
作者
回复Grey
远程服务器上应该没有什么限制,服务器在家里,我从公司通过浏览器提交,均是瞬间反映的。:Q
我另外借鉴板子Tian的样例再改改看看了。多谢。:handshake
kevinzhang19701
kevinzhang19701
作者
:Q看来用这板子的伙伴不多。。。
凌风清羽
凌风清羽
感觉好牛的板子,自己从来没玩儿过,只能围观了~~~~~~
kevinzhang19701
kevinzhang19701
作者
自己顶一下。
- 没有更多了 -