diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2018-06-13 20:41:24 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2018-06-13 20:41:24 +0200 |
commit | a4cbbee0671ff20560c31a2f3945b6131496ab2b (patch) | |
tree | 7b3a7d80db0eb3377d87bb812a3cc233f7f0cd4d /assignments/mqtt-with-button/mqtt-with-button.md | |
parent | e4bdeee49319bc5570dfa0e998e4e68f3c33ee8c (diff) | |
download | iot-workshop-ndc-2018-a4cbbee0671ff20560c31a2f3945b6131496ab2b.tar.gz iot-workshop-ndc-2018-a4cbbee0671ff20560c31a2f3945b6131496ab2b.tar.bz2 iot-workshop-ndc-2018-a4cbbee0671ff20560c31a2f3945b6131496ab2b.tar.xz iot-workshop-ndc-2018-a4cbbee0671ff20560c31a2f3945b6131496ab2b.zip |
wip
Diffstat (limited to 'assignments/mqtt-with-button/mqtt-with-button.md')
-rw-r--r-- | assignments/mqtt-with-button/mqtt-with-button.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/assignments/mqtt-with-button/mqtt-with-button.md b/assignments/mqtt-with-button/mqtt-with-button.md new file mode 100644 index 0000000..6b8872b --- /dev/null +++ b/assignments/mqtt-with-button/mqtt-with-button.md @@ -0,0 +1,57 @@ +# Assignment: MQTT with button + +## Goals + +* Get aquainted with MQTT. +* Publish a message when a button is pressed. + +## Step 1 + +Wire up this schematic on the bread board: + +![](schematic/mqtt-with-button_schem.pdf) + +![](schematic/mqtt-with-button_bb.pdf) + +# Step 2 + +* Read button, print message on terminal + +# Step 3 + +* Connect to the Wi-Fi network + * Use `WiFi.localIP()` + +* Connect to MQTT broker + +# Step 4 + +* Publish a message on button press + +## Tips + +To generate a client id make something with `ESP.getChipId()`{.cpp} + +Creating a `String` from a number: + +* `String(123) => "123"`{.cpp} +* Hex formatted: `String(0x123abc, HEX) => "123abc"`{.cpp} + +Some APIs require "plain C strings" aka a `char *`{.cpp}. They can be converted with `String::c_str()`: + +~~~.c++ +char *cStr = myString.c_str(); +~~~ + +## Bonus + +**1:** Print the heap free size at regular intervals. + +**2:** Implement min, max and average temperature over configured interval. + +Suggested parameters: + +* Sample interval: 2 seconds +* Publish interval: 10 seconds + +**3:** Make sure the values are calculated even if we're reconnecting to the Wi-Fi or MQTT server. |