Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

In previous lessons, we have learnt many example on how to use web browser in PC to monitor to control a remote device through HTTP protocol.  Such HTTP protocol has some problem. First, it needs run a web server in Arduino which has limited memory. Therefore the performance is slow and not stable. Second, it can only has one direction control (from PC to control remote device). It is not a 100% Thing to Thing connection required by many IoT applications.

This lesson we will discuss how to use two MEGA-Iot Shields to make Things-to-Things communication by UDP protocol.  Please be noted that if you need do experiment in this lesson, you need buy two pcs of Osoyoo Mega-IoT extension shields.

In order to make duplex communication between two IoT, we need use a new internet protocol called UDP.  UDP is very commonly used by email and IP phone service.  It is a very simple protocol which allows internet device to send one way data to destination device. You only need tell UDP software the IP address and Port number, then destination can get the message.

First, please plug OSOYOO MEGA-IoT Extension Board into MEGA2560 board:

Step 1 Install latest Arduino IDE (If you have Arduino IDE version after 1.1.16, please skip this step)
Download Arduino IDE from https://www.arduino.cc/en/Main/Software?setlang=en , then install the software.

Step 2 WifiEsp Library Installation (if you have installed WifiESP library, please skip this step)

OSOYOO MEGA-IoT extension TX/RX pin to Arduino A9/A8 pin by default. So in Arduino sketch code, we need use Software Serial Port to communicate with ESP8266 (set A9 as TX and A8 as RX in softwareserial object).

To use this wifi shield in Arduino IDE, we need download WiFiEsp-master library from following link:
https://osoyoo.com/driver/WiFiEsp-master.zip

Open Arduino IDE,  click Sketch – Include Library- Add .Zip library to load above zip files into Arduino IDE.

Step 3 After installing above library, please download the main code from following link, unzip it, you will see a folder called “smarthome-lesson18”:

https://osoyoo.com/driver/smarthome/smarthome-lesson18.zip

Unzip the downloaded zip file, you will see two sub-folders in smarthome-lesson18: UdpSend  and UDPreceive .

UdpSend should be installed in the sender Arduino device. It is to send UDP data(in the sample code,message is “what’s your name?”

UDPreceive should be installed on the other Arduino device which receive data from sender device. It is to show incoming UDP message and send response “my name is alice” back to sender device).

Step 4 After above operations are completed, connect OSOYOO MEGA2560 Board to PC with USB cable.

Step 5 Arduino IDE:  Choose corresponding board type and port type for you project .

Load UdpReceive.ino to Receiver Arduino device

Step 6 Please run sample code for receiver device in lesson 3, please record the receiver device IP address, you’ll need it in the step below.

Step 7 Arduino IDE:  Click file – Open to load UdpReceive.ino to Receiver Arduino device

Note: In the  sketch, find  line 16,17 as following:

char ssid[] = "******"; // your network SSID (name)char pass[] = "******"; // your network password

Please replace the ****** with your correct wifi SSID and password, otherwise your project can not connect to Internet.

Load UdpSend.ino to Sender Arduino device.

Step 8 Arduino IDE:  Click file – Open to load UdpSend.ino to Sender Arduino device

Note: In the  sketch, find  line 16,17 as following:

char ssid[] = "******"; // your network SSID (name)char pass[] = "******"; // your network password

Please replace the ****** with your correct wifi SSID and password, otherwise your project can not connect to Internet.

You also need change line 20 as following (recorded in step 6):

char remote_server[] = “192.168.50.102”;  // replace receiver device ip address  here

If you don’t know receiver device IP address, you need run sample code for receiver device in lesson 3 

Open sender device’s serial monitor, you will see following screen:


Open receiver’s serial monitor, you will see following screen:

You can see Sender’s message “What’s your name?”

Now back to sender’s serial monitor, you will see following screen:

Now you can see new response message “I am Alice” which is from receiver device.