Étape 4: Code
Télécharger le fichier AirMonitorServer.ino ou il suffit de copier le code ci-dessous, elle doit être la même (Télécharger que le fichier est suggéré)
/ * Créer un point d’accès WiFi et de fournir un serveur web pour les pm2.5 là-dessus. */
#include #include #include / * fixer ceux-ci à vos informations d’identification souhaitées. * / const char * ssid = « AirMonitor » ; const char * mot de passe = « inovafitness » ; ESP8266WebServer server(80) ; Il s’agit d’une démo pour test du capteur Arduino PM2, 5 / / capteur de PM2, 5 provient de la www.inovafitness.com SDS011 unsignedInt CP25 = 0; //used pour les pm2.5 résultat unsigned int P10 = 0; //used pour les pm10 résultat unsigned char Pm25IsNew = 0; //show si l’actualisation CP25 void ProcessSerialData() {uint8_t Montana = 0; uint8_t j’ai = 0; uint8_t mPkt [10] = {0}; uint8_t mCheck = 0; while (Serial.available() > 0) {/ / de www.inovafitness.com / / packet format : AA C0 PM25_Low PM25_High PM10_Low PM10_High 0 0 Montana CRC AB = Serial.read() ; Delay(2) ; if(mData == 0xAA) //head1 ok {retard (400); //wait jusqu'à ce que le paquet est reçu mPkt [0] = Montana ; Montana = Serial.read() ; if(mData == 0xc0) //head2 ok {mPkt [1] = Montana ; mCheck = 0; pour (j’ai = 0; j’ai 6 <; i ++) //data recv et crc calc {mPkt [i + 2] = Serial.read() ; delay(2) ; mPkt += mCheck [i + 2];} mPkt [8] = Serial.read() ; delay(1) ; mPkt [9] = Serial.read() ; if (mCheck == mPkt [8]) ok //crc {Serial.flush() ; //Serial.write (mPkt 10) ; CP25 = mPkt (uint16_t) [2] | (uint16_t) (mPkt [3] << 8) ; PM10 = mPkt (uint16_t) [4] | (uint16_t) (mPkt [5] << 8) ; if(Pm25 > 9999) CP25 = 9999 ; if(PM10 > 9999) P10 = 9999 ; obtenir un bon paquet Pm25IsNew = 1 ; retour ; }}}}} / * Juste un petit test message. Aller à www.inovafitness.com dans un navigateur web * connectés à ce point d’accès pour le voir. * / 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 (CP25 < 150)//15.0 sprintf (pm25_str, pm25_format_green, Pm25/10,Pm25%10) ; ElseIf (CP25 < 500)//pm2.5 < 50,0 sprintf (pm25_str, pm25_format_blue, Pm25/10,Pm25%10) ; d’autre sprintf (pm25_str, pm25_format_red, Pm25/10,Pm25%10) ; Server.Send (200, "text/html", pm25_str) ; } void setup() {delay(1000) ; Serial.Begin(9600) ; Serial.println() ; Serial.Print ("configuration point d’accès...") ; / * Vous pouvez supprimer le paramètre de mot de passe si vous souhaitez que l’AP soit ouvert. * / WiFi.softAP (ssid, mot de passe) ; Delay(500) ; Delay(500) ; tandis que (WiFi.status()! = WL_CONNECTED) {delay(500) ; Serial.Print(".") ; } Serial.println("done") ; MyIP IPAddress = WiFi.softAPIP() ; Serial.Print ("adresse IP de l’AP:") ; Serial.println(myIP) ; Server.on ("/", handleRoot) ; Server.Begin() ; Serial.println ("serveur HTTP a commencé") ; } void loop() {server.handleClient() ; ProcessSerialData() ; }