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

Dependencies:   Milkcocoa mbed

Revision:
0:d0b3a5d1ba28
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Sep 22 00:49:42 2016 +0000
@@ -0,0 +1,89 @@
+#include "mbed.h"
+#include "MQTTESP8266.h"
+#include "MQTTClient.h"
+#include "SoftSerialSendOnry.h"
+#include "Milkcocoa.h"
+#include "MClient.h"
+
+// The default setting is for the Simple IoT Board(mbed LPC1114FN28)
+// Please change to fit the platform
+SoftSerialSendOnry pc(dp10); // tx
+DigitalOut myled(dp18);
+AnalogIn thermistor(dp13);   /* Temperature sensor connected to Analog Grove connector */
+
+/************************* WiFi Access Point *********************************/
+
+#define WLAN_SSID       "...SSID..."
+#define WLAN_PASS       "...PASS..."
+
+/************************* Your Milkcocoa Setup *********************************/
+
+#define MILKCOCOA_APP_ID      "...YOUR_MILKCOCOA_APP_ID..."
+#define MILKCOCOA_DATASTORE   "esp8266"
+
+/************* Milkcocoa Setup (you don't need to change this!) ******************/
+
+#define MILKCOCOA_SERVERPORT  1883
+
+/************ Global State (you don't need to change this!) ******************/
+
+// Create an ESP8266 WiFiClient class to connect to the MQTT server.
+// The default setting is for the Simple IoT Board(mbed LPC1114FN28)
+// Please change to fit the platform
+MQTTESP8266 ipstack(dp16,dp15,dp26,WLAN_SSID,WLAN_PASS); // TX,RX,Reset,SSID,Password,Baud
+MClient client(&ipstack);
+
+const char MQTT_SERVER[]  = MILKCOCOA_APP_ID ".mlkcca.com";
+const char MQTT_CLIENTID[] = __TIME__ MILKCOCOA_APP_ID;
+
+Milkcocoa milkcocoa = Milkcocoa(&client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);
+
+extern void onpush(MQTT::MessageData& md);
+
+float getTemperature()
+{
+    unsigned int a, beta = 3975;
+    float temperature, resistance;
+
+    a = thermistor.read_u16(); /* Read analog value */
+    
+    /* Calculate the resistance of the thermistor from analog votage read. */
+    resistance= (float) 10000.0 * ((65536.0 / a) - 1.0);
+    
+    /* Convert the resistance to temperature using Steinhart's Hart equation */
+    temperature=(1/((log(resistance/10000.0)/beta) + (1.0/298.15)))-273.15; 
+
+	return(temperature);	
+}
+
+
+int main() {
+// void setup() {
+    pc.baud(9600);
+    pc.printf("Milkcocoa mbed ver demo\n\r\n\r\n\r");
+    pc.printf("Connecting to %s\n\r",WLAN_SSID);
+	milkcocoa.connect();
+	pc.printf("\n\rWiFi connected\n\r");
+	
+	pc.printf("%d\n\r",milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush));
+	
+// }
+	while(1) {
+// void loop() {
+		milkcocoa.loop();
+		
+		DataElement elem = DataElement();
+		elem.setValue("Temperature", getTemperature());
+		
+		milkcocoa.push(MILKCOCOA_DATASTORE, elem);
+		wait(7.0);
+	}
+}
+
+void onpush(MQTT::MessageData& md)
+{
+    MQTT::Message &message = md.message;
+	DataElement de = DataElement((char*)message.payload);
+	pc.printf("onpush\n\r");
+	pc.printf("%d\n\r",de.getInt("v"));
+}
\ No newline at end of file