I was working on a low cost option to connect some sensors to Hana Cloud Platform. HCP Internet Of Things Services (BETA) helped me realize this quicker and in standardized way. On searching internet for possibilities, I came across wifi modules using SoC called ESP8266 from Espressif Systems. I was able to connect DHT11 (Temperature and Humidity sensor) via ESP8266 to HCP IOT Services (BETA). This blog is just to share my experience.
ESP8266 is a low cost Wifi Chip from Espressif Systems. Some vendors have used this chip and provided various WiFi modules. All ESP8266 WIFI Modules come with built in TCP/IP Stack. They have a programmable 32bit Microcontroller and it can be programmed as an internet router to which other devices can connect to or it can be programmed to act as WiFi Client to connect to other servers or both at the same time.
Depending on the modules (ESP-1 to ESP-12) you purchase, There are several GPIOs (General Purpose I/O pins) along with SPI, UART and more which enables connecting many types of devices with this module.
Some advantages
Some limitations that bothered me
More information on the module can be found here
Espressif has released their SDK to program this module. It is complex and needs a fair amount of learning effort to use the SDK. Open source communities have made this simple by providing two easy ways to do it.
We have to create Device Type, Message Type and Device in IOT cockpit which we will use while sending messages from a device.
Following are the links where you get more information on HCP IoT Services.
Try out SAP HANA Cloud Platform Internet of Things (IoT) Services (BETA) and Starter Kit
I assume you already have Hana Cloud Platform Account. If not, you can follow this link to create one.
Enable Internet of Things Services (BETA) and Go to the service.
Install Message Management Service from Internet of Things Services Cockpit (BETA)
Provide
Add user to the role Iot-MMS-User.
Go to the Java Applications in Hana Cloud Platform Cockpit and select "iotmms" from the list of java applications.
In the resulting screen as shown below, you can go to Internet of Services Cockpit by clicking on the tile 'View registered devices and device types'.
Now It is time to configure our device. Follow the steps mentioned in the images below.
Add a device type
Add a Message Type as shown in the image below
Create a Device as shown in the picture below.
Copy the Device ID and token and save it somewhere. We will be using it while sending message from the device.
This completes the configuration steps we need to do before actually sending sensor data to HCP.
We have a Device called ESP8266_DHT11 with ID (90c8ca3d-b1a7-4496-889f-f9305b2892e2) which is of type TemperatureAndHumidity. We can send message from this device to Hana Cloud Platform IoT services using HTTP POST with JSON string as payload. We have to send OAuth token along with message to HCP.
A HTTP Client is provided in the iotmms application itself. We can also use an external http client to test our configuration. I used a Chrome App called Advanced Rest Client to send messages to HCP to mock the message is from a device.
Request
Response for first request
Response for next requests
You can view the messages that were automatically stored in HCP by going to iotmms application
ESP8266 can be programmed by connecting it to a computer via USB 2.0 to TTL Converter. I used CP2102 converter.
Connecting ESP8266 to CP2102 converter.
ESP8266 | CP2102 |
---|---|
RX | TX |
TX | RX |
CH_PD | 3.3V |
GPIO0 | GND |
VCC | 3.3V |
GND | GND |
Connect DHT11 Data pin to GPIO2 and VCC and GND of the ESP8266.
Once these connections are made, You are ready to program the ESP8266.
Part-2 describes Overcoming limitations of ESP8266 Modules.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
26 | |
15 | |
14 | |
14 | |
13 | |
8 | |
8 | |
7 | |
6 | |
5 |