Difference between revisions of "Hornbill ESP32 IO Control"
Line 33: | Line 33: | ||
{| class="table table-striped table-hover table-condensed table-bordered" | {| class="table table-striped table-hover table-condensed table-bordered" | ||
|-class="info" | |-class="info" | ||
− | !Function | + | !Function || int parseRequest(char *json_string, hornbill_IO_type_t *ioReq); |
+ | |- | ||
+ | |description || This function parses the input string and extract the requested '''operation''', '''pinNum''' , '''value''' and copies them to I/p structure pointer. | ||
|- | |- | ||
|Arguments || | |Arguments || | ||
− | *json_string--> Received json string | + | *char *json_string--> Received json string |
− | *ioReq--> Parsed '''operation''', '''pinNum''' and '''value''' is copied to this structure | + | *hornbill_IO_type_t *ioReq--> Parsed '''operation''', '''pinNum''' and '''value''' is copied to this structure |
|- | |- | ||
|return value || | |return value || | ||
Line 43: | Line 45: | ||
*HORNBILL_IO_REQUEST_JSON_INVALID = 1, | *HORNBILL_IO_REQUEST_JSON_INVALID = 1, | ||
*HORNBILL_IO_REQUEST_NOACTION = 2 | *HORNBILL_IO_REQUEST_NOACTION = 2 | ||
+ | |} | ||
+ | <br><br> | ||
+ | |||
+ | |||
+ | {| class="table table-striped table-hover table-condensed table-bordered" | ||
+ | |-class="info" | ||
+ | !Function || int processRequest(hornbill_IO_type_t *ioReq) | ||
|- | |- | ||
− | |description || This function | + | |description || This function handles the requested IO operation. In case of read it reads the pin and stores its value which can be reported back. |
+ | |- | ||
+ | |Arguments || | ||
+ | *hornbill_IO_type_t *ioReq--> Received json string | ||
+ | *ioReq--> Parsed '''operation''', '''pinNum''' and '''value''' is copied to this structure | ||
+ | |- | ||
+ | |return value || | ||
+ | *HORNBILL_IO_REQUEST_VALID = 0, | ||
+ | *HORNBILL_IO_REQUEST_JSON_INVALID = 1, | ||
+ | *HORNBILL_IO_REQUEST_NOACTION = 2 | ||
|} | |} | ||
− | + | <br><br> | |
=Code= | =Code= |
Revision as of 19:17, 13 April 2017
In the last tutorial we saw how to use the Arduino ESP32 AWS IOT library to configure an AWS client to subscribe/publish to a topic/thing. At the end of the tutorial we logged the temperature and humidity using DTH11 sensor.
Contents
Hornbill IO operation
In this tutorial we will see how to control the ESP32 pins using the AWS IOT. For this we will be using the Hornbill_IO library. Hornbill_IO library currently supports the below four operation which will be extended in the near future.
- digitalRead
- digitalWrite
- analogRead
- analogWrite
Hornbill IO JSON Format
We have a specific protocol/json format defined for the IO operation. Below is the Json format for sending the data from Control Unit to ESP32 for writing a logic 1 to pin 13.
Below is the Json format for reporting the data from ESP32 to Server. The device is reporting the analog value(1023) of pin 36 to the server. .
Hornbill IO Structure
The above Json format is mapped to internal Hornbill IO control structure as below. This may change in the future as we add more functionality to Hornbill IO library.
Hornbill IO Functions
Function | int parseRequest(char *json_string, hornbill_IO_type_t *ioReq); |
---|---|
description | This function parses the input string and extract the requested operation, pinNum , value and copies them to I/p structure pointer. |
Arguments |
|
return value |
|
Function | int processRequest(hornbill_IO_type_t *ioReq) |
---|---|
description | This function handles the requested IO operation. In case of read it reads the pin and stores its value which can be reported back. |
Arguments |
|
return value |
|
Code