【mbed OS5対応バージョン】データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリを使ったサンプルです。 ESP8266版 https://mlkcca.com/
Dependencies: Milkcocoa-os esp8266-driver
main.cpp@7:c9f56700cd88, 2017-09-06 (annotated)
- Committer:
- jksoft
- Date:
- Wed Sep 06 06:00:29 2017 +0000
- Revision:
- 7:c9f56700cd88
- Parent:
- 5:a3b89d999c47
mbed OS5.5.4????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jksoft | 0:df4f47ba0a47 | 1 | #include "mbed.h" |
jksoft | 0:df4f47ba0a47 | 2 | #include "Milkcocoa.h" |
jksoft | 2:1d12dee3e9ed | 3 | #include "ESP8266Interface.h" |
jksoft | 0:df4f47ba0a47 | 4 | |
jksoft | 0:df4f47ba0a47 | 5 | ESP8266Interface wifi(D1,D0); |
jksoft | 0:df4f47ba0a47 | 6 | RawSerial pc(USBTX,USBRX); |
jksoft | 0:df4f47ba0a47 | 7 | |
jksoft | 0:df4f47ba0a47 | 8 | /************************* WiFi Access Point *********************************/ |
jksoft | 0:df4f47ba0a47 | 9 | |
jksoft | 0:df4f47ba0a47 | 10 | #define WLAN_SSID "...SSID..." |
jksoft | 0:df4f47ba0a47 | 11 | #define WLAN_PASS "...PASS..." |
jksoft | 0:df4f47ba0a47 | 12 | |
jksoft | 0:df4f47ba0a47 | 13 | /************************* Your Milkcocoa Setup *********************************/ |
jksoft | 0:df4f47ba0a47 | 14 | |
jksoft | 0:df4f47ba0a47 | 15 | #define MILKCOCOA_APP_ID "...YOUR_MILKCOCOA_APP_ID..." |
jksoft | 0:df4f47ba0a47 | 16 | #define MILKCOCOA_DATASTORE "mbed_esp8266" |
jksoft | 0:df4f47ba0a47 | 17 | |
jksoft | 0:df4f47ba0a47 | 18 | /************* Milkcocoa Setup (you don't need to change this!) ******************/ |
jksoft | 0:df4f47ba0a47 | 19 | |
jksoft | 0:df4f47ba0a47 | 20 | #define MILKCOCOA_SERVERPORT 1883 |
jksoft | 0:df4f47ba0a47 | 21 | |
jksoft | 0:df4f47ba0a47 | 22 | /************ Global State (you don't need to change this!) ******************/ |
jksoft | 0:df4f47ba0a47 | 23 | const char MQTT_SERVER[] = MILKCOCOA_APP_ID ".mlkcca.com"; |
jksoft | 0:df4f47ba0a47 | 24 | const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID; |
jksoft | 0:df4f47ba0a47 | 25 | |
jksoft | 0:df4f47ba0a47 | 26 | extern void onpush(MQTT::MessageData& md); |
jksoft | 0:df4f47ba0a47 | 27 | |
jksoft | 0:df4f47ba0a47 | 28 | int main() { |
jksoft | 0:df4f47ba0a47 | 29 | |
jksoft | 0:df4f47ba0a47 | 30 | pc.baud(9600); |
jksoft | 0:df4f47ba0a47 | 31 | pc.printf("Milkcocoa mbed os ver demo\n\r\n\r\n\r"); |
jksoft | 0:df4f47ba0a47 | 32 | pc.printf("Connecting to %s\n\r",WLAN_SSID); |
jksoft | 0:df4f47ba0a47 | 33 | |
jksoft | 0:df4f47ba0a47 | 34 | int ret = wifi.connect(WLAN_SSID, WLAN_PASS, NSAPI_SECURITY_WPA_WPA2); |
jksoft | 0:df4f47ba0a47 | 35 | if (ret != 0) { |
jksoft | 0:df4f47ba0a47 | 36 | printf("\r\nConnection error\r\n"); |
jksoft | 0:df4f47ba0a47 | 37 | return -1; |
jksoft | 0:df4f47ba0a47 | 38 | } |
jksoft | 0:df4f47ba0a47 | 39 | pc.printf("\n\rWiFi connected\n\r"); |
jksoft | 0:df4f47ba0a47 | 40 | |
jksoft | 0:df4f47ba0a47 | 41 | Milkcocoa* milkcocoa = new Milkcocoa(&wifi, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID); |
jksoft | 0:df4f47ba0a47 | 42 | |
jksoft | 0:df4f47ba0a47 | 43 | milkcocoa->connect(); |
jksoft | 0:df4f47ba0a47 | 44 | |
jksoft | 0:df4f47ba0a47 | 45 | pc.printf("%d\n\r",milkcocoa->on(MILKCOCOA_DATASTORE, "push", onpush)); |
jksoft | 0:df4f47ba0a47 | 46 | |
jksoft | 5:a3b89d999c47 | 47 | #ifdef __MILKCOCOA_THREAD |
jksoft | 0:df4f47ba0a47 | 48 | milkcocoa->setLoopCycle(5000); |
jksoft | 0:df4f47ba0a47 | 49 | milkcocoa->start(); |
jksoft | 5:a3b89d999c47 | 50 | #endif |
jksoft | 0:df4f47ba0a47 | 51 | while(1) { |
jksoft | 0:df4f47ba0a47 | 52 | DataElement elem = DataElement(); |
jksoft | 0:df4f47ba0a47 | 53 | elem.setValue("v", 1); |
jksoft | 0:df4f47ba0a47 | 54 | |
jksoft | 0:df4f47ba0a47 | 55 | milkcocoa->push(MILKCOCOA_DATASTORE, elem); |
jksoft | 0:df4f47ba0a47 | 56 | |
jksoft | 5:a3b89d999c47 | 57 | #ifndef __MILKCOCOA_THREAD |
jksoft | 5:a3b89d999c47 | 58 | milkcocoa->loop(); |
jksoft | 5:a3b89d999c47 | 59 | #endif |
jksoft | 0:df4f47ba0a47 | 60 | Thread::wait(7000); |
jksoft | 0:df4f47ba0a47 | 61 | |
jksoft | 0:df4f47ba0a47 | 62 | } |
jksoft | 0:df4f47ba0a47 | 63 | } |
jksoft | 0:df4f47ba0a47 | 64 | |
jksoft | 0:df4f47ba0a47 | 65 | void onpush(MQTT::MessageData& md) |
jksoft | 0:df4f47ba0a47 | 66 | { |
jksoft | 0:df4f47ba0a47 | 67 | MQTT::Message &message = md.message; |
jksoft | 0:df4f47ba0a47 | 68 | DataElement de = DataElement((char*)message.payload); |
jksoft | 0:df4f47ba0a47 | 69 | pc.printf("onpush\n\r"); |
jksoft | 0:df4f47ba0a47 | 70 | pc.printf("%d\n\r",de.getInt("v")); |
jksoft | 0:df4f47ba0a47 | 71 | } |