ESP8266 Developer Zone The Official ESP8266 Forum 2016-08-03T13:28:26+08:00 https://bbs.espressif.com:443/feed.php?f=7&t=2237 2016-08-03T13:28:26+08:00 2016-08-03T13:28:26+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8253#p8253 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
Alen,你好
我还有一些问题,就是关于mesh 网络和server之间的问题。mesh网络间的每个节点都有自己的地址,如果server 想跟其中一个通信,那一定要知道他的地址的,那么,server中应该如何保存那么多节点地址的,理论上mesh网络容量是341个,每个节点地址是6个字节。想问一下server是怎么保存这些地址的呢。


只要按照mesh header format组建包,然后把包发给root节点就可以了。

另外,mesh网络的容量是可调的,你可以根据max_hop来调节。

其实server应该做一个mac地址的backup,这样才可以知道有哪些设备,要控制这些设备时才可以使用mac地址控制。

Statistics: Posted by Guest — Wed Aug 03, 2016 1:28 pm


]]>
2016-08-02T10:05:30+08:00 2016-08-02T10:05:30+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8231#p8231 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> 我还有一些问题,就是关于mesh 网络和server之间的问题。mesh网络间的每个节点都有自己的地址,如果server 想跟其中一个通信,那一定要知道他的地址的,那么,server中应该如何保存那么多节点地址的,理论上mesh网络容量是341个,每个节点地址是6个字节。想问一下server是怎么保存这些地址的呢。

Statistics: Posted by Duke — Tue Aug 02, 2016 10:05 am


]]>
2016-07-28T10:45:33+08:00 2016-07-28T10:45:33+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8160#p8160 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> Statistics: Posted by Duke — Thu Jul 28, 2016 10:45 am


]]>
2016-07-27T17:45:42+08:00 2016-07-27T17:45:42+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8149#p8149 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我的ESP8266 接收到mesh网络传来的数据后,串口的打印为:

recv entrance
mesh_json_proto_parser
len:19, data:{"Temps":"26.4 ℃"}
mesh 连接去哪了? //注释:我设置的提示,不用处理
usr conn not exist
mesh is busy

3fff08d0 already freed

我的意愿是收到mesh网络传来的信息后,server能给一个反馈的信息。但是现状是没有发出去。
麻烦了,相关文件已经发送到邮箱。


已经给你回电话了,告诉你的方案的问题

Statistics: Posted by Guest — Wed Jul 27, 2016 5:45 pm


]]>
2016-07-26T16:24:45+08:00 2016-07-26T16:24:45+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8135#p8135 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
recv entrance
mesh_json_proto_parser
len:19, data:{"Temps":"26.4 ℃"}
mesh 连接去哪了? //注释:我设置的提示,不用处理
usr conn not exist
mesh is busy

3fff08d0 already freed

我的意愿是收到mesh网络传来的信息后,server能给一个反馈的信息。但是现状是没有发出去。
麻烦了,相关文件已经发送到邮箱。

Statistics: Posted by Duke — Tue Jul 26, 2016 4:24 pm


]]>
2016-07-26T16:17:06+08:00 2016-07-26T16:17:06+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8134#p8134 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
一直没打通。。。。肖工给我发个私人手机号吧,或者加我微信吧。我的手机号17806181868,给我发个信息吧


这两天我的座机被拆掉了,不好意思,你可以给我发邮件。

Statistics: Posted by Guest — Tue Jul 26, 2016 4:17 pm


]]>
2016-07-25T15:06:27+08:00 2016-07-25T15:06:27+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8103#p8103 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> Statistics: Posted by Duke — Mon Jul 25, 2016 3:06 pm


]]>
2016-07-23T09:07:21+08:00 2016-07-23T09:07:21+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8071#p8071 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>

