【mbed OS5対応バージョン】データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリを使ったサンプルです。 ESP8266版 https://mlkcca.com/

Dependencies:   Milkcocoa-os esp8266-driver

Committer:
jksoft
Date:
Fri Feb 10 01:30:14 2017 +0000
Revision:
0:df4f47ba0a47
Child:
2:1d12dee3e9ed
the first

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:df4f47ba0a47 1 #include "mbed.h"
jksoft 0:df4f47ba0a47 2 #include "MQTTInterface.h"
jksoft 0:df4f47ba0a47 3 #include "MQTTClient.h"
jksoft 0:df4f47ba0a47 4 #include "Milkcocoa.h"
jksoft 0:df4f47ba0a47 5 #include "MClient.h"
jksoft 0:df4f47ba0a47 6 #include "EthernetInterface.h"
jksoft 0:df4f47ba0a47 7
jksoft 0:df4f47ba0a47 8 #include "ESP8266Interface.h"
jksoft 0:df4f47ba0a47 9 ESP8266Interface wifi(D1,D0);
jksoft 0:df4f47ba0a47 10 RawSerial pc(USBTX,USBRX);
jksoft 0:df4f47ba0a47 11
jksoft 0:df4f47ba0a47 12 /************************* WiFi Access Point *********************************/
jksoft 0:df4f47ba0a47 13
jksoft 0:df4f47ba0a47 14 #define WLAN_SSID "...SSID..."
jksoft 0:df4f47ba0a47 15 #define WLAN_PASS "...PASS..."
jksoft 0:df4f47ba0a47 16
jksoft 0:df4f47ba0a47 17 /************************* Your Milkcocoa Setup *********************************/
jksoft 0:df4f47ba0a47 18
jksoft 0:df4f47ba0a47 19 #define MILKCOCOA_APP_ID "...YOUR_MILKCOCOA_APP_ID..."
jksoft 0:df4f47ba0a47 20 #define MILKCOCOA_DATASTORE "mbed_esp8266"
jksoft 0:df4f47ba0a47 21
jksoft 0:df4f47ba0a47 22 /************* Milkcocoa Setup (you don't need to change this!) ******************/
jksoft 0:df4f47ba0a47 23
jksoft 0:df4f47ba0a47 24 #define MILKCOCOA_SERVERPORT 1883
jksoft 0:df4f47ba0a47 25
jksoft 0:df4f47ba0a47 26 /************ Global State (you don't need to change this!) ******************/
jksoft 0:df4f47ba0a47 27 const char MQTT_SERVER[] = MILKCOCOA_APP_ID ".mlkcca.com";
jksoft 0:df4f47ba0a47 28 const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID;
jksoft 0:df4f47ba0a47 29
jksoft 0:df4f47ba0a47 30 extern void onpush(MQTT::MessageData& md);
jksoft 0:df4f47ba0a47 31
jksoft 0:df4f47ba0a47 32 int main() {
jksoft 0:df4f47ba0a47 33
jksoft 0:df4f47ba0a47 34 pc.baud(9600);
jksoft 0:df4f47ba0a47 35 pc.printf("Milkcocoa mbed os ver demo\n\r\n\r\n\r");
jksoft 0:df4f47ba0a47 36 pc.printf("Connecting to %s\n\r",WLAN_SSID);
jksoft 0:df4f47ba0a47 37
jksoft 0:df4f47ba0a47 38 int ret = wifi.connect(WLAN_SSID, WLAN_PASS, NSAPI_SECURITY_WPA_WPA2);
jksoft 0:df4f47ba0a47 39 if (ret != 0) {
jksoft 0:df4f47ba0a47 40 printf("\r\nConnection error\r\n");
jksoft 0:df4f47ba0a47 41 return -1;
jksoft 0:df4f47ba0a47 42 }
jksoft 0:df4f47ba0a47 43 pc.printf("\n\rWiFi connected\n\r");
jksoft 0:df4f47ba0a47 44
jksoft 0:df4f47ba0a47 45 Milkcocoa* milkcocoa = new Milkcocoa(&wifi, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);
jksoft 0:df4f47ba0a47 46
jksoft 0:df4f47ba0a47 47 milkcocoa->connect();
jksoft 0:df4f47ba0a47 48
jksoft 0:df4f47ba0a47 49 pc.printf("%d\n\r",milkcocoa->on(MILKCOCOA_DATASTORE, "push", onpush));
jksoft 0:df4f47ba0a47 50
jksoft 0:df4f47ba0a47 51 milkcocoa->setLoopCycle(5000);
jksoft 0:df4f47ba0a47 52 milkcocoa->start();
jksoft 0:df4f47ba0a47 53
jksoft 0:df4f47ba0a47 54 while(1) {
jksoft 0:df4f47ba0a47 55 DataElement elem = DataElement();
jksoft 0:df4f47ba0a47 56 elem.setValue("v", 1);
jksoft 0:df4f47ba0a47 57
jksoft 0:df4f47ba0a47 58 milkcocoa->push(MILKCOCOA_DATASTORE, elem);
jksoft 0:df4f47ba0a47 59
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 }