//Makes sure that this program can use code for the Wifi board and the NeoPixels, DO NOT CHANGE THIS #include #include //Tells the board that we want to use NeoPixel LEDs. This is the format: (Number of LEDs connected to the board, What PIN the LEDs are connected to, the type of LED, the speed the LED can be communicated with) //These values SHOULD NOT be changed if you are following the instructable word-for-word. Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, 4, NEO_RGB + NEO_KHZ800); //SET THESE TO YOUR NETWORK CREDENTIALS const char* ssid = "NETWORK_NAME"; //PUT YOUR NETWORK NAME (CASE SENSITIVE) IN BETWEEN THESE QUOTES const char* password = "NETWORK_PASSWORD"; //PUT YOUR NETWORK PASSWORD (CASE SENSITIVE) IN BETWEEN THESE QUOTES void setup() { //Starts the Serial Monitor connection Serial.begin(115200); Serial.println("Starting"); //Makes sure that pin 4 is recognized as an output pin, for use with LEDs pinMode(4, OUTPUT); delay(100); //Prints to the Serial Monitor that the board is conecting to the specified Wifi network, then starts connecting Serial.println("Conneting to "); Serial.print(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); //Turn the LEDs on one at a time to green, and then to red. This signifies that the board is connecting to Wifi. //Green strip.setPixelColor(0, 0, 255, 0); strip.show(); delay(200); strip.setPixelColor(1, 0, 255, 0); strip.show(); delay(200); strip.setPixelColor(2, 0, 255, 0); strip.show(); delay(200); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(200); //Red strip.setPixelColor(0, 255, 0, 0); strip.show(); delay(200); strip.setPixelColor(1, 255, 0, 0); strip.show(); delay(200); strip.setPixelColor(2, 255, 0, 0); strip.show(); delay(200); strip.setPixelColor(3, 255, 0, 0); strip.show(); } //Prints that the network has been connected to in the Serial Monitor Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); //Flashes all the LEDs green and then off 4 times, then turns them all on as green for 1.5 seconds. This happens to signify that the board has connected to Wifi strip.setPixelColor(0, 0, 255, 0); strip.setPixelColor(1, 0, 255, 0); strip.setPixelColor(2, 0, 255, 0); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 255, 0); strip.setPixelColor(1, 0, 255, 0); strip.setPixelColor(2, 0, 255, 0); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 255, 0); strip.setPixelColor(1, 0, 255, 0); strip.setPixelColor(2, 0, 255, 0); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 255, 0); strip.setPixelColor(1, 0, 255, 0); strip.setPixelColor(2, 0, 255, 0); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(1500); long rssi = WiFi.RSSI(); //Prints out the signal strength to the Serial Monitor Serial.println("Signal Strength:"); Serial.println(rssi); } void loop() { //Sets the variable "rssi" to the absolute value of the signal strength the wifi board is reporting. This makes it easier to create if statements using the reported signal strength, as it is always reported as a negative number. long rssi = abs(WiFi.RSSI()); //FAR Signal Strength if(rssi > 70){ Serial.println("Setting Pixel color to Red"); strip.setPixelColor(0, 255, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 100, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 150, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); } //MEDIUM Signal Strength if(rssi > 55 && rssi < 69){ Serial.println("Setting Pixel color to Orange"); strip.setPixelColor(0, 255, 50, 0); strip.setPixelColor(1, 255, 50, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 255, 100, 0); strip.setPixelColor(1, 255, 100, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 150, 50, 0); strip.setPixelColor(1, 150, 50, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); } //MODERATE Signal Strength if(rssi > 40 && rssi < 55){ Serial.println("Setting Pixel color to Orange"); strip.setPixelColor(0, 255, 100, 0); strip.setPixelColor(1, 255, 100, 0); strip.setPixelColor(2, 255, 100, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 200, 155, 0); strip.setPixelColor(1, 200, 155, 0); strip.setPixelColor(2, 200, 155, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 200, 100, 0); strip.setPixelColor(1, 200, 100, 0); strip.setPixelColor(2, 200, 100, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); } //HIGH Signal Strength if(rssi > 10 && rssi < 40){ Serial.println("Setting Pixel color to Green"); strip.setPixelColor(0, 0, 255, 0); strip.setPixelColor(1, 0, 255, 0); strip.setPixelColor(2, 0, 255, 0); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(500); strip.setPixelColor(0, 55, 200, 0); strip.setPixelColor(1, 55, 200, 0); strip.setPixelColor(2, 55, 200, 0); strip.setPixelColor(3, 55, 200, 0); strip.show(); delay(500); strip.setPixelColor(0, 50, 255, 0); strip.setPixelColor(1, 50, 255, 0); strip.setPixelColor(2, 50, 255, 0); strip.setPixelColor(3, 50, 255, 0); strip.show(); delay(500); } while(WiFi.status() != WL_CONNECTED) { delay(15000); Serial.print("."); strip.setPixelColor(0, 255, 0, 0); strip.setPixelColor(1, 255, 0, 0); strip.setPixelColor(2, 255, 0, 0); strip.setPixelColor(3, 255, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 255, 0, 0); strip.setPixelColor(1, 255, 0, 0); strip.setPixelColor(2, 255, 0, 0); strip.setPixelColor(3, 255, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 255, 0, 0); strip.setPixelColor(1, 255, 0, 0); strip.setPixelColor(2, 255, 0, 0); strip.setPixelColor(3, 255, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 0, 0, 0); strip.setPixelColor(1, 0, 0, 0); strip.setPixelColor(2, 0, 0, 0); strip.setPixelColor(3, 0, 0, 0); strip.show(); delay(500); strip.setPixelColor(0, 255, 0, 0); strip.setPixelColor(1, 255, 0, 0); strip.setPixelColor(2, 255, 0, 0); strip.setPixelColor(3, 255, 0, 0); strip.show(); //Turn the LEDs on one at a time to green, and then to red. This signifies that the board is connecting to Wifi. //Green strip.setPixelColor(0, 0, 255, 0); strip.show(); delay(200); strip.setPixelColor(1, 0, 255, 0); strip.show(); delay(200); strip.setPixelColor(2, 0, 255, 0); strip.show(); delay(200); strip.setPixelColor(3, 0, 255, 0); strip.show(); delay(200); //Red strip.setPixelColor(0, 255, 0, 0); strip.show(); delay(200); strip.setPixelColor(1, 255, 0, 0); strip.show(); delay(200); strip.setPixelColor(2, 255, 0, 0); strip.show(); delay(200); strip.setPixelColor(3, 255, 0, 0); strip.show(); WiFi.begin(ssid, password); } }