Statistics: Posted by Duke — Sat Jul 23, 2016 9:07 am


]]>
2016-07-18T12:21:47+08:00 2016-07-18T12:21:47+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=8002#p8002 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我将mesh_demo的程序改写成了TCP server ,将ESP8266作为server,mesh网络与它通信,发现server接收没有问题,
当需要server与它发送数据的时候出现了问题,
调用“ if (espconn_mesh_sent(pespconn, (uint8_t *)header2, header2->len)) ”

显示:usr conn not exist ,mesh is busy 的问题。

希望圈里的朋友们帮忙解决一下,

也欢迎加入我们的讨论QQ群:243734539
点击右侧链接--->http://jq.qq.com/?_wv=1027&k=2L9RBbq


 你可以打我的电话:021-61649387(Alen),或者我打你电话,不过我不知道你的电话。

Statistics: Posted by Guest — Mon Jul 18, 2016 12:21 pm


]]>
2016-07-15T12:31:10+08:00 2016-07-15T12:31:10+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7968#p7968 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> 当需要server与它发送数据的时候出现了问题,
调用“ if (espconn_mesh_sent(pespconn, (uint8_t *)header2, header2->len)) ”

显示:usr conn not exist ,mesh is busy 的问题。

希望圈里的朋友们帮忙解决一下,

也欢迎加入我们的讨论QQ群:243734539
点击右侧链接--->http://jq.qq.com/?_wv=1027&k=2L9RBbq

Statistics: Posted by Duke — Fri Jul 15, 2016 12:31 pm


]]>
2016-07-14T11:05:20+08:00 2016-07-14T11:05:20+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7951#p7951 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> 我想让mesh节点与server进行通信,我知道mesh也是基于TCP 的,因此,我用网络调试助手做TCP server与mesh节点间通信,能实现mesh节点与server的互相通信。
于是,我想用ESP8266作为TCP server 来实现mesh节点 与server的通信, 我发现mesh节点能正常的发送给server 并解析出数据来,但是server要想发送给该节点反馈信息时,总是发送不出去。显示信息为:“usr conn not exist mesh is busy”不知道是为什么。
所以,我想请教一下Alen老师,ESP8266做server,该怎么和mesh网络间的节点进行互通呢?

附件是eclipse下的esp8266做server的程序,IP为:192.168.1.110 端口7000
麻烦肖工能帮忙解决一下!
谢谢!


Code:

   if (!espconn_mesh_get_src_addr(header, &src) || !espconn_mesh_get_dst_addr(header, &dst)) {
          MESH_DEMO_PRINT("get addr fail\n");
          return;
      }

      header2 = (struct mesh_header_format *)espconn_mesh_create_packet(
                    src,   // destiny address   
             dst,   // source address 
                              false, // not p2p packet
                              true,  // piggyback congest request
                       M_PROTO_JSON,  // packe with JSON format  M_PROTO_BIN
                              MESH_DEMO_STRLEN(resp),  // data length
                              false, // no option
                              0,     // option len
                              false, // no frag
                              0,     // frag type, this packet doesn't use frag
                              false, // more frag
                              0,     // frag index
                              0);    // frag length
      if (!header2) {
          MESH_DEMO_PRINT("create packet fail\n");
          return;
      }

      if (!espconn_mesh_set_usr_data(header2, resp, MESH_DEMO_STRLEN(resp))) {
          MESH_DEMO_PRINT("set user data fail\n");
          MESH_DEMO_FREE(header2);
          return;
      }
      MESH_DEMO_PRINT("mesh 连接去哪了?\n");
//      espconn_sent(&g_ser_conn,resp,MESH_DEMO_STRLEN(resp));      //将温度信息发送给节点!
      if (espconn_mesh_sent((struct espconn *)arg, (uint8_t *)header2, header2->len)) {
          MESH_DEMO_PRINT("mesh is busy\n\n");
          MESH_DEMO_FREE(header2);
//          return;
      }

      MESH_DEMO_FREE(header2);

