EthW5500+STM32
Dependencies: MQTT WIZnet_Library mbed
Fork of EthW5500 by
Revision 4:10f83daba9ea, committed 2018-04-20
- Comitter:
- AlexQian
- Date:
- Fri Apr 20 07:28:56 2018 +0000
- Parent:
- 3:54ad271708ff
- Child:
- 5:23424c038538
- Commit message:
- updata
Changed in this revision
ETHW5500.cpp | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/ETHW5500.cpp Fri Apr 20 01:37:27 2018 +0000 +++ b/ETHW5500.cpp Fri Apr 20 07:28:56 2018 +0000 @@ -1,13 +1,14 @@ #include "ETHW5500.h" //W5500接线 mosi,miso,sclk,cs,reset -WIZnetInterface wiz(PA_7,PA_6,PA_5,PB_6,PC_7); - +//WIZnetInterface wiz(PA_7,PA_6,PA_5,PB_6,PC_7); +extern WIZnetInterface wiz; +extern Serial pc; void meta_report(MClient& client, const char *topic, const char* payload = NULL, size_t payload_len = 0, bool retain = false, MQTT::QoS qos = MQTT::QOS1){ int ret = client.publish(topic, (void*)payload, payload_len, qos, retain); - printf("client.publish()=%d\r\n",ret); + pc.printf("client.publish()=%d\r\n",ret); } void messageArrived(MQTT::MessageData& md) { @@ -19,7 +20,7 @@ memcpy(buf, message.payload, len); buf[len] = '\0'; sscanf(buf, "%d", &value); - printf("received %d\r\n", value); + pc.printf("received %d\r\n", value); } MQTTSocket sock; MClient client(sock); @@ -27,37 +28,31 @@ { int ret; wiz.init(mac_addr); - printf("DHCP...\r\n"); + pc.printf("DHCP...\r\n"); wiz.connect(); - printf("IP: %s\r\n", wiz.getIPAddress()); - return ret; + pc.printf("IP: %s\r\n", wiz.getIPAddress()); -} -int Eth_ConnectToSer(char *URL) -{ - int ret; int timecount=1; - ret = sock.connect(URL,1883); - //printf("%d-th Server connetion attemp\n",timecount); + ret = sock.connect("tdxls-iot.xicp.net",1883); + //pc.printf("%d-th Server connetion attemp\n",timecount); while(ret!=0){ timecount++; - //printf("%d-th Server connetion attemp\n",timecount); - ret = sock.connect(URL,1883); + //pc.printf("%d-th Server connetion attemp\n",timecount); + ret = sock.connect("tdxls-iot.xicp.net",1883); if(timecount>20){ - printf("failed to connet Server,Please Check out and Reset\n"); + pc.printf("failed to connet Server,Please Check out and Reset\n"); return 1; } } - printf("sock.connect()=%d\r\n",ret); + pc.printf("sock.connect()=%d\r\n",ret); ret = client.connect(); if(ret != 0){ - printf("MQTT connect failed\r\n"); + pc.printf("MQTT connect failed\r\n"); return 1; } - printf("client.connect()=%d\r\n",ret); + pc.printf("client.connect()=%d\r\n",ret); return ret; - } int Eth_Subscribe(const char* ns,const char *NODE_NAME, const char* type) @@ -67,16 +62,16 @@ sprintf(topic, "/%s/%s/%s", ns, NODE_NAME, type); //printf("topic=%s\r\n",topic); ret = client.subscribe(topic, MQTT::QOS1, messageArrived); - printf("sock.subscribe()=%d\r\n",ret); + pc.printf("sock.subscribe()=%d\r\n",ret); return ret; } void Eth_Report(const char* ns,const char *NODE_NAME, const char* type,const char* payload = NULL, size_t payload_len = 0, bool retain = false) { - char topic[64]; - sprintf(topic, "/%s/%s/%s", ns, NODE_NAME, type); - //printf("topic=%s\r\n",topic); - meta_report(client, topic,payload,payload_len,retain); + char topic[64]; + sprintf(topic, "/%s/%s/%s", ns, NODE_NAME, type); + //printf("topic=%s\r\n",topic); + meta_report(client, topic,payload,payload_len,retain); }
--- a/main.cpp Fri Apr 20 01:37:27 2018 +0000 +++ b/main.cpp Fri Apr 20 07:28:56 2018 +0000 @@ -3,29 +3,27 @@ #include "MQTTSocket.h" #include "MQTTClient.h" #include "ETHW5500.h" - -DigitalIn BTN(PC_13); +Serial pc(PA_2,PA_3);//串口 +//W5500接线 mosi,miso,sclk,cs,reset +WIZnetInterface wiz(PA_7,PA_6,PA_5,PB_5,PB_4); +DigitalIn BTN(PA_4);//按键 //节点名称任取 char *NODE_NAME="n_12345"; //接在同一子网下的设备MAC地址必须不同 uint8_t mac_addr[6]={0x50,0x51,0x50,0x00,0x00,0x01}; -//服务器地址 -char *SeverURL="tdxls-iot.xicp.net"; int main() { - - const char* actuators = "switch,int\n"; + const char* actuators = "switch,int\n"; const char* sensors = "analog,mV\n"; - - Eth_Init(mac_addr);//初始化 - Eth_ConnectToSer(SeverURL);//连接到服务器 + pc.printf("Initing\n"); + Eth_Init(mac_addr); - Eth_Subscribe("control",NODE_NAME,"switch");//订阅服务器信息 + Eth_Subscribe("control",NODE_NAME,"switch"); - Eth_Report("event",NODE_NAME,"online",NULL,0,false);//报告节点状态 - Eth_Report("capability",NODE_NAME,"control",actuators,strlen(actuators),true);//报告传感器参数 - Eth_Report("capability",NODE_NAME,"values",sensors,strlen(sensors),true); - bool btn = 0;//报告GPIO电平 + Eth_Report("event",NODE_NAME,"online",NULL,0,false); + Eth_Report("capability",NODE_NAME,"control",actuators,strlen(actuators),true); + Eth_Report("capability",NODE_NAME,"values",sensors,strlen(sensors),true); + bool btn = 0; while(1){ bool newBTN = BTN; if(newBTN != btn){