Show last authors
1 **~ Table of Contents:**
2
3 {{toc/}}
4
5
6
7 = 1.  Introduction =
8
9
10 (((
11 In this chapter, we set up a CoAP/ MQTT server by using Open Source MQTT Broker : [[EMQX.IO>>url:https://www.emqx.io/]]. And show how to communicate it with CoAP and MQTT.
12 )))
13
14 (((
15 Below is the network structure. The end device use CoAP to connect our Emqx server via NB-IoT network. EMQ X broker will further process the data for the actually application.
16
17
18 )))
19
20 [[image:image-20220530084843-1.png]]
21
22 Network structure
23
24
25
26 = 2.  Install CoAP server =
27
28
29 Set up example in Ubuntu 18.04
30
31 (% class="box" %)
32 (((
33 sudo apt-get update
34 sudo apt-get upgrade
35 wget [[https:~~/~~/www.emqx.io/downloads/broker/v3.2.7/emqx-ubuntu18.04-v3.2.7_amd64.deb>>url:https://www.emqx.io/downloads/broker/v3.2.7/emqx-ubuntu18.04-v3.2.7_amd64.deb]]  #download the installation package.
36 sudo dpkg –i emqx-ubuntu18.04-v3.2.4_amd64.deb  #install EMQX
37 emqx start            # Start EMQX service
38 emqx_ctl status   #check if EMQX is running
39 ./bin/emqx_ctl plugins load emqx_coap # Run COAP service
40 )))
41
42 (((
43 (% style="color:red" %)**Notice: CoAP default port use 5683, if you install EMQX in a cloud server, make sure you open the UDP port 5683. So can receive the packets from NB-IoT.**
44
45
46
47 )))
48
49 = 3.  Test CoAP Server =
50
51 == 3.1  Install Copper in Chrome ==
52
53
54 (((
55 (% style="color:blue" %)**1. Download Copper4Cr from [[https:~~/~~/github.com/mkovatsc/Copper4Cr>>url:https://github.com/mkovatsc/Copper4Cr]] and unpack it.**
56 )))
57
58 (((
59 (% style="color:blue" %)**2. Run install.bat in the directory.**
60
61
62 [[image:image-20220530085327-2.png]]
63 )))
64
65 Run install.bat
66
67
68
69 (% style="color:blue" %)**3. Load the unpacked CoAP APP in Google Chrome:**
70
71 [[image:image-20220530085423-3.png||height="241" width="1250"]]
72
73 Install Copper APP
74
75
76
77 [[image:image-20220530085531-4.png]]
78
79 Install APP Successful
80
81
82
83 (% style="color:blue" %)**4. Load the unpacked CoAP extension in Google Chrome:**
84
85 [[image:image-20220530085638-5.png||height="338" width="1320"]]
86
87 Install Copper Extension
88
89
90 [[image:image-20220530090104-7.png||height="389" width="1282"]]
91
92 Install Extension Successful
93
94
95
96 (% style="color:blue" %)**5. Replace the appID in file extension\endpoint\ClientPortChrome.js to Copper (Cu4Cr) Application ID**
97
98 [[image:image-20220530090444-10.png]]
99
100 Replace ID
101
102
103
104 (% style="color:blue" %)**6. Open the Copper extension. If you see below message, means install successfully.**
105
106 [[image:image-20220530090404-9.png||height="658" width="1238"]]
107
108 Install Finished
109
110
111
112 == 3.2  Test CoAP connection ==
113
114
115 (((
116 Use Chrome Copper externsion to connect to the CoAP server. Input coap:~/~/COAP_SERVER_IP/mqtt/topic0?c=t1 to connect to the MQTT topic0 in CoAP server. Replace COAP_SERVER_IP with your COAP Server IP address, and refer [[here>>url:https://github.com/emqx/emqx-coap]] for the CoAP detail in EMQX. When connection ok, you can see below window.
117
118
119 [[image:image-20220530090848-13.png||height="616" width="1154"]]
120 )))
121
122 Connect to CoAP server
123
124
125
126 == 3.3  Test CoAP Uplink ==
127
128
129 (((
130 Try to use MQTT.fx to subscribe a the topic (topic0) in the server. And use CoAP to send a message to this topic, we can see the message arrive the topic0 and shown in MQTT.fx.
131
132
133 [[image:image-20220530090939-14.png]]
134 )))
135
136 Use MQTT.fx to subscribe the topic
137
138
139
140 [[image:image-20220530091358-18.png||height="549" width="1035"]]
141
142 Use CoAP Exension to send a update to CoAP server
143
144
145
146 [[image:image-20220530091237-17.png]]
147
148 MQTT.fx get the update of this topic on CoAP server
149
150
151
152 == 3.4  Test CoAP Downlink ==
153
154
155 (((
156 Try to use MQTT.fx to publish a message to the topic (topic0) in the server. CoAP extension will see this incomming message.
157 )))
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0