Statistics: Posted by Duke — Thu Jul 14, 2016 11:05 am


]]>
2016-07-06T18:40:10+08:00 2016-07-06T18:40:10+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7798#p7798 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
想请教一个问题,我用一个8266节点做server,固定的IP为server_ip,并设置了端口为server_port。Mesh网络中的节点能够连接它,并向他发送数据,server也能够成功的收到mesh网络发来的数据。

但是,server却无法向mesh网络内的节点发送数据,总是显示mesh is busy,我是在server的接收函数: esp_recv_entrance()里面进行的发送。
if (espconn_mesh_sent(&g_ser_conn, (uint8_t *)header, header->len)) {
MESH_DEMO_PRINT("mesh is busy\n");
MESH_DEMO_FREE(header);
return;
}


你的server上运行的程序是什么?

Statistics: Posted by Guest — Wed Jul 06, 2016 6:40 pm


]]>
2016-07-06T15:58:58+08:00 2016-07-06T15:58:58+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7791#p7791 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
但是,server却无法向mesh网络内的节点发送数据,总是显示mesh is busy,我是在server的接收函数: esp_recv_entrance()里面进行的发送。
if (espconn_mesh_sent(&g_ser_conn, (uint8_t *)header, header->len)) {
MESH_DEMO_PRINT("mesh is busy\n");
MESH_DEMO_FREE(header);
return;
}

Statistics: Posted by Duke — Wed Jul 06, 2016 3:58 pm


]]>
2016-06-26T17:09:45+08:00 2016-06-26T17:09:45+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7504#p7504 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我想root节点根STM32 server 进行TCP通信用JSON数据格式,但是当我把cJSON移植到8266上面会报错,而STM32 server正常使用。

Code:

Description   Resource   Path   Location   Type
undefined reference to `pow'   cJSON.c   /ESP8266_MESH_DEMO-master/mesh_demo/demo   line 44   C/C++ Problem

我知道MESH网络中的数据也是用JSON封装的,如果我想用root节点与server进行TCP通信应该怎么使用JSON呢?


这个需要单独发布一个cJson的lib了

Statistics: Posted by Guest — Sun Jun 26, 2016 5:09 pm


]]>
2016-06-21T18:49:41+08:00 2016-06-21T18:49:41+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7449#p7449 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> Statistics: Posted by Duke — Tue Jun 21, 2016 6:49 pm


]]>
2016-06-21T11:47:14+08:00 2016-06-21T11:47:14+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7437#p7437 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我想root节点根STM32 server 进行TCP通信用JSON数据格式,但是当我把cJSON移植到8266上面会报错,而STM32 server正常使用。

Code:

Description   Resource   Path   Location   Type
undefined reference to `pow'   cJSON.c   /ESP8266_MESH_DEMO-master/mesh_demo/demo   line 44   C/C++ Problem

我知道MESH网络中的数据也是用JSON封装的,如果我想用root节点与server进行TCP通信应该怎么使用JSON呢?


你需要的pow会很复杂吗?
不会计算如pow(10, 1e-1)之类的吧?

Statistics: Posted by Guest — Tue Jun 21, 2016 11:47 am


]]>
2016-06-21T08:47:50+08:00 2016-06-21T08:47:50+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7430#p7430 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>

Code:

Description   Resource   Path   Location   Type
recipe for target '.subdirs' failed   Makefile   /ESP8266_MESH_DEMO-master   line 309   C/C++ Problem
Description   Resource   Path   Location   Type
undefined reference to `_sbrk_r'   ESP8266_MESH_DEMO-master      line 3351, external location: \build\tree\RC-2010.1_kuma\p4root\Xtensa\Target-libs\newlib\newlib\libc\stdlib\mallocr.c   C/C++ Problem
Description   Resource   Path   Location   Type
undefined reference to `pow'   cJSON.c   /ESP8266_MESH_DEMO-master/mesh_demo/demo   line 44   C/C++ Problem

