ワークショップ用のサンプルプログラムです。
Dependencies: DHT Milkcocoa mbed
main.cpp@0:8ac5bb04e34d, 2016-04-29 (annotated)
- Committer:
- jksoft
- Date:
- Fri Apr 29 21:31:00 2016 +0000
- Revision:
- 0:8ac5bb04e34d
??
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jksoft | 0:8ac5bb04e34d | 1 | #include "mbed.h" |
jksoft | 0:8ac5bb04e34d | 2 | #include "MQTTESP8266.h" |
jksoft | 0:8ac5bb04e34d | 3 | #include "MQTTClient.h" |
jksoft | 0:8ac5bb04e34d | 4 | #include "SoftSerialSendOnry.h" |
jksoft | 0:8ac5bb04e34d | 5 | #include "Milkcocoa.h" |
jksoft | 0:8ac5bb04e34d | 6 | #include "MClient.h" |
jksoft | 0:8ac5bb04e34d | 7 | #include "DHT.h" |
jksoft | 0:8ac5bb04e34d | 8 | |
jksoft | 0:8ac5bb04e34d | 9 | |
jksoft | 0:8ac5bb04e34d | 10 | // The default setting is for the Simple IoT Board(mbed LPC1114FN28) |
jksoft | 0:8ac5bb04e34d | 11 | // Please change to fit the platform |
jksoft | 0:8ac5bb04e34d | 12 | SoftSerialSendOnry pc(dp10); // tx |
jksoft | 0:8ac5bb04e34d | 13 | DigitalOut myled(dp18); |
jksoft | 0:8ac5bb04e34d | 14 | DHT sensor(dp13, DHT11); |
jksoft | 0:8ac5bb04e34d | 15 | |
jksoft | 0:8ac5bb04e34d | 16 | /************************* WiFi Access Point *********************************/ |
jksoft | 0:8ac5bb04e34d | 17 | |
jksoft | 0:8ac5bb04e34d | 18 | //#define WLAN_SSID "...SSID..." |
jksoft | 0:8ac5bb04e34d | 19 | //#define WLAN_PASS "...PASS..." |
jksoft | 0:8ac5bb04e34d | 20 | #define WLAN_SSID "wx01-dda3ad" |
jksoft | 0:8ac5bb04e34d | 21 | #define WLAN_PASS "0db20294cb0d3" |
jksoft | 0:8ac5bb04e34d | 22 | |
jksoft | 0:8ac5bb04e34d | 23 | /************************* Your Milkcocoa Setup *********************************/ |
jksoft | 0:8ac5bb04e34d | 24 | |
jksoft | 0:8ac5bb04e34d | 25 | //#define MILKCOCOA_APP_ID "...YOUR_MILKCOCOA_APP_ID..." |
jksoft | 0:8ac5bb04e34d | 26 | #define MILKCOCOA_APP_ID "teaidsirehz" |
jksoft | 0:8ac5bb04e34d | 27 | #define MILKCOCOA_DATASTORE "esp8266" |
jksoft | 0:8ac5bb04e34d | 28 | |
jksoft | 0:8ac5bb04e34d | 29 | /************* Milkcocoa Setup (you don't need to change this!) ******************/ |
jksoft | 0:8ac5bb04e34d | 30 | |
jksoft | 0:8ac5bb04e34d | 31 | #define MILKCOCOA_SERVERPORT 1883 |
jksoft | 0:8ac5bb04e34d | 32 | |
jksoft | 0:8ac5bb04e34d | 33 | /************ Global State (you don't need to change this!) ******************/ |
jksoft | 0:8ac5bb04e34d | 34 | |
jksoft | 0:8ac5bb04e34d | 35 | // Create an ESP8266 WiFiClient class to connect to the MQTT server. |
jksoft | 0:8ac5bb04e34d | 36 | // The default setting is for the Simple IoT Board(mbed LPC1114FN28) |
jksoft | 0:8ac5bb04e34d | 37 | // Please change to fit the platform |
jksoft | 0:8ac5bb04e34d | 38 | MQTTESP8266 ipstack(dp16,dp15,dp26,WLAN_SSID,WLAN_PASS); // TX,RX,Reset,SSID,Password,Baud |
jksoft | 0:8ac5bb04e34d | 39 | MClient client(&ipstack); |
jksoft | 0:8ac5bb04e34d | 40 | |
jksoft | 0:8ac5bb04e34d | 41 | const char MQTT_SERVER[] = MILKCOCOA_APP_ID ".mlkcca.com"; |
jksoft | 0:8ac5bb04e34d | 42 | const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID; |
jksoft | 0:8ac5bb04e34d | 43 | |
jksoft | 0:8ac5bb04e34d | 44 | Milkcocoa milkcocoa = Milkcocoa(&client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID); |
jksoft | 0:8ac5bb04e34d | 45 | |
jksoft | 0:8ac5bb04e34d | 46 | extern void onpush(MQTT::MessageData& md); |
jksoft | 0:8ac5bb04e34d | 47 | |
jksoft | 0:8ac5bb04e34d | 48 | int main() { |
jksoft | 0:8ac5bb04e34d | 49 | // void setup() { |
jksoft | 0:8ac5bb04e34d | 50 | int error = 0; |
jksoft | 0:8ac5bb04e34d | 51 | double h = 0.0f, c = 0.0f; |
jksoft | 0:8ac5bb04e34d | 52 | |
jksoft | 0:8ac5bb04e34d | 53 | pc.baud(9600); |
jksoft | 0:8ac5bb04e34d | 54 | pc.printf("Milkcocoa mbed ver demo\n\r\n\r\n\r"); |
jksoft | 0:8ac5bb04e34d | 55 | pc.printf("Connecting to %s\n\r",WLAN_SSID); |
jksoft | 0:8ac5bb04e34d | 56 | milkcocoa.connect(); |
jksoft | 0:8ac5bb04e34d | 57 | pc.printf("\n\rWiFi connected\n\r"); |
jksoft | 0:8ac5bb04e34d | 58 | |
jksoft | 0:8ac5bb04e34d | 59 | pc.printf("%d\n\r",milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush)); |
jksoft | 0:8ac5bb04e34d | 60 | |
jksoft | 0:8ac5bb04e34d | 61 | // } |
jksoft | 0:8ac5bb04e34d | 62 | while(1) { |
jksoft | 0:8ac5bb04e34d | 63 | // void loop() { |
jksoft | 0:8ac5bb04e34d | 64 | milkcocoa.loop(); |
jksoft | 0:8ac5bb04e34d | 65 | |
jksoft | 0:8ac5bb04e34d | 66 | error = sensor.readData(); |
jksoft | 0:8ac5bb04e34d | 67 | if (0 == error) { |
jksoft | 0:8ac5bb04e34d | 68 | c = sensor.ReadTemperature(CELCIUS); |
jksoft | 0:8ac5bb04e34d | 69 | h = sensor.ReadHumidity(); |
jksoft | 0:8ac5bb04e34d | 70 | |
jksoft | 0:8ac5bb04e34d | 71 | DataElement elem = DataElement(); |
jksoft | 0:8ac5bb04e34d | 72 | elem.setValue("temp", c); |
jksoft | 0:8ac5bb04e34d | 73 | elem.setValue("hmt", h); |
jksoft | 0:8ac5bb04e34d | 74 | milkcocoa.push(MILKCOCOA_DATASTORE, elem); |
jksoft | 0:8ac5bb04e34d | 75 | } |
jksoft | 0:8ac5bb04e34d | 76 | |
jksoft | 0:8ac5bb04e34d | 77 | wait(7.0); |
jksoft | 0:8ac5bb04e34d | 78 | } |
jksoft | 0:8ac5bb04e34d | 79 | } |
jksoft | 0:8ac5bb04e34d | 80 | |
jksoft | 0:8ac5bb04e34d | 81 | void onpush(MQTT::MessageData& md) |
jksoft | 0:8ac5bb04e34d | 82 | { |
jksoft | 0:8ac5bb04e34d | 83 | MQTT::Message &message = md.message; |
jksoft | 0:8ac5bb04e34d | 84 | DataElement de = DataElement((char*)message.payload); |
jksoft | 0:8ac5bb04e34d | 85 | pc.printf("onpush\n\r"); |
jksoft | 0:8ac5bb04e34d | 86 | pc.printf("%d\n\r",de.getInt("v")); |
jksoft | 0:8ac5bb04e34d | 87 | } |