Stap 4: Code
Download het bestand AirMonitorServer.ino of kopieer de onderstaande code, moet het dezelfde (download dat het bestand wordt voorgesteld)
/ * Maken van een WiFi access point en voorzien van een webserver voor pm2.5 daarop. */
#include #include #include / * stel deze aan uw gewenste referenties. * / const char * ssid = "AirMonitor"; const char * wachtwoord = "inovafitness"; ESP8266WebServer server(80); Dit is een demo voor Arduino PM2.5 sensor test / / PM2.5 sensor is van www.inovafitness.com SDS011 unsigned int Pm25 = 0; //used voor resultaat pm2.5 unsigned int Pm10 = 0; //used voor resultaat pm10 unsigned char Pm25IsNew = 0; //show als pm25 wordt vernieuwd void ProcessSerialData() {uint8_t mData = 0; uint8_t ik = 0; uint8_t mPkt [10] = {0}; uint8_t mCheck = 0; terwijl (Serial.available() > 0) {/ / naar www.inovafitness.com / / packet formaat : AA C0 PM25_Low PM25_High PM10_Low PM10_High 0 0 CRC AB mData = Serial.read(); delay(2); if(mData == 0xAA) //head1 ok {vertraging (400); //wait totdat het pakket is ontvangen mPkt [0] = mData; mData = Serial.read(); if(mData == 0xc0) //head2 ok {mPkt [1] = mData; mCheck = 0; voor (ik = 0; ik < 6; i ++) //data recv en crc calc {mPkt [i + 2] = Serial.read(); delay(2); mCheck += mPkt [i + 2];} mPkt [8] = Serial.read(); delay(1); mPkt [9] = Serial.read(); if (mCheck == mPkt [8]) //crc ok {Serial.flush(); //Serial.write (mPkt 10); Pm25 = (uint16_t) mPkt [2] | (uint16_t) (mPkt [3] << 8); Pm10 = (uint16_t) mPkt [4] | (uint16_t) (mPkt [5] << 8); if(Pm25 > 9999) Pm25 = 9999; if(Pm10 > 9999) Pm10 = 9999; krijg een goed pakket Pm25IsNew = 1; terugkeer; }}}}} / * Slechts een kleine testbericht. Ga naar www.inovafitness.com in een webbrowser * aangesloten op dit toegangspunt om het te zien. * / 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
"; Als (Pm25 < 150)//15.0 sprintf (pm25_str, pm25_format_green, Pm25/10,Pm25%10); anders als (Pm25 < 500)//pm2.5 < 50.0 sprintf (pm25_str, pm25_format_blue, Pm25/10,Pm25%10); anders sprintf (pm25_str, pm25_format_red, Pm25/10,Pm25%10); server.send (200, "tekst/html", pm25_str); } void setup {delay(1000); Serial.begin(9600); Serial.println(); Serial.Print ("configureren access point..."); / * U kunt de parameter wachtwoord verwijderen als u wilt dat de AP openstaan. * / WiFi.softAP (ssid, wachtwoord); delay(500); delay(500); terwijl (WiFi.status()! = WL_CONNECTED) {delay(500); Serial.Print("."); } Serial.println("done"); IPAdres myIP = WiFi.softAPIP(); Serial.Print ("AP IP-adres:"); Serial.println(myIP); server.on ("/", handleRoot); server.begin(); Serial.println ("HTTP-server gestart"); } void loop {server.handleClient(); ProcessSerialData(); }