Statistics: Posted by Duke — Tue Jun 21, 2016 8:47 am


]]>
2016-06-20T18:12:42+08:00 2016-06-20T18:12:42+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7420#p7420 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我想root节点根STM32 server 进行TCP通信用JSON数据格式,但是当我把cJSON移植到8266上面会报错,而STM32 server正常使用。

Code:

Description   Resource   Path   Location   Type
undefined reference to `pow'   cJSON.c   /ESP8266_MESH_DEMO-master/mesh_demo/demo   line 44   C/C++ Problem

我知道MESH网络中的数据也是用JSON封装的,如果我想用root节点与server进行TCP通信应该怎么使用JSON呢?


你把porting cJSON的错误信息upload上来吧,我们看一下什么错误,然后帮你解决。

Statistics: Posted by Guest — Mon Jun 20, 2016 6:12 pm


]]>
2016-06-20T10:01:09+08:00 2016-06-20T10:01:09+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7410#p7410 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>

Code:

Description   Resource   Path   Location   Type
undefined reference to `pow'   cJSON.c   /ESP8266_MESH_DEMO-master/mesh_demo/demo   line 44   C/C++ Problem

我知道MESH网络中的数据也是用JSON封装的,如果我想用root节点与server进行TCP通信应该怎么使用JSON呢?

Statistics: Posted by Duke — Mon Jun 20, 2016 10:01 am


]]>
2016-06-18T11:50:46+08:00 2016-06-18T11:50:46+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7398#p7398 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> 我想知道,你们把JSON又进行了封装,那我们应该怎么用它对数据进行JSON的包装和解析呢?
谢谢您!

Statistics: Posted by Duke — Sat Jun 18, 2016 11:50 am


]]>
2016-06-17T17:39:10+08:00 2016-06-17T17:39:10+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7391#p7391 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我用的是demo里的JSON数据包,上个问题暂时不用了,我遇到的新问题,我有一个json数据:
char *tst_data = "{\"timestamp\":\"2013-11-19T08:50:11\",\"value\":1}";
我想咨询一下,这个键值对应该怎么修改,比如我想修改,让value等于2?
要怎么操作呢?


这是json解析的具体问题,你可以看一下github上的cjson.
我们也可以把cjson作为一个单独的lib提供出来,不过还是建议你自己把cjson拿过来。

Statistics: Posted by Guest — Fri Jun 17, 2016 5:39 pm


]]>
2016-06-17T17:32:12+08:00 2016-06-17T17:32:12+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7390#p7390 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> char *tst_data = "{\"timestamp\":\"2013-11-19T08:50:11\",\"value\":1}";
我想咨询一下,这个键值对应该怎么修改,比如我想修改,让value等于2?
要怎么操作呢?

Statistics: Posted by Duke — Fri Jun 17, 2016 5:32 pm


]]>
2016-06-17T16:47:47+08:00 2016-06-17T16:47:47+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7389#p7389 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
我遇到了新的问题,目前我想用STM32做server,在解析数据包的时候有点问题,我知道在MESH的那个demo中,解析包可以根据*header请求出具体的Packet Body,用的是两个API函数:
espconn_mesh_get_usr_data_proto(header,&proto);和 espconn_mesh_get_usr_data(header,&usr_data,&header->len);这样就可以获取数据usr-data;但是,我要在STM32中做一个server ,接收的网络数据buff,如何通过函数,解析出usr_data呢?
或者,bool espconn_mesh_get_usr_data_proto(struct mesh_header_format *head,
enum mesh_usr_proto_type *proto);
这个函数是具体怎么实现获取Packet Body的呢?


Alen老师,麻烦帮忙解答一下。


请你描述一下你的具体的数据包?

