ワークショップ用のプログラム

Dependencies:   Milkcocoa mbed

Committer:
jksoft
Date:
Thu Sep 22 00:49:42 2016 +0000
Revision:
0:d0b3a5d1ba28
????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:d0b3a5d1ba28 1 #include "mbed.h"
jksoft 0:d0b3a5d1ba28 2 #include "MQTTESP8266.h"
jksoft 0:d0b3a5d1ba28 3 #include "MQTTClient.h"
jksoft 0:d0b3a5d1ba28 4 #include "SoftSerialSendOnry.h"
jksoft 0:d0b3a5d1ba28 5 #include "Milkcocoa.h"
jksoft 0:d0b3a5d1ba28 6 #include "MClient.h"
jksoft 0:d0b3a5d1ba28 7
jksoft 0:d0b3a5d1ba28 8 // The default setting is for the Simple IoT Board(mbed LPC1114FN28)
jksoft 0:d0b3a5d1ba28 9 // Please change to fit the platform
jksoft 0:d0b3a5d1ba28 10 SoftSerialSendOnry pc(dp10); // tx
jksoft 0:d0b3a5d1ba28 11 DigitalOut myled(dp18);
jksoft 0:d0b3a5d1ba28 12 AnalogIn thermistor(dp13); /* Temperature sensor connected to Analog Grove connector */
jksoft 0:d0b3a5d1ba28 13
jksoft 0:d0b3a5d1ba28 14 /************************* WiFi Access Point *********************************/
jksoft 0:d0b3a5d1ba28 15
jksoft 0:d0b3a5d1ba28 16 #define WLAN_SSID "...SSID..."
jksoft 0:d0b3a5d1ba28 17 #define WLAN_PASS "...PASS..."
jksoft 0:d0b3a5d1ba28 18
jksoft 0:d0b3a5d1ba28 19 /************************* Your Milkcocoa Setup *********************************/
jksoft 0:d0b3a5d1ba28 20
jksoft 0:d0b3a5d1ba28 21 #define MILKCOCOA_APP_ID "...YOUR_MILKCOCOA_APP_ID..."
jksoft 0:d0b3a5d1ba28 22 #define MILKCOCOA_DATASTORE "esp8266"
jksoft 0:d0b3a5d1ba28 23
jksoft 0:d0b3a5d1ba28 24 /************* Milkcocoa Setup (you don't need to change this!) ******************/
jksoft 0:d0b3a5d1ba28 25
jksoft 0:d0b3a5d1ba28 26 #define MILKCOCOA_SERVERPORT 1883
jksoft 0:d0b3a5d1ba28 27
jksoft 0:d0b3a5d1ba28 28 /************ Global State (you don't need to change this!) ******************/
jksoft 0:d0b3a5d1ba28 29
jksoft 0:d0b3a5d1ba28 30 // Create an ESP8266 WiFiClient class to connect to the MQTT server.
jksoft 0:d0b3a5d1ba28 31 // The default setting is for the Simple IoT Board(mbed LPC1114FN28)
jksoft 0:d0b3a5d1ba28 32 // Please change to fit the platform
jksoft 0:d0b3a5d1ba28 33 MQTTESP8266 ipstack(dp16,dp15,dp26,WLAN_SSID,WLAN_PASS); // TX,RX,Reset,SSID,Password,Baud
jksoft 0:d0b3a5d1ba28 34 MClient client(&ipstack);
jksoft 0:d0b3a5d1ba28 35
jksoft 0:d0b3a5d1ba28 36 const char MQTT_SERVER[] = MILKCOCOA_APP_ID ".mlkcca.com";
jksoft 0:d0b3a5d1ba28 37 const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID;
jksoft 0:d0b3a5d1ba28 38
jksoft 0:d0b3a5d1ba28 39 Milkcocoa milkcocoa = Milkcocoa(&client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);
jksoft 0:d0b3a5d1ba28 40
jksoft 0:d0b3a5d1ba28 41 extern void onpush(MQTT::MessageData& md);
jksoft 0:d0b3a5d1ba28 42
jksoft 0:d0b3a5d1ba28 43 float getTemperature()
jksoft 0:d0b3a5d1ba28 44 {
jksoft 0:d0b3a5d1ba28 45 unsigned int a, beta = 3975;
jksoft 0:d0b3a5d1ba28 46 float temperature, resistance;
jksoft 0:d0b3a5d1ba28 47
jksoft 0:d0b3a5d1ba28 48 a = thermistor.read_u16(); /* Read analog value */
jksoft 0:d0b3a5d1ba28 49
jksoft 0:d0b3a5d1ba28 50 /* Calculate the resistance of the thermistor from analog votage read. */
jksoft 0:d0b3a5d1ba28 51 resistance= (float) 10000.0 * ((65536.0 / a) - 1.0);
jksoft 0:d0b3a5d1ba28 52
jksoft 0:d0b3a5d1ba28 53 /* Convert the resistance to temperature using Steinhart's Hart equation */
jksoft 0:d0b3a5d1ba28 54 temperature=(1/((log(resistance/10000.0)/beta) + (1.0/298.15)))-273.15;
jksoft 0:d0b3a5d1ba28 55
jksoft 0:d0b3a5d1ba28 56 return(temperature);
jksoft 0:d0b3a5d1ba28 57 }
jksoft 0:d0b3a5d1ba28 58
jksoft 0:d0b3a5d1ba28 59
jksoft 0:d0b3a5d1ba28 60 int main() {
jksoft 0:d0b3a5d1ba28 61 // void setup() {
jksoft 0:d0b3a5d1ba28 62 pc.baud(9600);
jksoft 0:d0b3a5d1ba28 63 pc.printf("Milkcocoa mbed ver demo\n\r\n\r\n\r");
jksoft 0:d0b3a5d1ba28 64 pc.printf("Connecting to %s\n\r",WLAN_SSID);
jksoft 0:d0b3a5d1ba28 65 milkcocoa.connect();
jksoft 0:d0b3a5d1ba28 66 pc.printf("\n\rWiFi connected\n\r");
jksoft 0:d0b3a5d1ba28 67
jksoft 0:d0b3a5d1ba28 68 pc.printf("%d\n\r",milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush));
jksoft 0:d0b3a5d1ba28 69
jksoft 0:d0b3a5d1ba28 70 // }
jksoft 0:d0b3a5d1ba28 71 while(1) {
jksoft 0:d0b3a5d1ba28 72 // void loop() {
jksoft 0:d0b3a5d1ba28 73 milkcocoa.loop();
jksoft 0:d0b3a5d1ba28 74
jksoft 0:d0b3a5d1ba28 75 DataElement elem = DataElement();
jksoft 0:d0b3a5d1ba28 76 elem.setValue("Temperature", getTemperature());
jksoft 0:d0b3a5d1ba28 77
jksoft 0:d0b3a5d1ba28 78 milkcocoa.push(MILKCOCOA_DATASTORE, elem);
jksoft 0:d0b3a5d1ba28 79 wait(7.0);
jksoft 0:d0b3a5d1ba28 80 }
jksoft 0:d0b3a5d1ba28 81 }
jksoft 0:d0b3a5d1ba28 82
jksoft 0:d0b3a5d1ba28 83 void onpush(MQTT::MessageData& md)
jksoft 0:d0b3a5d1ba28 84 {
jksoft 0:d0b3a5d1ba28 85 MQTT::Message &message = md.message;
jksoft 0:d0b3a5d1ba28 86 DataElement de = DataElement((char*)message.payload);
jksoft 0:d0b3a5d1ba28 87 pc.printf("onpush\n\r");
jksoft 0:d0b3a5d1ba28 88 pc.printf("%d\n\r",de.getInt("v"));
jksoft 0:d0b3a5d1ba28 89 }