Using the IDW01M1 board for the STM32 Nucleo F401RE board. This project reads data from Air quality MQ135 click and then read DHT11 values and publish on a private channel on the Thingspeak. A Good example of IoT project with the IDW01 board

Dependencies:   DHT11 NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed

Fork of AirQuality_Thingspeak by Imran Sheikh

This example project uses IDW01M1 WiFi Module to support IoT projects with example sensors such as Airquality Click MQ135 and DHT11 sensor. The sensor values are then published on the Thingspeak channel. The program uses the DHT11, NetworksocketApi and the SPW library fromX_Nucleo_IDW01M1_v2. This project can easily be adapted to add further sensors or use ESP8266 WiFi module as plenty of support is available on mbed.

Revision:
0:dee849b0e6e6
Child:
1:daf71fa3674c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jul 08 06:28:58 2016 +0000
@@ -0,0 +1,94 @@
+/* SpwfInterface NetworkSocketAPI Example Program
+ * Copyright (c) 2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "SpwfInterface.h"
+#include "TCPSocket.h"
+
+//------------------------------------
+// Hyperterminal configuration
+// 9600 bauds, 8-bit data, no parity
+//------------------------------------
+
+Serial pc(SERIAL_TX, SERIAL_RX); 
+DigitalOut myled(LED1);
+SpwfSAInterface spwf(PA_9, PA_10, false);
+    
+int main() {
+    int err;    
+    char * ssid = "STM";
+    char * seckey = "STMdemoPWD";
+    
+    pc.printf("\r\nX-NUCLEO-IDW01M1 mbed Application\r\n");     
+    pc.printf("\r\nconnecting to AP\r\n");
+            
+    if(spwf.connect(ssid, seckey, NSAPI_SECURITY_WPA2)) {      
+        pc.printf("\r\nnow connected\r\n");
+    } else {
+        pc.printf("\r\nerror connecting to AP.\r\n");
+        return -1;
+    }   
+            
+    const char *ip = spwf.get_ip_address();
+    const char *mac = spwf.get_mac_address();
+    
+    pc.printf("\r\nIP Address is: %s\r\n", (ip) ? ip : "No IP");
+    pc.printf("\r\nMAC Address is: %s\r\n", (mac) ? mac : "No MAC");    
+    
+    SocketAddress addr(&spwf, "st.com");   
+    pc.printf("\r\nst.com resolved to: %s\r\n", addr.get_ip_address());    
+
+    pc.printf("\r\nconnecting to http://time-d.nist.gov\r\n");
+    
+    TCPSocket socket(&spwf);
+    //err = socket.connect("192.168.1.6", 32000);
+    err = socket.connect("4.ifcfg.me", 23);//"4.ifcfg.me", 23;//"time-d.nist.gov", 37
+    if(err!=0) 
+    {
+      pc.printf("\r\nCould not connect to Socket, err = %d!!\r\n", err); 
+      return -1;
+    } else pc.printf("\r\nconnected to host server\r\n"); 
+    
+    //char * str = "test";
+    //socket.send(str, strlen(str));
+    
+#if 1
+    char buffer[64];
+    int count = 0;
+    pc.printf("\r\nReceiving Data\r\n"); 
+    count = socket.recv(buffer, sizeof buffer);
+    
+    if(count > 0)
+    {
+        printf("public IP address is: %s\r\n", &buffer[15]);
+        //pc.printf("\r\nReceived: %ld bytes, 0x%02x 0x%02x 0x%02x 0x%02x\r\n", \
+          //                  count, buffer[0], buffer[1], buffer[2], buffer[3]);
+    }
+    else pc.printf("\r\nData not received\r\n");
+
+    //pc.printf("\r\nClosing Socket\r\n");
+   // socket.close();
+        
+    //pc.printf("\r\ndisconnecting....\r\n");
+    //spwf.disconnect();
+    //pc.printf("\r\nTest complete.\r\n");
+#endif
+                
+    while(1) { 
+      wait(1);
+      myled = !myled;
+    }
+}