Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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){
