BLE to TCP Gateway


IoT stands for Internet of Things; meaning many objects, if not everything, will be connected to the Internet to exchange information. People expect IoT will provide great convenience to the next generation of humanity. For example, people can check and control the gas valve using their mobile phones while being outside. People can also check the temperature inside the house using a temperature sensor and adjust the temperature so they can enjoy a pleasant rest when they return. The potential of IoT is endless.



In order for things to connect to the Internet, there has to be means of communication. Ethernet uses a wired connection and consumes a lot of electric current whereas Wi-Fi is wireless but could be expensive. ble_to_tcp_article_2


For those reasons, we chose BLE to implement low power wireless IoT. BLE stands for Bluetooth Low Energy, which is a form of low power Bluetooth that we commonly use. The advantage of BLE is that it can operate for a maximum of 5~6 months with a single coin cell battery and can be configured into a compact size and low price. The disadvantage of BLE is that it does not support TCP and cannot connect to the internet directly since it uses local network only.


Bluetooth already has a dominant position in the field of low-power short-range wireless connection. In general, bluetooth devices such as heart rate monitor, smart watch, and various sensors use a smartphone as the gateway to connect to the Internet(TCP/IP). However, there is an increase of cases where bluetooth need to connect to the TCP/IP network without a smartphone. Although bluetooth 4.2 supports IPSP(Internet Protocol Support Profile), it is difficult to use it because it requires a high-end product based on Linux for router or gateway. In the example below, we wanted the gateway to be cheap and light.

WIZnet would like to introduce a BLE to TCP solution which enables bluetooth devices to access cloud services such as Google, IBM, and Amazon without a smartphone. WIZnet created a low power IoT Gateway using W5500, WizFi310, and nRF52832.




With this gateway, the various data of BLE node can be received as BLE and converted into a desired internet protocol such as TCP, UDP, and MQTT; and then, transmit data to various cloud servers. Data transmitted from the node can be checked by a smartphone or PC. Conversely, if one inputs data on a smartphone or PC, it can be transmitted to node via cloud server.



We implemented to transmit BLE data to Thingspeak which is Cloud Server. The node confirms the heart rate data on Thingspeak DashBoard using heart rate service, a BLE standard profile.



Follow the next steps.

  1. Installation of Nordic’s basic development environment
  2. H/W Setting
    ->  Connect the micro USB to PC and connect the Ethernet cable to the router as shown below. Also connect the J_LINK for writing.
  3. Sign up for Thingspeak and create a channel
    -> Sign up for Thingspeak and create a channel by connecting to
    -> Channels -> My Channels -> New Channel -> Fill the Name -> Save Channel
  4. API Key application
    -> Copy Write API Key from API Keysble_to_tcp_article_11-> Open project from \…\BLE_to_TCP_HRS_Thingspeak\examples\ble_central\ble_app_hrs_c\pca10040\s132\arm5_no_packs and write the copied Key value to #define WRITE_API_KEY of main.c)
  5. Build & Writing
    -> – After building, write F/W and SoftDevice(BLE Stack) via nRFgo Studio. ble_to_tcp_article_13
    ble_to_tcp_article_14-> If there is a device that supports BLE Heart Rate Profile, it will be automatically recognized and sent to Thingspeak Cloud. Users can check via Thingspeak Dash Board. ble_to_tcp_article_15


In order to download the F/W, please refer to the following link.


Curator : Mason in WIZnet
You can contact to


Please Login to comment
Notify of