Statistics: Posted by Guest — Fri Jun 17, 2016 4:47 pm


]]>
2016-06-14T10:03:57+08:00 2016-06-14T10:03:57+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7299#p7299 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> espconn_mesh_get_usr_data_proto(header,&proto);和 espconn_mesh_get_usr_data(header,&usr_data,&header->len);这样就可以获取数据usr-data;但是,我要在STM32中做一个server ,接收的网络数据buff,如何通过函数,解析出usr_data呢?
或者,bool espconn_mesh_get_usr_data_proto(struct mesh_header_format *head,
enum mesh_usr_proto_type *proto);
这个函数是具体怎么实现获取Packet Body的呢?


Alen老师,麻烦帮忙解答一下。

Statistics: Posted by Duke — Tue Jun 14, 2016 10:03 am


]]>
2016-06-08T14:43:44+08:00 2016-06-08T14:43:44+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7260#p7260 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]>
Duke wrote:
您好,肖工
我发现在mesh网络发送数据是通过
espconn_mesh_create_packet(***)
espconn_mesh_set_usr_data(header, tst_data, MESH_DEMO_STRLEN(tst_data))和
espconn_mesh_sent(&g_ser_conn, (uint8_t *)header, header->len)。
来实现发送用户数据的。而接受用户数据是通过下面的这个函数,
if(!espconn_mesh_get_usr_data(header,&usr_data,&usr_data_len))
return;
os_printf("\r\n收到用户数据:%s\r\n",usr_data);
当我通过os_printf打印出usr_data,我发现是一个mac地址。那我怎么获取,其他节点发来的数据包里的具体用户数据呢?

Thanks xiao.


其他节点需要给目的节点发送数据,发送的什么数据,espconn_mesh_get_usr_data获取的就是什么数据。

Statistics: Posted by Guest — Wed Jun 08, 2016 2:43 pm


]]>
2016-06-08T10:04:16+08:00 2016-06-08T10:04:16+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7253#p7253 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> 我发现在mesh网络发送数据是通过
espconn_mesh_create_packet(***)
espconn_mesh_set_usr_data(header, tst_data, MESH_DEMO_STRLEN(tst_data))和
espconn_mesh_sent(&g_ser_conn, (uint8_t *)header, header->len)。
来实现发送用户数据的。而接受用户数据是通过下面的这个函数,
if(!espconn_mesh_get_usr_data(header,&usr_data,&usr_data_len))
return;
os_printf("\r\n收到用户数据:%s\r\n",usr_data);
当我通过os_printf打印出usr_data,我发现是一个mac地址。那我怎么获取,其他节点发来的数据包里的具体用户数据呢?

Thanks xiao.

Statistics: Posted by Duke — Wed Jun 08, 2016 10:04 am


]]>
2016-06-01T15:03:24+08:00 2016-06-01T15:03:24+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7166#p7166 <![CDATA[Re: 新手学Mesh组网,求前辈指导!]]> https://github.com/esp8266/esp8266-wiki/wiki/Toolchain
2. Download Tools
viewforum.php?f=57

Statistics: Posted by Guest — Wed Jun 01, 2016 3:03 pm


]]>
2016-05-31T16:33:08+08:00 2016-05-31T16:33:08+08:00 https://bbs.espressif.com:443/viewtopic.php?t=2237&p=7150#p7150 <![CDATA[新手学Mesh组网,求前辈指导!]]> DescriptionResourcePathLocationType
Symbol 'M_PROTO_JSON' could not be resolvedmesh_demo.c/ESP8266_MESH_DEMO-master/mesh_demo/demoline 217Semantic Error

我是刚解除MESH网络,之前看了几遍MESh用户手册,也是把握不懂。我现在的问题是不知道怎么把程序跑起来。我想向乐鑫描述的那样能进行组网,控制更多的8266设备。还想问一下,有没有肖老师QQ号,或相关QQ群,可以学习。

很想实现组网功能!

Statistics: Posted by Duke — Tue May 31, 2016 4:33 pm


]]>