Paso 4: código
descargar el archivo AirMonitorServer.ino o simplemente copie el código siguiente, debe ser el mismo (descarga que el archivo se sugiere)
/ * Crear un punto de acceso WiFi y proporcionar un servidor web para pm2.5 en él. */
#include #include #include / * ajustar éstas a sus credenciales deseados. * / char const * ssid = "AirMonitor"; const char * clave = "inovafitness"; Server(80) de ESP8266WebServer; Esta es una demo para prueba de sensor Arduino PM2.5 / PM2.5 sensor es de www.inovafitness.com SDS011 unsigned int Pm25 = 0; //used para pm2.5 resultado unsigned int Pm10 = 0; //used para pm10 resultado unsigned char Pm25IsNew = 0; //show si se actualiza pm25 void ProcessSerialData() {uint8_t mData = 0; uint8_t me = 0; uint8_t mPkt [10] = {0}; uint8_t mCheck = 0; mientras que (Serial.available() > 0) {/ / de www.inovafitness.com / formato del paquete : AA C0 PM25_Low PM25_High PM10_Low PM10_High 0 0 CRC AB mData = Serial.read(); Delay(2); if(mData == 0xAA) //head1 ok {demora (400); //wait hasta que el paquete es recibido mPkt [0] = mData; mData = Serial.read(); if(mData == 0xc0) //head2 ok {mPkt [1] = mData; mCheck = 0; para (i = 0; i < 6; i ++) //data recv y crc calc {mPkt [+ 2] = Serial.read(); delay(2); mCheck += mPkt [+ 2];} mPkt [8] = Serial.read(); delay(1); mPkt [9] = Serial.read(); si (mCheck == mPkt [8]) ok //crc {Serial.flush(); //Serial.write (mPkt 10); Pm25 = mPkt (uint16_t) [2] | (uint16_t) (mPkt [3] << 8); Pm10 = mPkt (uint16_t) [4] | (uint16_t) (mPkt [5] << 8); if(Pm25 > 9999) Pm25 = 9999; if(Pm10 > 9999) Pm10 = 9999; conseguir un buen paquete Pm25IsNew = 1; retorno; }}}}} / * Sólo un mensaje de prueba poco. Ir a www.inovafitness.com en un explorador web * conectado a este punto de acceso para verlo. * / void handleRoot() {char pm25_str [100]; char * pm25_format_red = "
PM2.5=%d.%d
"; char * pm25_format_green = "
PM2.5=%d.%d
"; char * pm25_format_blue = "
PM2.5=%d.%d
"; Si (Pm25 < 150)//15.0 sprintf (pm25_str, pm25_format_green, Pm25/10,Pm25%10); else if (Pm25 < 500)//pm2.5 < 50.0 sprintf (pm25_str, pm25_format_blue, Pm25/10,Pm25%10); otro sprintf (pm25_str, pm25_format_red, Pm25/10,Pm25%10); Server.Send (200, "texto/html", pm25_str); } void setup() {delay(1000); Serial.Begin(9600); Serial.println(); Serial.Print ("configurar punto de acceso..."); / * Se puede quitar el parámetro de contraseña si desea que el AP para ser abierto. * / WiFi.softAP (ssid, contraseña); Delay(500); Delay(500); mientras que (WiFi.status()! = WL_CONNECTED) {delay(500); Serial.Print("."); } Serial.println("done"); Dirección IP myIP = WiFi.softAPIP(); Serial.Print ("dirección IP del AP:"); Serial.println(myIP); Server.on ("/", handleRoot); Server.Begin(); Serial.println ("HTTP server iniciado"); } void loop() {server.handleClient(); ProcessSerialData(); }