├── .gitattributes ├── .vscode └── c_cpp_properties.json ├── BLYNK_rccar └── BLYNK_rccar.ino ├── BLYNKplant └── BLYNKplant.ino ├── Esp8266+nrf24l01 ├── Tx │ └── Tx.ino └── rx │ └── rx.ino ├── FloatSensor └── FloatSensor.ino ├── LICENSE ├── LandSlide └── LandSlide.ino ├── RC Boat ├── .vscode │ ├── arduino.json │ ├── c_cpp_properties.json │ └── settings.json ├── Reciver │ └── Reciver.cpp └── Transmitter │ └── Transmitter.cpp ├── README.md ├── arduino_musicplayer └── arduino_musicplayer.ino ├── autogardensprinkler └── autogardensprinkler.ino ├── blynk_led └── blynk_led.ino ├── esp8266AHT25 └── esp8266AHT25.ino ├── esp8266bmp280 └── esp8266bmp280.ino ├── fan └── fan.ino ├── final ├── hackathon.ino ├── homeAuto └── home.ino ├── iotMesh ├── Node1 │ └── Node1.ino ├── Node2 │ └── Node2.ino ├── Node3 │ └── Node3.ino └── master │ └── master.ino ├── pibird ├── bird.py ├── birds-label.txt ├── birds-model.tflite └── images │ ├── bird-test.jpg │ ├── bird.jpg │ └── hw-final.jpg ├── rgb ├── rgb.ino └── ws2812_rgb │ ├── rgbanimation │ └── rgbanimation.ino │ └── ws2812_rgb.ino ├── rx └── rx.ino ├── strightlight └── strightlight.ino ├── transmitter └── transmitter.ino ├── webserver └── webserver8266 │ └── webserver8266.ino ├── weight └── weight.ino ├── wifibutton └── wifibutton.ino └── wifibuttonWebServerTest └── wifibuttonWebServerTest.ino /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Win32", 5 | "includePath": [ 6 | "${workspaceFolder}/**" 7 | ], 8 | "defines": [ 9 | "_DEBUG", 10 | "UNICODE", 11 | "_UNICODE" 12 | ] 13 | } 14 | ], 15 | "version": 4 16 | } -------------------------------------------------------------------------------- /BLYNK_rccar/BLYNK_rccar.ino: -------------------------------------------------------------------------------- 1 | 2 | #define BLYNK_PRINT Serial 3 | #define l1 12 4 | #define l2 13 5 | #define r1 14 6 | #define r2 15 7 | #define servopin 3 8 | #include 9 | #include 10 | #include 11 | 12 | char auth[] = "5iuuRrTKZiOPjhKU3Qt-glY5RmJ2fs45"; 13 | char ssid[] = "spaceship"; 14 | char pass[] = "88888888"; 15 | 16 | int f = 0, b = 0, r = 0, l = 0, ser = 0; 17 | 18 | Servo servo; 19 | 20 | BLYNK_WRITE(V1) 21 | { 22 | f = param.asInt(); 23 | } 24 | 25 | BLYNK_WRITE(V2) 26 | { 27 | b = param.asInt(); 28 | } 29 | 30 | BLYNK_WRITE(V3) 31 | { 32 | l = param.asInt(); 33 | } 34 | 35 | BLYNK_WRITE(V4) 36 | { 37 | r = param.asInt(); 38 | } 39 | BLYNK_WRITE(V5) 40 | { 41 | ser = param.asInt(); 42 | } 43 | 44 | void setup() 45 | { 46 | pinMode(l1,OUTPUT); 47 | pinMode(r1,OUTPUT); 48 | pinMode(l2,OUTPUT); 49 | pinMode(r2,OUTPUT); 50 | Serial.begin(9600); 51 | Blynk.begin(auth, ssid, pass); 52 | servo.attach(servopin); 53 | } 54 | 55 | void loop() 56 | { 57 | Blynk.run(); 58 | if (l) 59 | { 60 | lw(); 61 | Serial.println("lw"); 62 | }else 63 | { 64 | lo(); 65 | } 66 | 67 | if (r) 68 | { 69 | rw(); 70 | Serial.println("rw"); 71 | }else 72 | { 73 | lo(); 74 | } 75 | 76 | if (f) 77 | { 78 | fd(); 79 | Serial.println("fd"); 80 | }else 81 | { 82 | lo(); 83 | } 84 | 85 | if (b) 86 | { 87 | bw(); 88 | Serial.println("bw"); 89 | }else 90 | { 91 | lo(); 92 | } 93 | 94 | if (ser) 95 | { 96 | servo.write(90); 97 | } 98 | else 99 | { 100 | servo.write(0); 101 | } 102 | } 103 | 104 | void fd() 105 | { 106 | digitalWrite(l1, HIGH); 107 | digitalWrite(r1, HIGH); 108 | digitalWrite(l2, LOW); 109 | digitalWrite(r2, LOW); 110 | } 111 | 112 | void bw() 113 | { 114 | digitalWrite(l2, HIGH); 115 | digitalWrite(r2, HIGH); 116 | digitalWrite(l1, LOW); 117 | digitalWrite(r1, LOW); 118 | } 119 | 120 | void rw() 121 | { 122 | digitalWrite(l1, HIGH); 123 | digitalWrite(l2, LOW); 124 | digitalWrite(r2, HIGH); 125 | digitalWrite(r1, LOW); 126 | } 127 | 128 | void lw() 129 | { 130 | digitalWrite(l2, HIGH); 131 | digitalWrite(l1, LOW); 132 | digitalWrite(r1, HIGH); 133 | digitalWrite(r2, LOW); 134 | } 135 | void lo(){ 136 | digitalWrite(l1, LOW); 137 | digitalWrite(r1, LOW); 138 | digitalWrite(l2, LOW); 139 | digitalWrite(r2, LOW); 140 | } 141 | 142 | -------------------------------------------------------------------------------- /BLYNKplant/BLYNKplant.ino: -------------------------------------------------------------------------------- 1 | 2 | #define BLYNK_PRINT Serial 3 | #define soilsensor A0 4 | #define pumb 4 5 | 6 | #include 7 | #include 8 | 9 | char auth[] = ""; 10 | 11 | 12 | char ssid[] = ""; 13 | char pass[] = ""; 14 | float moisture; 15 | int sensor; 16 | 17 | int pumbremote=0; 18 | int pumbspeed=0; 19 | 20 | 21 | BlynkTimer timer; 22 | 23 | void sendsensor(){ 24 | sensor= analogRead(soilsensor); 25 | moisture = ((sensor/1023.0)*100); 26 | 27 | Blynk.virtualWrite(V2,sensor); 28 | Blynk.virtualWrite(V3,moisture); 29 | 30 | 31 | 32 | } 33 | 34 | void setup() 35 | { 36 | Serial.begin(9600); 37 | Blynk.begin(auth, ssid, pass); 38 | timer.setInterval(1000L,sendsensor); 39 | } 40 | 41 | BLYNK_WRITE(V6){ 42 | pumbremote = param.asInt(); 43 | } 44 | 45 | BLYNK_WRITE(V5){ 46 | pumbspeed = param.asInt(); 47 | } 48 | 49 | void loop() 50 | { 51 | Blynk.run(); 52 | timer.run(); 53 | Serial.println(pumbspeed); 54 | Serial.println(pumbremote); 55 | if(pumbremote==0){ 56 | 57 | if(moisture<50.0){ 58 | analogWrite(pumb,125); 59 | Blynk.notify("soil moisture level is too low"); 60 | Serial.println("moisture level low"); 61 | 62 | }else 63 | { 64 | analogWrite(pumb,0); 65 | } 66 | 67 | }else if(pumbremote==1){ 68 | analogWrite(pumb,pumbspeed); 69 | Serial.print("remote pumb override"); 70 | 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Esp8266+nrf24l01/Tx/Tx.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #define AnalogIn A0 8 | 9 | Adafruit_BMP280 bmp; 10 | 11 | float adc_vol=0.0; 12 | float in_vol=0.0; 13 | 14 | float R1=30000.0; 15 | float R2=7500.0; 16 | 17 | float ref_vol=5.0; 18 | int adc_val=0; 19 | 20 | const uint64_t pipeOut = 0xE8E8F0F0E1LL; 21 | 22 | 23 | RF24 radio(7,8); 24 | 25 | 26 | 27 | struct MyData { 28 | float alt; 29 | float preassure; 30 | float temp; 31 | float vol; 32 | }; 33 | 34 | MyData data; 35 | 36 | 37 | 38 | void setup(){ 39 | 0 40 | radio.begin(); 41 | bmp.begin(0x76); 42 | 43 | radio.setAutoAck(false); 44 | radio.setDataRate(RF24_250KBPS); 45 | radio.openWritingPipe(pipeOut); 46 | bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, 47 | Adafruit_BMP280::SAMPLING_X2, 48 | Adafruit_BMP280::SAMPLING_X16, 49 | Adafruit_BMP280::FILTER_X16, 50 | Adafruit_BMP280::STANDBY_MS_500); 51 | 52 | 53 | 54 | delay(3000); 55 | 56 | } 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | void loop(){ 65 | 66 | adc_val=analogRead(AnalogIn); 67 | adc_vol=(adc_val*ref_vol)/1024.0; 68 | in_vol=adc_vol/(R2/(R1+R2)); 69 | 70 | 71 | data.alt = bmp.readAltitude(1019.66); 72 | data.preassure =bmp.readPressure()/100; 73 | data.temp = bmp.readTemperature(); 74 | data.vol = in_vol; 75 | 76 | radio.write(&data, sizeof(MyData)); 77 | 78 | 79 | 80 | 81 | 82 | 83 | } 84 | -------------------------------------------------------------------------------- /Esp8266+nrf24l01/rx/rx.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "SSD1306Ascii.h" 6 | #include "SSD1306AsciiWire.h" 7 | 8 | 9 | #define I2C_ADDRESS 0x3C 10 | const uint64_t pipeIn = 0xE8E8F0F0E1LL; 11 | 12 | SSD1306AsciiWire display; 13 | 14 | 15 | 16 | RF24 radio(2,15); 17 | uint8_t col[1]; 18 | uint8_t rows; 19 | 20 | long previousMillis = 0; 21 | long interval = 10000; 22 | 23 | struct MyData { 24 | 25 | float alt; 26 | float preassure; 27 | float temp; 28 | float vol; 29 | }; 30 | 31 | MyData data; 32 | 33 | 34 | 35 | void setup() 36 | { 37 | Serial.begin(9600); 38 | 39 | radio.begin(); 40 | radio.setAutoAck(false); 41 | radio.setDataRate(RF24_250KBPS); 42 | radio.openReadingPipe(1,pipeIn); 43 | radio.startListening(); 44 | Wire.begin(); 45 | Wire.setClock(400000L); 46 | display.begin(&Adafruit128x64, I2C_ADDRESS); 47 | display.setFont(System5x7); 48 | display.clear(); 49 | display.println("VOL :"); 50 | display.println("TEMP :"); 51 | display.println("PRESS:"); 52 | display.println("ASL :"); 53 | 54 | col[0] = display.fieldWidth(strlen("ADC0 : ")); 55 | col[1] = display.fieldWidth(strlen("ADC0 :")); 56 | rows = display.fontRows(); 57 | delay(3000); 58 | } 59 | 60 | 61 | 62 | 63 | 64 | void recvData() 65 | { 66 | while ( radio.available() ){ 67 | radio.read(&data, sizeof(MyData)); 68 | } 69 | } 70 | 71 | 72 | 73 | void loop() 74 | { 75 | 76 | recvData(); 77 | 78 | display.clearField(col[0%2], rows*(0/2), 4); 79 | display.print(data.vol); 80 | display.println("V"); 81 | 82 | display.clearField(col[2%2], rows*(2/2), 4); 83 | display.print(data.temp); 84 | display.println("C"); 85 | 86 | display.clearField(col[4%2], rows*(4/2), 4); 87 | display.print(data.preassure); 88 | display.println("pa"); 89 | 90 | display.clearField(col[6%2], rows*(6/2), 4); 91 | display.print(data.alt); 92 | display.println("M"); 93 | 94 | unsigned long currentMillis = millis(); 95 | if(currentMillis - previousMillis > interval) { 96 | display.clear(); 97 | ESP.deepSleep(0); 98 | } 99 | 100 | 101 | 102 | } 103 | -------------------------------------------------------------------------------- /FloatSensor/FloatSensor.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #define trigPin1 A1 3 | #define echoPin1 A0 4 | #define floatSensor 12 5 | 6 | 7 | SoftwareSerial SIM900(7, 8); 8 | long duration, distance, Sensor; 9 | 10 | String number = "+919744640750"; 11 | String msg=""; 12 | 13 | void setup() { 14 | Serial.begin(9600); 15 | SIM900.begin(19200); 16 | delay(5000); 17 | pinMode(trigPin1, OUTPUT); 18 | pinMode(echoPin1, INPUT); 19 | pinMode(floatSensor,INPUT); 20 | 21 | 22 | } 23 | 24 | void loop() { 25 | if(digitalRead(floatSensor)==LOW){ 26 | SonarSensor(trigPin1, echoPin1); 27 | Sensor = distance; 28 | Serial.println (Sensor); 29 | 30 | if(Sensor>25){ 31 | 32 | callNumber(); 33 | Serial.println ("LOW RISk"); 34 | msg="Flood Detected: LOW RISK"; 35 | sendSMS("LOW RISk"); 36 | 37 | }else if(Sensor>10 and Sensor<20){ 38 | 39 | callNumber(); 40 | Serial.println ("Moderate RISk"); 41 | msg="Flood Detected: Moderate RISK"; 42 | sendSMS("Moderate RISk"); 43 | 44 | }else if(Sensor<=10){ 45 | 46 | callNumber(); 47 | Serial.println ("high RISk"); 48 | msg="Flood Detected: High RISK"; 49 | sendSMS("High RISk"); 50 | 51 | } 52 | } 53 | 54 | } 55 | 56 | 57 | 58 | void sendSMS(String msf) { 59 | 60 | SIM900.println("AT+CSMP=17,167,0,0"); 61 | delay(200); 62 | SIM900.print("AT+CMGF=1\r"); 63 | delay(100); 64 | 65 | SIM900.print("AT+CMGS=\""); 66 | SIM900.print(number); 67 | SIM900.println("\""); 68 | delay(150); 69 | 70 | SIM900.println(msg); 71 | delay(100); 72 | SIM900.println((char)26); 73 | delay(100); 74 | SIM900.println(); 75 | delay(3000); 76 | } 77 | 78 | 79 | 80 | void callNumber() { 81 | SIM900.print (F("ATD")); 82 | SIM900.print(number); 83 | SIM900.print (F(";\r\n")); 84 | 85 | } 86 | 87 | 88 | void SonarSensor(int trigPin,int echoPin) 89 | { 90 | 91 | digitalWrite(trigPin, LOW); 92 | delayMicroseconds(2); 93 | digitalWrite(trigPin, HIGH); 94 | delayMicroseconds(10); 95 | digitalWrite(trigPin, LOW); 96 | duration = pulseIn(echoPin, HIGH); 97 | distance = (duration/2) / 29.1; 98 | } 99 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /LandSlide/LandSlide.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define trigPin1 A0 4 | #define echoPin1 A1 5 | #define trigPin2 A2 6 | #define echoPin2 A3 7 | 8 | SoftwareSerial sim(10, 11); 9 | long duration, distance, FIRSTSensor,SECONDSensor,sumDistance; 10 | 11 | 12 | int _timeout; 13 | String number = "+91XXXXXX"; 14 | 15 | void setup() { 16 | 17 | Serial.begin(9600); 18 | Serial.println("Sistem Started..."); 19 | sim.begin(9600); 20 | delay(1000); 21 | pinMode(trigPin1, OUTPUT); 22 | pinMode(echoPin1, INPUT); 23 | pinMode(trigPin2, OUTPUT); 24 | pinMode(echoPin2, INPUT); 25 | 26 | } 27 | 28 | void loop() { 29 | SonarSensor(trigPin1, echoPin1); 30 | FIRSTSensor = distance; 31 | Serial.print("dis 1:" ); 32 | Serial.println(distance); 33 | SonarSensor(trigPin2, echoPin2); 34 | SECONDSensor = distance; 35 | sumDistance=FIRSTSensor+SECONDSensor; 36 | Serial.print("dis 2:" ); 37 | Serial.println(distance); 38 | if(sumDistance>150 && sumDistance<300){ 39 | callNumber(); 40 | delay(3000); 41 | SendMessage(); 42 | } 43 | 44 | } 45 | 46 | void SendMessage() { 47 | 48 | sim.println("AT+CSMP=17,167,0,0"); 49 | delay(200); 50 | sim.print("AT+CMGS=\""); 51 | sim.print(number); 52 | sim.println("\""); 53 | delay(150); 54 | sim.print("LandSlide Detected"); 55 | sim.write(26); 56 | delay(3000); 57 | Serial.println(""); 58 | Serial.print("Send SMS to:"); 59 | Serial.print(number); 60 | Serial.print(":"); 61 | Serial.println("ho"); 62 | } 63 | 64 | void RecieveMessage() { 65 | Serial.println ("SIM800L Read an SMS"); 66 | sim.println("AT+CMGF=1"); 67 | delay(200); 68 | sim.println("AT+CNMI=1,2,0,0,0"); // AT Command to receive a live SMS 69 | delay(200); 70 | Serial.write ("Unread Message done"); 71 | } 72 | 73 | 74 | void callNumber() { 75 | sim.print (F("ATD")); 76 | sim.print (number); 77 | sim.print (F(";\r\n")); 78 | // _buffer = _readSerial(); 79 | // Serial.println(_buffer); 80 | } 81 | 82 | void SonarSensor(int trigPin,int echoPin) 83 | { 84 | digitalWrite(trigPin, LOW); 85 | delayMicroseconds(2); 86 | digitalWrite(trigPin, HIGH); 87 | delayMicroseconds(10); 88 | digitalWrite(trigPin, LOW); 89 | duration = pulseIn(echoPin, HIGH); 90 | distance = (duration/2) / 29.1; 91 | } 92 | -------------------------------------------------------------------------------- /RC Boat/.vscode/arduino.json: -------------------------------------------------------------------------------- 1 | { 2 | "board": "arduino:avr:nano", 3 | "configuration": "cpu=atmega328old", 4 | "sketch": "Transmitter/Transmitter.ino", 5 | "port": "COM4" 6 | } -------------------------------------------------------------------------------- /RC Boat/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Linux", 5 | "includePath": [ 6 | "/home/vic/Downloads/arduino-1.8.13/tools/**", 7 | "/home/vic/Downloads/arduino-1.8.13/hardware/arduino/avr/**", 8 | "/home/vic/Downloads/arduino-1.8.13/libraries/**", 9 | "/home/vic/Downloads/arduino-1.8.13/hardware/arduino/avr/libraries/**", 10 | "/home/vic/Downloads/arduino-1.8.13/**" 11 | ], 12 | "forcedInclude": [ 13 | "/home/vic/Downloads/arduino-1.8.13/hardware/arduino/avr/cores/arduino/Arduino.h" 14 | ], 15 | "intelliSenseMode": "gcc-x64", 16 | "compilerPath": "/usr/bin/clang", 17 | "cStandard": "c11", 18 | "cppStandard": "c++14" 19 | } 20 | ], 21 | "version": 4 22 | } -------------------------------------------------------------------------------- /RC Boat/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "C_Cpp.errorSquiggles": "Disabled" 3 | } -------------------------------------------------------------------------------- /RC Boat/Reciver/Reciver.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | AHT20 aht20; 10 | Adafruit_INA219 ina219; 11 | 12 | float ahtValue = -1; 13 | 14 | const uint64_t pipeIn = 0xE8E8F0F0E1LL; 15 | 16 | bool radiocheck = true; 17 | 18 | RF24 radio(7, 8); 19 | 20 | int throttle = 0; 21 | 22 | int leftMotorSpeed = 0; 23 | int rightMotorSpeed = 0; 24 | 25 | int leftmotor1 = 3; 26 | int leftmotor2 = 4; 27 | 28 | int rightmotor1 = 9; 29 | int rightmotor2 = 10; 30 | 31 | int enl = 5; 32 | int enr = 6; 33 | 34 | int voltage = A7; 35 | 36 | float shuntvoltage = 0; 37 | float busvoltage = 0; 38 | float current_mA = 0; 39 | float loadvoltage = 0; 40 | float power_mW = 0; 41 | 42 | struct txData { 43 | byte throttle; 44 | byte yaw; 45 | byte pitch; 46 | byte roll; 47 | byte AUX1; 48 | byte AUX2; 49 | bool state; 50 | }; 51 | 52 | struct rxTelemetry { 53 | float rxVoltage; 54 | float current; 55 | float power; 56 | float temp; 57 | }; 58 | 59 | txData data; 60 | 61 | rxTelemetry rxData; 62 | 63 | void resetData() { 64 | 65 | data.throttle = 0; 66 | data.yaw = 127; 67 | data.pitch = 127; 68 | data.roll = 127; 69 | data.AUX1 = 0; 70 | data.AUX2 = 0; 71 | data.state = false; 72 | } 73 | 74 | void setup() { 75 | Serial.begin(9600); 76 | Wire.begin(); 77 | aht20.begin(); 78 | ina219.begin(); 79 | resetData(); 80 | radio.begin(); 81 | radio.setDataRate(RF24_250KBPS); 82 | radio.openReadingPipe(1, pipeIn); 83 | radio.enableAckPayload(); 84 | radio.startListening(); 85 | 86 | pinMode(leftmotor1, OUTPUT); 87 | pinMode(leftmotor2, OUTPUT); 88 | pinMode(rightmotor2, OUTPUT); 89 | pinMode(rightmotor2, OUTPUT); 90 | 91 | pinMode(voltage, INPUT); 92 | } 93 | 94 | unsigned long lastRecvTime = 0; 95 | 96 | void recvData() { 97 | while (radio.available()) { 98 | radio.read(&data, sizeof(txData)); 99 | rxData.rxVoltage = busvoltage; 100 | rxData.current = current_mA; 101 | rxData.power = power_mW; 102 | rxData.temp = ahtValue; 103 | radio.writeAckPayload(1, &rxData, sizeof(rxData)); 104 | lastRecvTime = millis(); 105 | } 106 | } 107 | unsigned long previousMillis = 0; 108 | 109 | void loop() { 110 | unsigned long currentMillis = millis(); 111 | 112 | if (currentMillis - previousMillis >= 2000) { 113 | previousMillis = currentMillis; 114 | ahtValue = aht20.getTemperature(); 115 | shuntvoltage = ina219.getShuntVoltage_mV(); 116 | busvoltage = ina219.getBusVoltage_V(); 117 | current_mA = ina219.getCurrent_mA(); 118 | power_mW = ina219.getPower_mW(); 119 | loadvoltage = busvoltage + (shuntvoltage / 1000); 120 | } 121 | 122 | 123 | recvData(); 124 | unsigned long now = millis(); 125 | if (now - lastRecvTime > 1000) { 126 | resetData(); 127 | radiocheck = false; 128 | } else { 129 | radiocheck = true; 130 | } 131 | 132 | int rollValue = map(data.roll, 0, 255, -127, 127) + 1; 133 | leftMotorSpeed = constrain(data.throttle + rollValue, 0, 255); 134 | rightMotorSpeed = constrain(data.throttle - rollValue, 0, 255); 135 | 136 | if (data.state) { 137 | 138 | digitalWrite(leftmotor1, HIGH); 139 | digitalWrite(leftmotor2, LOW); 140 | 141 | digitalWrite(rightmotor1, HIGH); 142 | digitalWrite(rightmotor2, LOW); 143 | 144 | analogWrite(enl, leftMotorSpeed); 145 | analogWrite(enr, rightMotorSpeed); 146 | 147 | } else { 148 | digitalWrite(leftmotor1, LOW); 149 | digitalWrite(leftmotor2, LOW); 150 | 151 | digitalWrite(rightmotor1, LOW); 152 | digitalWrite(rightmotor2, LOW); 153 | } 154 | 155 | Serial.print("leftMotorSpeed: "); 156 | Serial.print(leftMotorSpeed); 157 | Serial.print(" "); 158 | Serial.print("rightMotorSpeed: "); 159 | Serial.print(rightMotorSpeed); 160 | Serial.print(" roll value : "); 161 | Serial.print(rollValue); 162 | Serial.print(" voltage "); 163 | Serial.print(rxData.rxVoltage); 164 | Serial.print(" temp "); 165 | Serial.print(rxData.temp); 166 | Serial.print("\n"); 167 | // Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.print(" V"); 168 | // Serial.print(" Shunt Voltage: "); Serial.print(shuntvoltage); Serial.print(" mV"); 169 | // Serial.print(" Load Voltage: "); Serial.print(rxData.rxVoltage); Serial.print(" V"); 170 | // Serial.print(" Current: "); Serial.print(current_mA); Serial.print(" mA"); 171 | // Serial.print(" Power: "); Serial.print(power_mW); Serial.print(" mW"); 172 | // Serial.println(""); 173 | } -------------------------------------------------------------------------------- /RC Boat/Transmitter/Transmitter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "SSD1306Ascii.h" 7 | #include "SSD1306AsciiWire.h" 8 | 9 | #define I2C_ADDRESS 0x3C 10 | #define j1x A0 11 | #define j1y A1 12 | #define j1b 9 13 | #define j2x A2 14 | #define j2y A3 15 | #define j2b 3 16 | #define voltage A7 17 | 18 | const uint64_t pipeOut = 0xE8E8F0F0E1LL; 19 | 20 | SSD1306AsciiWire oled; 21 | 22 | RF24 radio(7, 8); 23 | 24 | uint8_t col[2]; 25 | uint8_t rows; 26 | String state; 27 | String status; 28 | 29 | int offsetThrottle = 0; 30 | int offsetYaw = 0; 31 | int offsetPitch = 0; 32 | int offsetRoll = 0; 33 | 34 | struct txData 35 | { 36 | byte throttle; 37 | byte yaw; 38 | byte pitch; 39 | byte roll; 40 | byte AUX1; 41 | byte AUX2; 42 | bool state; 43 | }; 44 | 45 | struct rxTelemetry { 46 | float rxVoltage; 47 | float current; 48 | float power; 49 | float temp; 50 | }; 51 | 52 | txData data; 53 | rxTelemetry rxData; 54 | 55 | void resetData() 56 | { 57 | 58 | data.throttle = 0; 59 | data.yaw = 127; 60 | data.pitch = 127; 61 | data.roll = 127; 62 | data.AUX1 = 0; 63 | data.AUX2 = 0; 64 | data.state = false; 65 | } 66 | 67 | void setup() 68 | { 69 | 70 | radio.begin(); 71 | Wire.begin(); 72 | Serial.begin(9600); 73 | 74 | Wire.setClock(400000L); 75 | 76 | radio.setDataRate(RF24_250KBPS); 77 | radio.enableAckPayload(); 78 | radio.setRetries(10, 5); 79 | radio.openWritingPipe(pipeOut); 80 | 81 | oled.begin(&Adafruit128x64, I2C_ADDRESS); 82 | oled.setFont(System5x7); 83 | oled.clear(); 84 | oled.set1X(); 85 | pinMode(j1x, INPUT); 86 | pinMode(voltage, INPUT); 87 | pinMode(j2x, INPUT); 88 | pinMode(j1b, INPUT_PULLUP); 89 | pinMode(j1y, INPUT); 90 | pinMode(j2y, INPUT); 91 | pinMode(j2b, INPUT_PULLUP); 92 | 93 | oled.println("initializing..."); 94 | oled.println(""); 95 | oled.println("@vic7z"); 96 | 97 | delay(1000); 98 | calibrateJoysticks(); 99 | 100 | resetData(); 101 | oled.clear(); 102 | 103 | oled.println("throt: 255 yaw : 255"); 104 | oled.println("pitch: 255 roll: 255"); 105 | 106 | col[0] = oled.fieldWidth(strlen("ADC0: ")); 107 | col[1] = oled.fieldWidth(strlen("ADC0: 9999 ADC1: ")); 108 | rows = oled.fontRows(); 109 | delay(500); 110 | } 111 | 112 | void calibrateJoysticks() 113 | { 114 | oled.clear(); 115 | oled.print("Calibrating Joysticks"); 116 | int initialThrottle = analogRead(j1x); 117 | int initialYaw = analogRead(j1y); 118 | int initialPitch = analogRead(j2x); 119 | int initialRoll = analogRead(j2y); 120 | 121 | offsetThrottle = map(initialThrottle, 0, 1023, 0, 255) - 127; 122 | offsetYaw = map(initialYaw, 0, 1023, 0, 255) - 127; 123 | offsetPitch = map(initialPitch, 0, 1023, 0, 255) - 127; 124 | offsetRoll = map(initialRoll, 0, 1023, 0, 255) - 127; 125 | delay(500); 126 | oled.clear(); 127 | oled.println("Offset values set"); 128 | oled.println(" "); 129 | oled.println(" "); 130 | oled.print("throttle :"); 131 | oled.println(offsetThrottle); 132 | oled.print("yaw :"); 133 | oled.println(offsetYaw); 134 | oled.print("pitch :"); 135 | oled.println(offsetPitch); 136 | oled.print("roll :"); 137 | oled.println(offsetRoll); 138 | delay(2000); 139 | oled.clear(); 140 | } 141 | 142 | void loop() 143 | { 144 | float value = analogRead(voltage); 145 | float vo = (value * 3.3 / 1023.0)*2; 146 | 147 | data.throttle = constrain(map(analogRead(j1x), 0, 1023, 0, 255) - offsetThrottle, 0, 255); 148 | data.yaw = constrain(map(analogRead(j1y), 0, 1023, 0, 255) - offsetYaw, 0, 255); 149 | data.pitch = constrain(map(analogRead(j2x), 0, 1023, 0, 255) - offsetPitch, 0, 255); 150 | data.roll = constrain(map(analogRead(j2y), 0, 1023, 0, 255) - offsetRoll, 0, 255); 151 | data.AUX1 = digitalRead(j1b); 152 | data.AUX2 = digitalRead(j2b); 153 | 154 | 155 | if (data.throttle == 255 && data.pitch == 255) 156 | { 157 | state = "armed "; 158 | data.state = true; 159 | } 160 | 161 | if (data.throttle == 255 && data.pitch == 255 && data.yaw == 255 && data.roll == 255) 162 | { 163 | state = "disarmed"; 164 | data.state = false; 165 | } 166 | 167 | status = radio.write(&data, sizeof(txData)) ? "online " : "offline"; 168 | if (status == "online ") 169 | { 170 | if (radio.isAckPayloadAvailable()) 171 | { 172 | radio.read(&rxData, sizeof(rxData)); 173 | } 174 | else 175 | { 176 | Serial.println("Acknowledge but no data "); 177 | } 178 | } 179 | 180 | int per = map(data.throttle, 0, 255, 0, 100); 181 | 182 | oled.clearField(col[0 % 2], rows * (0 / 2), 4); 183 | oled.print(data.throttle); 184 | 185 | oled.clearField(col[1 % 2], rows * (1 / 2), 4); 186 | oled.print(data.yaw); 187 | 188 | oled.println(); 189 | 190 | oled.clearField(col[2 % 2], rows * (2 / 2), 4); 191 | oled.print(data.pitch); 192 | 193 | oled.clearField(col[3 % 2], rows * (3 / 2), 4); 194 | oled.print(data.roll); 195 | 196 | // oled.println(); 197 | 198 | // oled.clearField(col[4 % 2], rows * (4 / 2), 4); 199 | // oled.print(data.AUX1); 200 | 201 | // oled.clearField(col[5 % 2], rows * (5 / 2), 4); 202 | // oled.print(data.AUX2); 203 | 204 | oled.println(); 205 | oled.print("Radio status:"); 206 | oled.print(status); 207 | oled.println(); 208 | oled.print("TX v:"); 209 | oled.print(vo); 210 | oled.print("v"); 211 | oled.print(" RX v:"); 212 | oled.print(rxData.rxVoltage); 213 | oled.print("v"); 214 | oled.println(); 215 | oled.print("Driver temp :"); 216 | oled.println(rxData.temp); 217 | oled.print("Current Draw:"); 218 | oled.print(rxData.current); 219 | oled.print("mA "); 220 | oled.println(); 221 | oled.print("Power: "); 222 | oled.print(rxData.power/1000); 223 | oled.print(" W"); 224 | 225 | 226 | Serial.print(" Rx voltage "); 227 | Serial.print(rxData.rxVoltage); 228 | Serial.print(" Driver temp "); 229 | Serial.print(rxData.temp); 230 | Serial.print(" current "); 231 | Serial.print(rxData.current); 232 | Serial.print(" power "); 233 | Serial.print(rxData.power); 234 | Serial.print("\n"); 235 | 236 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ArduinoProjects 2 | 3 | ## Arduino RC boat 4 | Easy to make cheap RC boat and a 6 channel RC transmitter with Small OLED that can display realtime telemetry Data such as boats power , current draw, motor Driver temperature and batter voltage 5 | 6 | 7 | ![image](https://github.com/user-attachments/assets/2c324700-b937-4a87-bab6-96020da7f90f) 8 | ![image](https://github.com/user-attachments/assets/727c7a76-f8b4-46b2-9188-518be0cb5f2e) 9 | ![image](https://github.com/user-attachments/assets/1cd235c6-99f4-4f70-9f02-b489cb316cc2) 10 | 11 | 12 | 13 | 1. TX set up 14 | 15 | Code for the transmitter can be found under [/RC Boat/Transmitter](https://github.com/vic7z/ArduinoProjects/tree/master/RC%20Boat/Transmitter) 16 | 17 | Parts 18 | 19 | - Arduino pro mini ( or Arduino Nano i like the small form factor of the pro mini) 20 | - 0.96" OLED SSD1306 ( I prefer the i2c version - less wiring) 21 | - 2 x cheap Joystick with pushbutton 22 | 23 | Charging circuit 24 | - 1500mAh small lipo 25 | - tp4056 lipo charger 26 | 27 | Note : if using Arduino pro mini make sure to buy a USB to URAT converter like FT232RL/CP2102 28 | 29 | 30 | ### Wiring 31 | So bad at creating wirining diagram so this :( 32 | 33 | | Arduino Pro Mini | Nrf24L01 | SSD1306 | Right JoyStick | left Joystick 34 | | ------------- | ------------- | ------------- | ------------- |------------- | 35 | |11 | MOSI | | | | 36 | |12 | MISO | | | | 37 | |13 | SCK | | | | 38 | |7 | CE | | | | 39 | |8 | CSN | | | | 40 | |A4 | | SDA | | | 41 | |A5 | | SCL | | | 42 | |A0 | | |x-axis | | 43 | |A1 | | |y-axis | | 44 | |9 | | |button | | 45 | |A2 | | | | x-axis| 46 | |A3 | | | | y-axis| 47 | |3 | | | | button| 48 | -------------------------------------------------------------------------------- /arduino_musicplayer/arduino_musicplayer.ino: -------------------------------------------------------------------------------- 1 | #include "SD.h" 2 | #include "TMRpcm.h" 3 | #include "SPI.h" 4 | #include 5 | 6 | 7 | #define SD_ChipSelectPin 4 8 | #define LED_PIN 7 //pin in witch RGB led is connected 9 | #define NUM_LEDS 1 //no of RGB leds 10 | #define pre 3 //previous music button 11 | #define fd 6 //next music button 12 | TMRpcm music; 13 | int count = 1; //button press counter 14 | CRGB leds[NUM_LEDS]; 15 | 16 | void setup(){ 17 | 18 | music.speakerPin = 9; //audio outputr 19 | Serial.begin(9600); //serial debugger 20 | FastLED.addLeds(leds, NUM_LEDS); 21 | if (!SD.begin(SD_ChipSelectPin)) { 22 | Serial.println("SD fail"); 23 | return; 24 | 25 | } 26 | pinMode(pre,INPUT_PULLUP); 27 | pinMode(fd,INPUT_PULLUP); 28 | leds[0] = CRGB(0, 255, 0); // setting green light (R,G,B), 0 means off ,255 means full brightness 29 | FastLED.show(); //displaying greenlight 30 | 31 | music.setVolume(5); // setting up volume 0 - 7 32 | 33 | } 34 | 35 | void loop(){ 36 | 37 | if(!digitalRead(fd)){ 38 | count ++; 39 | delay(1000); // 1 second delay for counting 40 | } 41 | if(count>0){ 42 | if(!digitalRead(pre)){ 43 | count --; 44 | delay(1000); 45 | } 46 | else{ 47 | count = 1; 48 | } 49 | } 50 | 51 | switch(count){ 52 | case 1: 53 | music.play("1.wav"); 54 | Serial.println("1"); 55 | leds[0] = CRGB(0, 255, 0); 56 | FastLED.show(); 57 | break; 58 | case 2: 59 | music.play("2.wav"); 60 | Serial.println("2"); 61 | break; 62 | case 3: 63 | music.play("3.wav"); 64 | Serial.println("3"); 65 | break; 66 | case 4: 67 | music.play("4.wav"); 68 | Serial.println("4"); 69 | break; 70 | case 5: 71 | music.play("5.wav"); 72 | Serial.println("5"); 73 | break; 74 | default: 75 | leds[0] = CRGB(255, 0, 0); 76 | FastLED.show(); 77 | break; 78 | } 79 | 80 | 81 | 82 | 83 | } 84 | -------------------------------------------------------------------------------- /autogardensprinkler/autogardensprinkler.ino: -------------------------------------------------------------------------------- 1 | #define sensor A0 2 | #define pumb 6 3 | void setup() { 4 | // put your setup code here, to run once: 5 | Serial.begin(9600); 6 | pinMode(sensor,INPUT); 7 | pinMode(pumb,OUTPUT); 8 | } 9 | 10 | void loop() { 11 | // put your main code here, to run repeatedly: 12 | int moisture = analogRead(sensor); 13 | Serial.println(moisture); 14 | 15 | if(moisture>750){ 16 | analogWrite(pumb,125); 17 | }else{ 18 | analogWrite(pumb,0); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /blynk_led/blynk_led.ino: -------------------------------------------------------------------------------- 1 | #define led 12 2 | 3 | #include 4 | #include 5 | 6 | char auth[] = ""; 7 | char ssid[] = "potassium"; 8 | char pass[] = "okgoogle"; 9 | 10 | int brightness; 11 | int status; 12 | 13 | BLYNK_WRITE(V1){ 14 | status=param.asInt(); 15 | } 16 | 17 | BLYNK_WRITE(V2){ 18 | brightness=param.asInt(); 19 | } 20 | 21 | void setup() { 22 | pinMode(led,OUTPUT); 23 | Serial.begin(9600); 24 | Blynk.begin(auth,ssid,pass); 25 | } 26 | 27 | void loop() { 28 | 29 | Blynk.run(); 30 | 31 | if(status){ 32 | Serial.print("led on"); 33 | analogWrite(led,brightness); 34 | Serial.print(brightness); 35 | }else 36 | { 37 | Serial.print("led off"); 38 | analogWrite(led,0); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /esp8266AHT25/esp8266AHT25.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "Ubidots.h" 4 | 5 | const char* UBIDOTS_TOKEN = ""; 6 | const char* WIFI_SSID = ""; 7 | const char* WIFI_PASS = ""; 8 | 9 | float Temperature,humidity,battery; 10 | bool bufferSent = false; 11 | 12 | Ubidots ubidots(UBIDOTS_TOKEN, UBI_HTTP); 13 | AHTxx aht20(AHTXX_ADDRESS_X38, AHT2x_SENSOR); 14 | ADC_MODE(ADC_VCC); 15 | 16 | void setup() { 17 | Serial.begin(9600); 18 | 19 | int count = 0; 20 | while (WiFi.status() != WL_CONNECTED && count < 30) { 21 | delay(1000); 22 | Serial.print("."); 23 | count++; 24 | } 25 | 26 | if (WiFi.status() == WL_CONNECTED) { 27 | Serial.println("\nConnected to WiFi"); 28 | ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); 29 | } else { 30 | ESP.deepSleep(300e6); 31 | } 32 | 33 | while (aht20.begin() != true) 34 | { 35 | Serial.println(F("AHT2x not connected or fail to load calibration coefficient")); 36 | delay(5000); 37 | } 38 | Serial.println(F("AHT20 OK")); 39 | 40 | } 41 | 42 | void loop() { 43 | Temperature =aht20.readTemperature(); 44 | humidity=aht20.readHumidity(); 45 | 46 | Serial.print(F("Temperature = ")); 47 | 48 | Serial.print(Temperature); 49 | Serial.println(" *C"); 50 | ubidots.add("Temperature",Temperature); 51 | 52 | Serial.print(F("humidity = ")); 53 | Serial.print(humidity); 54 | ubidots.add("Humidity",humidity); 55 | 56 | 57 | 58 | 59 | battery=ESP.getVcc()/1000; 60 | ubidots.add("battery",battery); 61 | Serial.println(battery); 62 | 63 | 64 | bufferSent = ubidots.send(); 65 | 66 | 67 | 68 | if (bufferSent) { 69 | Serial.println("Values sent by the device"); 70 | ESP.deepSleep(300e6); //5*60 71 | } 72 | 73 | delay(2000); 74 | } -------------------------------------------------------------------------------- /esp8266bmp280/esp8266bmp280.ino: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | #include "Ubidots.h" 6 | 7 | const char* UBIDOTS_TOKEN = ""; 8 | const char* WIFI_SSID = ""; 9 | const char* WIFI_PASS = ""; 10 | 11 | float Temperature,preassure,altitude,battery; 12 | bool bufferSent = false; 13 | 14 | Adafruit_BMP280 bmp; 15 | Ubidots ubidots(UBIDOTS_TOKEN, UBI_HTTP); 16 | ADC_MODE(ADC_VCC); 17 | 18 | void setup() { 19 | Serial.begin(9600); 20 | ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); 21 | 22 | if (!bmp.begin()) { 23 | Serial.println(F("Could not find a valid BMP280 sensor, check wiring!")); 24 | //sleeps forever 25 | ESP.deepSleep(0); 26 | } 27 | 28 | 29 | bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, 30 | Adafruit_BMP280::SAMPLING_X2, 31 | Adafruit_BMP280::SAMPLING_X16, 32 | Adafruit_BMP280::FILTER_X16, 33 | Adafruit_BMP280::STANDBY_MS_500); 34 | } 35 | 36 | void loop() { 37 | Temperature =bmp.readTemperature(); 38 | preassure =bmp.readPressure(); 39 | altitude =bmp.readAltitude(1013.25); 40 | 41 | Serial.print(F("Temperature = ")); 42 | 43 | Serial.print(Temperature); 44 | Serial.println(" *C"); 45 | ubidots.add("Temperature",Temperature); 46 | 47 | Serial.print(F("Pressure = ")); 48 | Serial.print(preassure); 49 | Serial.println(" Pa"); 50 | ubidots.add("preassure",preassure); 51 | 52 | Serial.print(F("Approx altitude = ")); 53 | Serial.print(altitude); 54 | Serial.println(" m"); 55 | 56 | 57 | ubidots.add("altitude",altitude); 58 | battery=ESP.getVcc()/1000; 59 | ubidots.add("battery",battery); 60 | Serial.println(battery); 61 | 62 | 63 | bufferSent = ubidots.send(); 64 | 65 | 66 | 67 | if (bufferSent) { 68 | Serial.println("Values sent by the device"); 69 | ESP.deepSleep(300e6); //5*60 70 | } 71 | 72 | delay(2000); 73 | } 74 | -------------------------------------------------------------------------------- /fan/fan.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #define DHTPIN 3 3 | #define DHTTYPE DHT11 4 | #define fan 6 5 | 6 | DHT dht(DHTPIN, DHTTYPE); 7 | 8 | void setup(){ 9 | 10 | Serial.begin(9600); 11 | dht.begin(); 12 | 13 | } 14 | 15 | void loop(){ 16 | float h = dht.readHumidity(); 17 | float t = dht.readTemperature(); 18 | 19 | if (isnan(h) || isnan(t)) { 20 | Serial.println("Failed to read from DHT sensor!"); 21 | } 22 | Serial.println(t); 23 | 24 | if(t>=31.0){ 25 | analogWrite(fan,125); 26 | 27 | } 28 | if(t>=34.0){ 29 | analogWrite(fan,255); 30 | } 31 | else{ 32 | analogWrite(fan,75); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /final: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #define BLYNK_PRINT Serial 9 | 10 | //Web page from esp8266 11 | 12 | const char MAIN_page[] PROGMEM = R"=====( 13 | 14 | 15 | 16 | 17 | 18 | 19 |

SoS

20 | 21 | 22 |
23 |
 24 | Patient Name   : 
 25 | 
26 | Patient Age : 27 |
28 | SSID : 29 |
30 | Password : 31 |
32 | Duty Doctor : 35 |
36 | Concern Doctor : 39 |
40 | By-Stander : 43 |
44 | 45 | 46 |
47 | 48 |
49 | 50 | 51 | 52 | 53 | )====="; 54 | 55 | const char* ssidap = "wifibutton"; 56 | const char* passap = "wifibuttontest"; 57 | char auth[] = "YourAuthToken"; 58 | char esid[] = ""; 59 | char epass[]= ""; 60 | 61 | const char* avgheart = ""; 62 | const char* oxystat = ""; 63 | 64 | String qsid = ""; 65 | String qpass = ""; 66 | String pname =""; 67 | String page =""; 68 | String conphone =""; 69 | String dutyphone=""; 70 | String byphone=""; 71 | bool iskid; 72 | 73 | void eepromwrit(void); 74 | void webserver(void); 75 | 76 | ESP8266WebServer server(80); 77 | 78 | const size_t capacity = JSON_OBJECT_SIZE(3) + JSON_ARRAY_SIZE(2) + 60; 79 | DynamicJsonDocument doc(capacity); 80 | 81 | void setup(){ 82 | 83 | Serial.begin(9600); 84 | EEPROM.begin(512); 85 | 86 | 87 | //Reading the saved ssid 88 | 89 | String esid = ""; 90 | for (int i = 0; i < 32; ++i) 91 | { 92 | esid += char(EEPROM.read(i)); 93 | } 94 | 95 | Serial.println(); 96 | Serial.print("SSID: "); 97 | Serial.println(esid); 98 | 99 | //Reading the saved password 100 | 101 | Serial.println("Reading EEPROM pass"); 102 | String epass = ""; 103 | for (int i = 32; i < 64; ++i) 104 | { 105 | epass += char(EEPROM.read(i)); 106 | } 107 | Serial.print("PASS: "); 108 | Serial.println(epass); 109 | 110 | 111 | Serial.println("Reading EEPROM Patient name"); 112 | 113 | for (int i = 64; i <96; i++) 114 | { 115 | pname += char(EEPROM.read(i)); 116 | } 117 | Serial.println("reading age"); 118 | for (int i = 96;i<= 98;i++){ 119 | page +=char(EEPROM.read(i)); 120 | } 121 | 122 | Serial.println("reading duty doc number"); 123 | for (int i = 98;i<= 108;i++){ 124 | dutyphone+=char(EEPROM.read(i)); 125 | } 126 | Serial.println("reading consern number"); 127 | for (int i = 109;i<= 119;i++){ 128 | conphone+=char(EEPROM.read(i)); 129 | } 130 | 131 | 132 | WiFi.begin(esid, epass); // Connecting to the wifi 133 | 134 | if(testWifi()){ 135 | Serial.println("sucessfully connected"); 136 | Blynk.begin(auth,esid.c_str(), epass.c_str()); 137 | return; 138 | } 139 | else{ 140 | Serial.print("turning on hotspot"); 141 | webserver(); 142 | } 143 | 144 | int timeout = 60 * 4; // 10 seconds 145 | 146 | // Running the web page until establishing a connection 147 | 148 | while(WiFi.status() != WL_CONNECTED && (timeout-- > 0)) { 149 | delay(250); 150 | Serial.println("."); 151 | server.handleClient(); 152 | 153 | } 154 | 155 | //Wifi details 156 | 157 | if(WiFi.status() != WL_CONNECTED) { 158 | Serial.println("not connected"); 159 | } 160 | else{ 161 | Serial.println("connected"); 162 | Serial.print(millis()); 163 | Serial.print(", IP address: "); 164 | Serial.println(WiFi.localIP()); 165 | } 166 | 167 | 168 | } 169 | 170 | // Writing data to the esps eeprom 171 | 172 | void eepromwrit(){ 173 | 174 | 175 | Serial.println("writing eeprom SSID:"); 176 | 177 | for (int i = 0; i < qsid.length(); ++i) 178 | { 179 | EEPROM.write(i, qsid[i]); 180 | Serial.print("Wrote: "); 181 | Serial.println(qsid[i]); 182 | } 183 | Serial.println("writing eeprom pass:"); 184 | 185 | for (int i = 0; i < qpass.length(); ++i) 186 | { 187 | EEPROM.write(32 + i, qpass[i]); 188 | Serial.print("Wrote: "); 189 | Serial.println(qpass[i]); 190 | } 191 | 192 | Serial.println("writing eeprom pname:"); 193 | 194 | for (int i = 0; i < pname.length(); ++i) 195 | { 196 | EEPROM.write(64 + i, pname[i]); 197 | Serial.print("Wrote: "); 198 | Serial.println(pname[i]); 199 | } 200 | Serial.println("writing age"); 201 | 202 | Dev G7, [07.03.20 09:36] 203 | for (int i=0;i 0) { 310 | // Get the request response payload 311 | String payload = http.getString(); 312 | // TODO: Parsing 313 | DeserializationError error = deserializeJson(doc, payload); 314 | if (error) { 315 | Serial.print(F("deserializeJson() failed: ")); 316 | Serial.println(error.c_str()); 317 | return; 318 | } 319 | avgheart = doc["avgheart"].as(); 320 | oxystat = doc["oxystat"].as(); 321 | Blynk.virtualWrite(V5,avgheart); 322 | Blynk.virtualWrite(V6,oxystat); 323 | if(page.toInt()>18){ 324 | Serial.println("kid"); 325 | iskid=0; 326 | }else{ 327 | iskid=1; 328 | Serial.println("adult"); 329 | } 330 | //calcuheart(avgheart,iskid); 331 | } 332 | http.end(); //Close connection 333 | } 334 | } 335 | -------------------------------------------------------------------------------- /hackathon.ino: -------------------------------------------------------------------------------- 1 | #define BLYNK_PRINT Serial 2 | #define l1 4 3 | #define l2 5 4 | #define ecg A0 5 | 6 | #include 7 | #include "MAX30105.h" //MAX3010x library 8 | #include "heartRate.h" //Heart rate calculating algorithm 9 | #include 10 | #include 11 | 12 | MAX30105 particleSensor; 13 | 14 | const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good. 15 | byte rates[RATE_SIZE]; //Array of heart rates 16 | byte rateSpot = 0; 17 | long lastBeat = 0; //Time at which the last beat occurred 18 | float beatsPerMinute; 19 | int beatAvg; 20 | int egcvalue; 21 | byte iskid = 0; 22 | 23 | char auth[] = "YourAuthToken"; 24 | char ssid[] = "YourNetworkName"; 25 | char pass[] = "YourPassword"; 26 | 27 | void setup() { 28 | delay(3000); 29 | // Initialize sensor 30 | Serial.begin(9600); 31 | Blynk.begin(auth, ssid, pass); 32 | pinMode(l1,INPUT); 33 | pinMode(l2,INPUT); 34 | 35 | particleSensor.begin(Wire, I2C_SPEED_FAST); //Use default I2C port, 400kHz speed 36 | particleSensor.setup(); //Configure sensor with default settings 37 | particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running 38 | 39 | } 40 | 41 | void loop() { 42 | Blynk.run(); 43 | long irValue = particleSensor.getIR(); //Reading the IR value it will permit us to know if there's a finger on the sensor or not 44 | if((digitalRead(l1) == 1)||(digitalRead(l2) == 1)){ 45 | Serial.println('!'); 46 | } 47 | else{ 48 | egcvalue = analogRead(ecg); 49 | 50 | } 51 | if(irValue > 7000){ //If a finger is detected 52 | Serial.println("BPM"); 53 | Serial.println(beatAvg); 54 | 55 | if (checkForBeat(irValue) == true) //If a heart beat is detected 56 | { 57 | Serial.println("BPM"); 58 | Serial.println(beatAvg); 59 | tone(3,1000); //And tone the buzzer for a 100ms you can reduce it it will be better 60 | delay(100); 61 | noTone(3); //Deactivate the buzzer to have the effect of a "bip" 62 | long delta = millis() - lastBeat; //Measure duration between two beats 63 | lastBeat = millis(); 64 | 65 | beatsPerMinute = 60 / (delta / 1000.0); //Calculating the BPM 66 | 67 | if (beatsPerMinute < 255 && beatsPerMinute > 20) //To calculate the average we strore some values (4) then do some math to calculate the average 68 | { 69 | rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array 70 | rateSpot %= RATE_SIZE; //Wrap variable 71 | 72 | //Take average of readings 73 | beatAvg = 0; 74 | for (byte x = 0 ; x < RATE_SIZE ; x++) 75 | beatAvg += rates[x]; 76 | beatAvg /= RATE_SIZE; 77 | } 78 | //adult heart beat 79 | if(iskid == 0){ 80 | if(beatAvg>=100 || beatAvg <=60){ 81 | //code to send sos 82 | } 83 | } 84 | //kids heart beat 85 | if(iskid == 1){ 86 | if(beatAvg>=110 || beatAvg <=70){ 87 | //code to send sos 88 | Blynk.notify("Patient is in critical condition") 89 | } 90 | } 91 | //infant heart beat 92 | if(iskid == 2){ 93 | if(beatAvg>=120 || beatAvg<=160){ 94 | //code to send sos 95 | } 96 | } 97 | } 98 | } 99 | 100 | } 101 | 102 | 103 | if (irValue < 7000){ 104 | beatAvg=0; 105 | Serial.println("Please Place "); 106 | Serial.println("your finger "); 107 | noTone(3); 108 | } 109 | 110 | } -------------------------------------------------------------------------------- /homeAuto/home.ino: -------------------------------------------------------------------------------- 1 | #define BLYNK_PRINT Serial 2 | #define BLYNK_PRINT Serial 3 | #define motor 4 4 | #define fan 12 5 | 6 | #define soil_moisture A0 7 | #define ser 14 8 | #define DHTPIN 0 // D3 9 | #define DHTTYPE DHT11 10 | 11 | 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | 19 | 20 | 21 | 22 | int fan_on_off =0; 23 | int garage =0; 24 | int soil; 25 | 26 | float t; 27 | 28 | char auth[] = "5iuuRrTKZiOPjhKU3Qt-glY5RmJ2fs45"; 29 | char ssid[] = "spaceship"; 30 | char pass[] = "88888888"; 31 | 32 | 33 | DHT dht(DHTPIN, DHTTYPE); 34 | BlynkTimer timer; 35 | Servo servo; 36 | 37 | 38 | 39 | void sendSensor() 40 | { 41 | 42 | float h = dht.readHumidity(); 43 | t = dht.readTemperature(); 44 | soil = analogRead(A0); 45 | if (isnan(h) || isnan(t)) { 46 | Serial.println("Failed to read from DHT sensor!"); 47 | return; 48 | } 49 | 50 | 51 | Blynk.virtualWrite(V5, t); 52 | Blynk.virtualWrite(V6, h); 53 | 54 | } 55 | 56 | 57 | 58 | 59 | 60 | BLYNK_WRITE(V1){ 61 | fan_on_off =param.asInt(); 62 | } 63 | 64 | BLYNK_WRITE(V2){ 65 | garage =param.asInt(); 66 | } 67 | 68 | 69 | 70 | 71 | void setup() 72 | { 73 | Serial.begin(9600); 74 | Blynk.begin(auth, ssid, pass); 75 | servo.attach(ser); 76 | dht.begin(); 77 | timer.setInterval(1000L, sendSensor); 78 | pinMode(motor,OUTPUT); 79 | pinMode(soil_moisture,INPUT); 80 | pinMode(fan,OUTPUT); 81 | servo.write(0); 82 | } 83 | 84 | 85 | 86 | void loop() 87 | { 88 | 89 | Blynk.run(); 90 | timer.run(); 91 | 92 | if(garage){ 93 | servo.write(180); 94 | Serial.println("garage open"); 95 | } 96 | else{ 97 | servo.write(0); 98 | Serial.println("garage close"); 99 | } 100 | 101 | 102 | if(soil<100){ 103 | 104 | Serial.println("motor on"); 105 | analogWrite(motor,200); 106 | }else{ 107 | analogWrite(motor,0); 108 | } 109 | Serial.println(fan_on_off); 110 | analogWrite(fan,fan_on_off); 111 | 112 | } 113 | -------------------------------------------------------------------------------- /iotMesh/Node1/Node1.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #define DHTPIN 5 9 | #define DHTTYPE DHT11 10 | 11 | RF24 radio(7, 8); 12 | RF24Network network(radio); 13 | DHT_Unified dht(DHTPIN, DHTTYPE); 14 | 15 | 16 | const uint16_t this_node = 01; 17 | const uint16_t master00 = 00; 18 | 19 | const unsigned long interval = 10; 20 | unsigned long last_sent; 21 | 22 | struct MyData { 23 | byte id; 24 | float moister; 25 | float temp; 26 | float humidity; 27 | float voltage; 28 | bool chargingstat; 29 | }; 30 | 31 | 32 | MyData data; 33 | 34 | 35 | void setup() { 36 | SPI.begin(); 37 | radio.begin(); 38 | network.begin(90, this_node); 39 | radio.setDataRate(RF24_2MBPS); 40 | dht.begin(); 41 | data.id=1; 42 | data.chargingstat=true; 43 | } 44 | 45 | void loop() { 46 | sensors_event_t event; 47 | dht.temperature().getEvent(&event); 48 | network.update(); 49 | //===== Sending =====// 50 | 51 | unsigned long now = millis(); 52 | if (now - last_sent >= interval) { 53 | last_sent = now; 54 | data.moister = 72; 55 | data.voltage=analogRead(A2)*5.0/1024.0; 56 | data.temp=event.temperature; 57 | dht.humidity().getEvent(&event); 58 | data.humidity=event.relative_humidity; 59 | RF24NetworkHeader header(master00); 60 | bool ok = network.write(header, &data, sizeof(MyData)); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /iotMesh/Node2/Node2.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | RF24 radio(7, 8); 6 | RF24Network network(radio); 7 | const uint16_t this_node = 02; 8 | const uint16_t master00 = 00; 9 | const unsigned long interval = 10; 10 | unsigned long last_sent; 11 | 12 | struct MyData { 13 | byte id; 14 | float moister; 15 | float temp; 16 | float humidity; 17 | float voltage; 18 | bool chargingstat; 19 | }; 20 | 21 | 22 | MyData data; 23 | 24 | void setup() { 25 | SPI.begin(); 26 | radio.begin(); 27 | network.begin(90, this_node); 28 | radio.setDataRate(RF24_2MBPS); 29 | Serial.begin(9600); 30 | data.id=2; 31 | data.chargingstat=true; 32 | } 33 | 34 | void loop() { 35 | Serial.println(analogRead(A0)); 36 | network.update(); 37 | //===== Sending =====// 38 | unsigned long now = millis(); 39 | if (now - last_sent >= interval) { 40 | last_sent = now; 41 | data.moister = analogRead(A0); 42 | data.voltage=analogRead(A2)*5.0/1024.0; 43 | RF24NetworkHeader header(master00); 44 | bool ok = network.write(header, &data, sizeof(MyData)); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /iotMesh/Node3/Node3.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | RF24 radio(7, 8); 6 | RF24Network network(radio); 7 | const uint16_t this_node = 03; 8 | const uint16_t master00 = 00; 9 | const unsigned long interval = 10; 10 | unsigned long last_sent; 11 | 12 | struct MyData { 13 | byte id; 14 | float moister; 15 | float temp; 16 | float humidity; 17 | float voltage; 18 | bool chargingstat; 19 | }; 20 | 21 | 22 | MyData data; 23 | 24 | void setup() { 25 | SPI.begin(); 26 | radio.begin(); 27 | network.begin(90, this_node); 28 | radio.setDataRate(RF24_2MBPS); 29 | Serial.begin(9600); 30 | data.id=3; 31 | data.chargingstat=true; 32 | } 33 | 34 | void loop() { 35 | Serial.println(analogRead(A0)); 36 | network.update(); 37 | //===== Sending =====// 38 | unsigned long now = millis(); 39 | if (now - last_sent >= interval) { 40 | last_sent = now; 41 | data.moister = analogRead(A1); 42 | data.voltage=analogRead(A2)*5.0/1024.0; 43 | RF24NetworkHeader header(master00); 44 | bool ok = network.write(header, &data, sizeof(MyData)); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /iotMesh/master/master.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define button 2 6 | #define led 3 7 | 8 | RF24 radio(7, 8); 9 | RF24Network network(radio); 10 | const uint16_t this_node = 00; 11 | const uint16_t node01 = 01; 12 | const uint16_t node012 = 012; 13 | const uint16_t node022 = 022; 14 | 15 | struct MyData { 16 | byte id; 17 | float moister; 18 | float temp; 19 | float humidity; 20 | float voltage; 21 | bool chargingstat; 22 | }; 23 | 24 | MyData data; 25 | 26 | 27 | void setup() { 28 | SPI.begin(); 29 | radio.begin(); 30 | network.begin(90, this_node); 31 | radio.setDataRate(RF24_2MBPS); 32 | Serial.begin(9600); 33 | 34 | } 35 | 36 | void loop() { 37 | network.update(); 38 | 39 | while ( network.available() ) { 40 | RF24NetworkHeader header; 41 | network.read(header, &data, sizeof(MyData)); 42 | Serial.print("ID: "); Serial.print(data.id); Serial.println(" "); 43 | Serial.print("moist: "); Serial.print(data.moister); Serial.println(" "); 44 | Serial.print("temp: "); Serial.print(data.temp); Serial.println(" "); 45 | Serial.print("humidity: "); Serial.print(data.humidity); Serial.println(" "); 46 | Serial.print("voltage: "); Serial.print(data.voltage); Serial.println(" "); 47 | 48 | } 49 | // //===== Sending =====// 50 | // // Servo control at Node 01 51 | // unsigned long potValue = analogRead(A0); 52 | // unsigned long angleValue = map(potValue, 0, 1023, 0, 180); // Suitable for servo control 53 | // RF24NetworkHeader header2(node01); // (Address where the data is going) 54 | // bool ok = network.write(header2, &angleValue, sizeof(angleValue)); // Send the data 55 | // 56 | // // LED Control at Node 012 57 | // unsigned long buttonState = digitalRead(button); 58 | // RF24NetworkHeader header4(node012); // (Address where the data is going) 59 | // bool ok3 = network.write(header4, &buttonState, sizeof(buttonState)); // Send the data 60 | // 61 | // // LEDs control at Node 022 62 | // unsigned long pot2Value = analogRead(A1); 63 | // RF24NetworkHeader header3(node022); // (Address where the data is going) 64 | // bool ok2 = network.write(header3, &pot2Value, sizeof(pot2Value)); // Send the data 65 | } 66 | -------------------------------------------------------------------------------- /pibird/bird.py: -------------------------------------------------------------------------------- 1 | 2 | import time 3 | import numpy as np 4 | import picamera 5 | import RPi.GPIO as GPIO 6 | from PIL import Image 7 | from tflite_runtime.interpreter import Interpreter 8 | 9 | OUT_PIN=17 #out put pin for gpio speaker 10 | 11 | 12 | GPIO.setmode(GPIO.BCM) #set gpio mode to BCM 13 | GPIO.setup(OUT_PIN,GPIO.OUT) #set the gpio pin as output 14 | 15 | # init Raspberry Pi Camera 16 | camera = picamera.PiCamera() 17 | camera.resolution = (224, 224) # ML model expects 224x224 image 18 | 19 | 20 | # specify paths to local file assets 21 | path_to_labels = "birds-label.txt" 22 | path_to_model = "birds-model.tflite" 23 | path_to_image = "images/bird.jpg" 24 | 25 | # confidence threshold at which you want to be notified of a new bird 26 | prob_threshold = 0.4 27 | 28 | 29 | def main(): 30 | check_for_bird() 31 | 32 | 33 | 34 | 35 | def check_for_bird(): 36 | 37 | labels = load_labels() 38 | interpreter = Interpreter(path_to_model) 39 | interpreter.allocate_tensors() 40 | _, height, width, _ = interpreter.get_input_details()[0]['shape'] 41 | 42 | camera.start_preview() #camera preview 43 | time.sleep(2) # give the camera 2 seconds to adjust light balance 44 | camera.capture(path_to_image) 45 | image = Image.open(path_to_image) 46 | results = classify_image(interpreter, image) 47 | label_id, prob = results[0] 48 | print("bird: " + labels[label_id]) 49 | print("prob: " + str(prob)) 50 | camera.stop_preview() 51 | GPIO.output(OUT_PIN,GPIO.LOW); 52 | if prob > prob_threshold: 53 | bird = labels[label_id] 54 | bird = bird[bird.find(",") + 1:] 55 | prob_pct = str(round(prob * 100, 1)) + "%" 56 | print(bird); 57 | GPIO.output(OUT_PIN,GPIO.HIGH); 58 | time.sleep(3) 59 | GPIO.output(OUT_PIN,GPIO.LOW); 60 | 61 | 62 | 63 | def load_labels(): 64 | """ load labels for the ML model from the file specified """ 65 | with open(path_to_labels, 'r') as f: 66 | return {i: line.strip() for i, line in enumerate(f.readlines())} 67 | 68 | 69 | def set_input_tensor(interpreter, image): 70 | tensor_index = interpreter.get_input_details()[0]['index'] 71 | input_tensor = interpreter.tensor(tensor_index)()[0] 72 | input_tensor[:, :] = image 73 | 74 | 75 | def classify_image(interpreter, image, top_k=1): 76 | """ return a sorted array of classification results """ 77 | set_input_tensor(interpreter, image) 78 | interpreter.invoke() 79 | output_details = interpreter.get_output_details()[0] 80 | output = np.squeeze(interpreter.get_tensor(output_details['index'])) 81 | 82 | # if model is quantized (uint8 data), then dequantize the results 83 | if output_details['dtype'] == np.uint8: 84 | scale, zero_point = output_details['quantization'] 85 | output = scale * (output - zero_point) 86 | 87 | ordered = np.argpartition(-output, top_k) 88 | return [(i, output[i]) for i in ordered[:top_k]] 89 | 90 | 91 | 92 | 93 | 94 | while True: 95 | main() 96 | -------------------------------------------------------------------------------- /pibird/birds-label.txt: -------------------------------------------------------------------------------- 1 | id,name 2 | 964,background 3 | 0,Haemorhous cassinii 4 | 1,Limpkin 5 | 2,Rupornis magnirostris 6 | 3,Blue Jay 7 | 4,Steller's Jay 8 | 5,Balearica regulorum 9 | 6,Vermilion Flycatcher 10 | 7,American Avocet 11 | 8,Ardeotis kori 12 | 9,Yellow-billed Magpie 13 | 10,Gray Jay 14 | 11,Antigone canadensis 15 | 12,Parkesia noveboracensis 16 | 13,Ardea herodias occidentalis 17 | 14,Sora 18 | 15,Anas platyrhynchos diazi 19 | 16,Gray Wagtail 20 | 17,Pacific-slope Flycatcher 21 | 18,Least Flycatcher 22 | 19,Buff-breasted Flycatcher 23 | 20,Willow Flycatcher 24 | 21,Hammond's Flycatcher 25 | 22,Cordilleran Flycatcher 26 | 23,Virginia Rail 27 | 24,Common Crane 28 | 25,Boat-tailed Grackle 29 | 26,Barnacle Goose 30 | 27,Cyanocorax yucatanicus 31 | 28,Green Jay 32 | 29,Wilson's Storm-Petrel 33 | 30,Quiscalus niger 34 | 31,Psilorhinus morio 35 | 32,Megarynchus pitangua 36 | 33,Gallinula tenebrosa 37 | 34,Gallus gallus domesticus 38 | 35,Numida meleagris 39 | 36,Junco hyemalis caniceps 40 | 37,Cassin's Kingbird 41 | 38,Eastern Kingbird 42 | 39,Scissor-tailed Flycatcher 43 | 40,Thick-billed Kingbird 44 | 41,Western Kingbird 45 | 42,Fork-tailed Flycatcher 46 | 43,Gallirallus australis 47 | 44,Calocitta formosa 48 | 45,Calocitta colliei 49 | 46,American Coot 50 | 47,Rose-throated Becard 51 | 48,Rough-legged Hawk 52 | 49,Cygnus atratus 53 | 50,Philesturnus rufusater 54 | 51,Great Black-backed Gull 55 | 52,Great Kiskadee 56 | 53,American Black Duck 57 | 54,Anthus novaeseelandiae novaeseelandiae 58 | 55,Eastern Phoebe 59 | 56,Black Phoebe 60 | 57,Masked Tityra 61 | 58,Dryocopus lineatus 62 | 59,Porphyrio melanotus 63 | 60,White-cheeked Pintail 64 | 61,Egretta novaehollandiae 65 | 62,Anas crecca carolinensis 66 | 63,Chukar 67 | 64,Least Grebe 68 | 65,Artemisiospiza belli 69 | 66,Gallus gallus 70 | 67,Pyrrhuloxia 71 | 68,Northern Cardinal 72 | 69,Lincoln's Sparrow 73 | 70,Pied-billed Grebe 74 | 71,Swamp Sparrow 75 | 72,Wild Turkey 76 | 73,Meleagris ocellata 77 | 74,Willow Ptarmigan 78 | 75,Black-chinned Sparrow 79 | 76,Pyrrhocorax graculus 80 | 77,Brewer's Sparrow 81 | 78,Mountain Bluebird 82 | 79,Field Sparrow 83 | 80,Anas superciliosa 84 | 81,Fox Sparrow 85 | 82,Greater Flamingo 86 | 83,Sylvia atricapilla 87 | 84,Bell's Vireo 88 | 85,Vireo plumbeus 89 | 86,Philadelphia Vireo 90 | 87,Yellow-throated Vireo 91 | 88,Red-eyed Vireo 92 | 89,Harris's Sparrow 93 | 90,Hutton's Vireo 94 | 91,White-throated Sparrow 95 | 92,Golden-crowned Sparrow 96 | 93,Emberiza citrinella 97 | 94,Barrow's Goldeneye 98 | 95,Reed Bunting 99 | 96,Warbling Vireo 100 | 97,Serinus serinus 101 | 98,Serinus mozambicus 102 | 99,Lophura leucomelanos 103 | 100,Euphonia elegantissima 104 | 101,Euphonia hirundinacea 105 | 102,Euphonia affinis 106 | 103,Tricolored Blackbird 107 | 104,Momotus lessonii 108 | 105,Zosterops japonicus 109 | 106,Pelagic Cormorant 110 | 107,Hooded Oriole 111 | 108,Audubon's Oriole 112 | 109,Motacilla aguimp 113 | 110,Anas superciliosa × platyrhynchos 114 | 111,Streak-backed Oriole 115 | 112,Altamira Oriole 116 | 113,Carduelis cannabina 117 | 114,Gray-cheeked Thrush 118 | 115,Amaurornis phoenicurus 119 | 116,Pavo cristatus 120 | 117,Rallus crepitans 121 | 118,Nestor meridionalis septentrionalis 122 | 119,Green-tailed Towhee 123 | 120,Spotted Towhee 124 | 121,Eastern Towhee 125 | 122,Cairina moschata domestica 126 | 123,Phalacrocorax varius 127 | 124,Picoides dorsalis 128 | 125,Nuttall's Woodpecker 129 | 126,Ladder-backed Woodpecker 130 | 127,Gambel's Quail 131 | 128,Eurasian Bullfinch 132 | 129,Neotropic Cormorant 133 | 130,Downy Woodpecker 134 | 131,Northern Bobwhite 135 | 132,White-collared Seedeater 136 | 133,Hairy Woodpecker 137 | 134,Semipalmated Sandpiper 138 | 135,Black-backed Woodpecker 139 | 136,Greater Scaup 140 | 137,Red-billed Tropicbird 141 | 138,Eastern Meadowlark 142 | 139,Budgerigar 143 | 140,Lesser Scaup 144 | 141,Aythya novaeseelandiae 145 | 142,Montezuma Quail 146 | 143,Brown Pelican 147 | 144,Cinclus cinclus 148 | 145,Ross's Goose 149 | 146,California Quail 150 | 147,Common Grackle 151 | 148,Great-tailed Grackle 152 | 149,Scaled Quail 153 | 150,Pileated Woodpecker 154 | 151,Passerina caerulea 155 | 152,Berylline Hummingbird 156 | 153,Common Yellowthroat 157 | 154,Trogon melanocephalus 158 | 155,Sylvia communis 159 | 156,Pine Grosbeak 160 | 157,Evening Grosbeak 161 | 158,Hawfinch 162 | 159,Golden-winged Warbler 163 | 160,Opisthocomus hoazin 164 | 161,Setophaga coronata coronata 165 | 162,Diglossa baritula 166 | 163,Saltator coerulescens 167 | 164,Saltator atriceps 168 | 165,Sicalis flaveola 169 | 166,Aix galericulata 170 | 167,Junco hyemalis hyemalis 171 | 168,Eupsittula canicularis 172 | 169,Microcarbo melanoleucos 173 | 170,Summer Tanager 174 | 171,Scarlet Tanager 175 | 172,Hepatic Tanager 176 | 173,Black-throated Sparrow 177 | 174,Larus dominicanus 178 | 175,Piaya cayana 179 | 176,Rufous-crowned Sparrow 180 | 177,Lewis's Woodpecker 181 | 178,Gila Woodpecker 182 | 179,Savannah Sparrow 183 | 180,Melanerpes pucherani 184 | 181,Rock Wren 185 | 182,Red-bellied Woodpecker 186 | 183,Melanerpes chrysogenys 187 | 184,Acorn Woodpecker 188 | 185,Northern Flicker 189 | 186,Rufous-capped Warbler 190 | 187,Larus michahellis 191 | 188,Ramphocelus passerinii 192 | 189,Burrowing Owl 193 | 190,Branta hutchinsii 194 | 191,Brambling 195 | 192,Common Chaffinch 196 | 193,Dark-eyed Junco 197 | 194,Common Cuckoo 198 | 195,Yellow-eyed Junco 199 | 196,Nelson's Sharp-tailed Sparrow 200 | 197,Grasshopper Sparrow 201 | 198,Seaside Sparrow 202 | 199,Black-billed Cuckoo 203 | 200,Mangrove Cuckoo 204 | 201,Yellow-billed Cuckoo 205 | 202,Clark's Nutcracker 206 | 203,Groove-billed Ani 207 | 204,Vesper Sparrow 208 | 205,Olive Sparrow 209 | 206,Greater Roadrunner 210 | 207,Geococcyx velox 211 | 208,Bananaquit 212 | 209,Painted Bunting 213 | 210,Alectura lathami 214 | 211,Passerina leclancherii 215 | 212,Lazuli Bunting 216 | 213,Yellow-breasted Chat 217 | 214,Crax rubra 218 | 215,Penelope purpurascens 219 | 216,Copsychus malabaricus 220 | 217,Paroaria capitata 221 | 218,Cyanerpes cyaneus 222 | 219,Microcarbo melanoleucos brevirostris 223 | 220,Williamson's Sapsucker 224 | 221,Rose-breasted Grosbeak 225 | 222,Red-breasted Sapsucker 226 | 223,Black-headed Grosbeak 227 | 224,Red-naped Sapsucker 228 | 225,Ortalis poliocephala 229 | 226,Plain Chachalaca 230 | 227,Corvus albus 231 | 228,Black-and-white Warbler 232 | 229,Volatinia jacarina 233 | 230,Thraupis palmarum 234 | 231,Momotus mexicanus 235 | 232,Brewer's Blackbird 236 | 233,Cacatua galerita 237 | 234,Junco hyemalis oreganus 238 | 235,Pacific Golden-Plover 239 | 236,Bronzed Cowbird 240 | 237,Brown-headed Cowbird 241 | 238,Merops pusillus 242 | 239,Merops apiaster 243 | 240,Pteroglossus torquatus 244 | 241,Red Crossbill 245 | 242,Merops orientalis 246 | 243,White-winged Crossbill 247 | 244,Coracias garrulus 248 | 245,Coracias caudatus 249 | 246,Coracias benghalensis 250 | 247,Yellow-headed Blackbird 251 | 248,Lark Sparrow 252 | 249,Bobolink 253 | 250,Osprey 254 | 251,Phainopepla 255 | 252,Couch's Kingbird 256 | 253,Phylloscopus collybita 257 | 254,Circus cyaneus hudsonius 258 | 255,Grallina cyanoleuca 259 | 256,Snow Bunting 260 | 257,Lark Bunting 261 | 258,Ruby-crowned Kinglet 262 | 259,Regulus ignicapilla 263 | 260,Regulus regulus 264 | 261,Golden-crowned Kinglet 265 | 262,Tropical Kingbird 266 | 263,Pelecanus conspicillatus 267 | 264,Aulacorhynchus prasinus 268 | 265,Todiramphus sanctus 269 | 266,Bullock's Oriole 270 | 267,Dickcissel 271 | 268,Gray Kingbird 272 | 269,Black Tern 273 | 270,Oriturus superciliosus 274 | 271,Psarocolius montezuma 275 | 272,Fieldfare 276 | 273,Notiomystis cincta 277 | 274,Sagittarius serpentarius 278 | 275,Psittacula krameri 279 | 276,Platycercus eximius 280 | 277,Prothonotary Warbler 281 | 278,Megaceryle torquata 282 | 279,Nestor meridionalis 283 | 280,Red-crowned Parrot 284 | 281,Amazona albifrons 285 | 282,Amazona oratrix 286 | 283,Saxicola rubetra 287 | 284,Ara militaris 288 | 285,Spizelloides arborea 289 | 286,Ceryle rudis 290 | 287,Chloroceryle aenea 291 | 288,Chloroceryle amazona 292 | 289,Myiozetetes similis 293 | 290,Curve-billed Thrasher 294 | 291,Megaceryle alcyon 295 | 292,Horned Lark 296 | 293,Alisterus scapularis 297 | 294,Cinnyris jugularis 298 | 295,Xiphorhynchus flavigaster 299 | 296,Jacana jacana 300 | 297,Phalaropus fulicarius 301 | 298,European Turtle-Dove 302 | 299,Pica hudsonia 303 | 300,Corvus cornix 304 | 301,Monk Parakeet 305 | 302,Eurasian Collared-Dove 306 | 303,Western Tanager 307 | 304,Least Bittern 308 | 305,Verdin 309 | 306,Geothlypis tolmiei 310 | 307,Rock Dove 311 | 308,Setophaga citrina 312 | 309,Setophaga cerulea 313 | 310,Columba palumbus 314 | 311,Flame-colored Tanager 315 | 312,Patagioenas leucocephala 316 | 313,Patagioenas fasciata 317 | 314,Patagioenas flavirostris 318 | 315,Setophaga discolor 319 | 316,Common Nighthawk 320 | 317,Lesser Nighthawk 321 | 318,Platalea leucorodia 322 | 319,Common Poorwill 323 | 320,Haemorhous mexicanus 324 | 321,Haemorhous purpureus 325 | 322,Common Pauraque 326 | 323,Campephilus guatemalensis 327 | 324,Brown Thrasher 328 | 325,White-tipped Dove 329 | 326,Nyctibius jamaicensis 330 | 327,Eurasian Wigeon 331 | 328,Buteo plagiatus 332 | 329,Selasphorus calliope 333 | 330,Megascops kennicottii 334 | 331,Porphyrio poliocephalus 335 | 332,Megascops asio 336 | 333,Zenaida auriculata 337 | 334,Hymenolaimus malacorhynchos 338 | 335,Setophaga caerulescens 339 | 336,Northern Beardless-Tyrannulet 340 | 337,Crested Caracara 341 | 338,Common Ground-Dove 342 | 339,Eupsittula nana 343 | 340,Nestor notabilis 344 | 341,Ruddy Ground-Dove 345 | 342,Geopelia striata 346 | 343,Athene noctua 347 | 344,Smooth-billed Ani 348 | 345,Eastern Bluebird 349 | 346,Platalea alba 350 | 347,Great Horned Owl 351 | 348,Cave Swallow 352 | 349,Purple Martin 353 | 350,Setophaga coronata auduboni 354 | 351,Hirundo neoxena 355 | 352,Barn Swallow 356 | 353,Calidris virgata 357 | 354,Calidris pugnax 358 | 355,Platalea regia 359 | 356,Violet-green Swallow 360 | 357,Bostrychia hagedash 361 | 358,Bank Swallow 362 | 359,White Ibis 363 | 360,Glossy Ibis 364 | 361,White-faced Ibis 365 | 362,Common Raven 366 | 363,Northern Rough-winged Swallow 367 | 364,Masked Booby 368 | 365,Red-footed Booby 369 | 366,Brown Booby 370 | 367,Morus serrator 371 | 368,Eudyptula minor 372 | 369,Megadyptes antipodes 373 | 370,Scopus umbretta 374 | 371,Winter Wren 375 | 372,Red Knot 376 | 373,Lanius collurio 377 | 374,Baird's Sandpiper 378 | 375,Meleagris gallopavo intermedia 379 | 376,Western Sandpiper 380 | 377,Purple Sandpiper 381 | 378,Dunlin 382 | 379,Curlew Sandpiper 383 | 380,Pectoral Sandpiper 384 | 381,Short-billed Dowitcher 385 | 382,Malurus cyaneus 386 | 383,Common Greenshank 387 | 384,Todiramphus sanctus vagans 388 | 385,Green Sandpiper 389 | 386,Wood Sandpiper 390 | 387,Greater Yellowlegs 391 | 388,Lesser Yellowlegs 392 | 389,Eurasian Curlew 393 | 390,Whimbrel 394 | 391,Phalacrocorax carbo novaehollandiae 395 | 392,Petroica macrocephala macrocephala 396 | 393,Petroica australis longipes 397 | 394,Prosthemadera novaeseelandiae novaeseelandiae 398 | 395,Short-eared Owl 399 | 396,Rhipidura fuliginosa fuliginosa 400 | 397,American Woodcock 401 | 398,Ruddy Turnstone 402 | 399,Black Turnstone 403 | 400,Rhipidura fuliginosa placabilis 404 | 401,Black-tailed Godwit 405 | 402,Hudsonian Godwit 406 | 403,Marbled Godwit 407 | 404,Red-necked Phalarope 408 | 405,Upland Sandpiper 409 | 406,Bar-tailed Godwit 410 | 407,Northern Saw-whet Owl 411 | 408,Common Sandpiper 412 | 409,Trichoglossus haematodus 413 | 410,Northern Hawk Owl 414 | 411,Blue-gray Gnatcatcher 415 | 412,Chipping Sparrow 416 | 413,Red-whiskered Bulbul 417 | 414,Indigo Bunting 418 | 415,Varied Bunting 419 | 416,Manorina melanocephala 420 | 417,Ocyphaps lophotes 421 | 418,Jabiru 422 | 419,Pycnonotus cafer 423 | 420,Anser cygnoides domesticus 424 | 421,Picus viridis 425 | 422,Black-footed Albatross 426 | 423,Struthio camelus 427 | 424,Laysan Albatross 428 | 425,Northern Fulmar 429 | 426,Francolinus pondicerianus 430 | 427,Broad-billed Hummingbird 431 | 428,Eared Grebe 432 | 429,Podiceps cristatus 433 | 430,Horned Grebe 434 | 431,Great Spotted Woodpecker 435 | 432,Red-necked Grebe 436 | 433,Tachybaptus ruficollis 437 | 434,Mountain Plover 438 | 435,Double-crested Cormorant 439 | 436,Great Cormorant 440 | 437,Brandt's Cormorant 441 | 438,Clark's Grebe 442 | 439,Pelecanus onocrotalus 443 | 440,American White Pelican 444 | 441,Mourning Dove 445 | 442,Vanellus miles 446 | 443,Western Gull 447 | 444,Trogon massena 448 | 445,Thayer's Gull 449 | 446,Heermann's Gull 450 | 447,Yellow-footed Gull 451 | 448,Mew Gull 452 | 449,Iceland Gull 453 | 450,Ring-billed Gull 454 | 451,Trogon collaris 455 | 452,White-winged Dove 456 | 453,Lesser Black-backed Gull 457 | 454,California Gull 458 | 455,Prosthemadera novaeseelandiae 459 | 456,Elegant Trogon 460 | 457,Glaucous-winged Gull 461 | 458,Trogon citreolus 462 | 459,Pigeon Guillemot 463 | 460,Himantopus leucocephalus 464 | 461,Black Guillemot 465 | 462,Anthornis melanura 466 | 463,Leptoptilos crumenifer 467 | 464,Threskiornis moluccus 468 | 465,Thraupis episcopus 469 | 466,Geranoaetus albicaudatus 470 | 467,Arctic Tern 471 | 468,Common Tern 472 | 469,Forster's Tern 473 | 470,Northern Shrike 474 | 471,Pharomachrus mocinno 475 | 472,Sterna striata 476 | 473,Parasitic Jaeger 477 | 474,Pomarine Jaeger 478 | 475,Anas gracilis 479 | 476,Black-legged Kittiwake 480 | 477,Black Skimmer 481 | 478,Razorbill 482 | 479,Atlantic Puffin 483 | 480,Tufted Puffin 484 | 481,Eurasian Blackbird 485 | 482,Turdus plumbeus 486 | 483,Clay-colored Robin 487 | 484,American Robin 488 | 485,Turdus viscivorus 489 | 486,Rhinoceros Auklet 490 | 487,Turdus philomelos 491 | 488,Galbula ruficauda 492 | 489,Northern Jacana 493 | 490,Saxicola rubicola 494 | 491,Hoopoe 495 | 492,Rusty Blackbird 496 | 493,Pacific Loon 497 | 494,Mimus gilvus 498 | 495,Passer italiae 499 | 496,Common Loon 500 | 497,Red-throated Loon 501 | 498,Northern Wheatear 502 | 499,Magnificent Frigatebird 503 | 500,Great Frigatebird 504 | 501,Eurasian Hobby 505 | 502,Prairie Falcon 506 | 503,Aplomado Falcon 507 | 504,Peregrine Falcon 508 | 505,Falco rufigularis 509 | 506,American Kestrel 510 | 507,Barred Owl 511 | 508,Merlin 512 | 509,Common Moorhen 513 | 510,Cardellina pusilla 514 | 511,Swainson's Thrush 515 | 512,Falco novaeseelandiae 516 | 513,Hermit Thrush 517 | 514,Veery 518 | 515,Caracara cheriway 519 | 516,Herpetotheres cachinnans 520 | 517,Lapland Longspur 521 | 518,Milvago chimachima 522 | 519,Ciconia ciconia 523 | 520,Wood Stork 524 | 521,Mycteria ibis 525 | 522,Western Bluebird 526 | 523,Ephippiorhynchus senegalensis 527 | 524,Turkey Vulture 528 | 525,Townsend's Solitaire 529 | 526,Cathartes burrovianus 530 | 527,Sarcoramphus papa 531 | 528,Black Vulture 532 | 529,Great Gray Owl 533 | 530,Anastomus lamelligerus 534 | 531,Black-bellied Plover 535 | 532,California Condor 536 | 533,Muscicapa striata 537 | 534,Killdeer 538 | 535,Wilson's Plover 539 | 536,Piping Plover 540 | 537,Phoenicurus phoenicurus 541 | 538,Phoenicurus ochruros 542 | 539,Little Ringed Plover 543 | 540,Eumomota superciliosa 544 | 541,Garganey 545 | 542,Black-necked Stilt 546 | 543,Black Oystercatcher 547 | 544,Black-billed Magpie 548 | 545,Eurasian Oystercatcher 549 | 546,Haematopus unicolor 550 | 547,Northern Lapwing 551 | 548,Vanellus spinosus 552 | 549,Vanellus armatus 553 | 550,Bluethroat 554 | 551,Inca Dove 555 | 552,Recurvirostra avosetta 556 | 553,Ring-necked Pheasant 557 | 554,American Golden-Plover 558 | 555,American Dipper 559 | 556,Erithacus rubecula 560 | 557,Golden-fronted Woodpecker 561 | 558,Common Ringed Plover 562 | 559,Western Reef-Heron 563 | 560,Little Blue Heron 564 | 561,Tricolored Heron 565 | 562,Snowy Egret 566 | 563,Little Egret 567 | 564,Egretta sacra 568 | 565,Monticola solitarius 569 | 566,Ardea cocoi 570 | 567,Ardea cinerea 571 | 568,Great Blue Heron 572 | 569,Black-crowned Night-Heron 573 | 570,Rufous-backed Robin 574 | 571,Ardeola ralloides 575 | 572,Yellow-crowned Night-Heron 576 | 573,Aramides cajaneus 577 | 574,Cattle Egret 578 | 575,Green Heron 579 | 576,Porphyrio martinicus 580 | 577,American Bittern 581 | 578,Cochlearius cochlearius 582 | 579,Anhinga novaehollandiae 583 | 580,Anhinga rufa 584 | 581,Melozone fusca 585 | 582,Golden Eagle 586 | 583,Wood Thrush 587 | 584,Aphelocoma wollweberi 588 | 585,Sharp-shinned Hawk 589 | 586,Accipiter nisus 590 | 587,Northern Goshawk 591 | 588,Reddish Egret 592 | 589,Common Goldeneye 593 | 590,Brown Noddy 594 | 591,Actitis macularius 595 | 592,Ardea purpurea 596 | 593,Todiramphus chloris 597 | 594,Whooping Crane 598 | 595,Black-winged Stilt 599 | 596,Northern Pygmy-Owl 600 | 597,Circus approximans 601 | 598,Circus aeruginosus 602 | 599,Phalacrocorax sulcirostris 603 | 600,Zone-tailed Hawk 604 | 601,Butorides striata 605 | 602,Platalea ajaja 606 | 603,Short-tailed Hawk 607 | 604,Great Egret 608 | 605,Swainson's Hawk 609 | 606,Alectoris rufa 610 | 607,Red-shouldered Hawk 611 | 608,Red-tailed Hawk 612 | 609,Charadrius nivosus 613 | 610,Tringa incana 614 | 611,Tringa semipalmata 615 | 612,Terathopius ecaudatus 616 | 613,Gallinago delicata 617 | 614,Common Black-Hawk 618 | 615,Chroicocephalus philadelphia 619 | 616,Circaetus gallicus 620 | 617,Chroicocephalus novaehollandiae 621 | 618,Chroicocephalus ridibundus 622 | 619,Leucophaeus atricilla 623 | 620,Leucophaeus pipixcan 624 | 621,Onychoprion fuscatus 625 | 622,Sternula antillarum 626 | 623,Hydroprogne caspia 627 | 624,Thalasseus maximus 628 | 625,Thalasseus bergii 629 | 626,White-tailed Kite 630 | 627,Alopochen aegyptiaca 631 | 628,Streptopelia senegalensis 632 | 629,Gerygone igata 633 | 630,Bald Eagle 634 | 631,Sedge Wren 635 | 632,Haliaeetus vocifer 636 | 633,Bubo scandiacus 637 | 634,Mottled Owl 638 | 635,Ruffed Grouse 639 | 636,Busarellus nigricollis 640 | 637,Snail Kite 641 | 638,Milvus milvus 642 | 639,Gyps fulvus 643 | 640,Ficedula hypoleuca 644 | 641,Momotus coeruliceps 645 | 642,Semipalmated Plover 646 | 643,Haliastur indus 647 | 644,Gyps africanus 648 | 645,Mississippi Kite 649 | 646,Dives dives 650 | 647,Baeolophus atricristatus 651 | 648,Tufted Titmouse 652 | 649,Baeolophus inornatus 653 | 650,Song Sparrow 654 | 651,Spinus spinus 655 | 652,White Wagtail 656 | 653,Brown Creeper 657 | 654,Bucorvus leadbeateri 658 | 655,Anthus pratensis 659 | 656,American Pipit 660 | 657,Tachycineta albilinea 661 | 658,Carolina Chickadee 662 | 659,Black-capped Chickadee 663 | 660,Mountain Chickadee 664 | 661,Chestnut-backed Chickadee 665 | 662,Periparus ater 666 | 663,Chlorophanes spiza 667 | 664,Estrilda astrild 668 | 665,Cyanistes caeruleus 669 | 666,Yellow-bellied Sapsucker 670 | 667,Cliff Swallow 671 | 668,Troglodytes pacificus 672 | 669,Troglodytes hiemalis 673 | 670,Eurasian Tree Sparrow 674 | 671,House Sparrow 675 | 672,Western Scrub-Jay 676 | 673,Buff-bellied Hummingbird 677 | 674,Amazilia tzacatl 678 | 675,Dicrurus adsimilis 679 | 676,Violet-crowned Hummingbird 680 | 677,Lonchura punctulata 681 | 678,Tigrisoma mexicanum 682 | 679,Porphyrio melanotus melanotus 683 | 680,Melanitta americana 684 | 681,Clay-colored Sparrow 685 | 682,Cinnamon Hummingbird 686 | 683,Zenaida Dove 687 | 684,Prunella modularis 688 | 685,Eurasian Kestrel 689 | 686,Varied Thrush 690 | 687,Ruby-throated Hummingbird 691 | 688,Blue-throated Hummingbird 692 | 689,Dusky-capped Flycatcher 693 | 690,American Redstart 694 | 691,Brown-crested Flycatcher 695 | 692,Zosterops lateralis 696 | 693,White-crowned Sparrow 697 | 694,Red-winged Blackbird 698 | 695,Parus major 699 | 696,Zonotrichia capensis 700 | 697,Oreothlypis peregrina 701 | 698,Oreothlypis celata 702 | 699,Oreothlypis ruficapilla 703 | 700,Geothlypis philadelphia 704 | 701,Geothlypis formosa 705 | 702,Setophaga tigrina 706 | 703,Setophaga americana 707 | 704,Setophaga magnolia 708 | 705,Setophaga castanea 709 | 706,Setophaga fusca 710 | 707,Setophaga petechia 711 | 708,Setophaga striata 712 | 709,Setophaga palmarum 713 | 710,Setophaga pinus 714 | 711,Setophaga coronata 715 | 712,Setophaga dominica 716 | 713,Campylopterus hemileucurus 717 | 714,Vireo cassinii 718 | 715,Setophaga nigrescens 719 | 716,Setophaga townsendi 720 | 717,Setophaga occidentalis 721 | 718,Setophaga chrysoparia 722 | 719,Setophaga virens 723 | 720,Cardellina canadensis 724 | 721,Cardellina rubra 725 | 722,Florida Scrub-Jay 726 | 723,Red-headed Woodpecker 727 | 724,Emberiza calandra 728 | 725,Acanthis flammea 729 | 726,Spinus pinus 730 | 727,Thraupis abbas 731 | 728,Spinus psaltria 732 | 729,Spinus lawrencei 733 | 730,Spinus tristis 734 | 731,Threskiornis aethiopicus 735 | 732,Gygis alba 736 | 733,Tree Swallow 737 | 734,Larus dominicanus dominicanus 738 | 735,Lonchura oryzivora 739 | 736,American Oystercatcher 740 | 737,Chloris chloris 741 | 738,Cooper's Hawk 742 | 739,Vireo solitarius 743 | 740,Broad-tailed Hummingbird 744 | 741,Chroicocephalus scopulinus 745 | 742,Western Grebe 746 | 743,Hemiphaga novaeseelandiae 747 | 744,Sabine's Gull 748 | 745,Ramphastos sulfuratus 749 | 746,Dacelo novaeguineae 750 | 747,Eurasian Coot 751 | 748,Hirundo rustica erythrogaster 752 | 749,Costa's Hummingbird 753 | 750,Anna's Hummingbird 754 | 751,Colaptes auratus cafer 755 | 752,Blue-footed Booby 756 | 753,Copsychus saularis 757 | 754,Allen's Hummingbird 758 | 755,Rufous Hummingbird 759 | 756,Lucifer Hummingbird 760 | 757,Pycnonotus barbatus 761 | 758,Larus glaucescens × occidentalis 762 | 759,Aphelocoma woodhouseii 763 | 760,Florisuga mellivora 764 | 761,Haematopus finschi 765 | 762,Spruce Grouse 766 | 763,Black-chinned Hummingbird 767 | 764,Northern Harrier 768 | 765,Ardea alba modesta 769 | 766,Great Crested Flycatcher 770 | 767,Ferruginous Hawk 771 | 768,White-throated Swift 772 | 769,Vaux's Swift 773 | 770,Chimney Swift 774 | 771,Setophaga pensylvanica 775 | 772,Loggerhead Shrike 776 | 773,Anhinga 777 | 774,Acridotheres tristis 778 | 775,Pygmy Nuthatch 779 | 776,Actophilornis africanus 780 | 777,Red-breasted Nuthatch 781 | 778,Sitta europaea 782 | 779,Brown-headed Nuthatch 783 | 780,Common Swift 784 | 781,European Starling 785 | 782,Seiurus aurocapilla 786 | 783,Yellow Wagtail 787 | 784,White-eyed Vireo 788 | 785,Long-billed Thrasher 789 | 786,Sanderling 790 | 787,California Thrasher 791 | 788,Gallinula galeata 792 | 789,Stilt Sandpiper 793 | 790,Magnificent Hummingbird 794 | 791,Black-vented Oriole 795 | 792,Scott's Oriole 796 | 793,Broad-winged Hawk 797 | 794,Common Snipe 798 | 795,Orchard Oriole 799 | 796,Least Sandpiper 800 | 797,Gray Catbird 801 | 798,Porphyrio hochstetteri 802 | 799,White-rumped Sandpiper 803 | 800,Wilson's Phalarope 804 | 801,Colaptes auratus auratus 805 | 802,Blue Mockingbird 806 | 803,Tiaris olivaceus 807 | 804,Sage Thrasher 808 | 805,Long-billed Dowitcher 809 | 806,Solitary Sandpiper 810 | 807,White-breasted Nuthatch 811 | 808,Tringa totanus 812 | 809,Black-bellied Whistling-Duck 813 | 810,Dendrocygna viduata 814 | 811,Fulvous Whistling-Duck 815 | 812,Icterus abeillei 816 | 813,Vanellus chilensis 817 | 814,Trumpeter Swan 818 | 815,Whooper Swan 819 | 816,Tundra Swan 820 | 817,Mute Swan 821 | 818,Baltimore Oriole 822 | 819,Mallard 823 | 820,Northern Pintail 824 | 821,Green-winged Teal 825 | 822,Cinnamon Teal 826 | 823,Mottled Duck 827 | 824,Blue-winged Teal 828 | 825,Gadwall 829 | 826,Northern Shoveler 830 | 827,Anas chlorotis 831 | 828,Rhipidura leucophrys 832 | 829,American Wigeon 833 | 830,Bufflehead 834 | 831,Red-breasted Merganser 835 | 832,Common Merganser 836 | 833,Anser anser 837 | 834,Greater White-fronted Goose 838 | 835,Common Eider 839 | 836,Rallus obsoletus 840 | 837,Platycercus elegans 841 | 838,White-winged Scoter 842 | 839,Milvus migrans 843 | 840,Gelochelidon nilotica 844 | 841,Ninox novaeseelandiae novaeseelandiae 845 | 842,Surf Scoter 846 | 843,Ring-necked Duck 847 | 844,Common Pochard 848 | 845,Tufted Duck 849 | 846,Long-billed Curlew 850 | 847,Snow Goose 851 | 848,Wrentit 852 | 849,Canada Goose 853 | 850,Thalasseus elegans 854 | 851,Branta sandvicensis 855 | 852,Redhead 856 | 853,Wood Duck 857 | 854,Hooded Merganser 858 | 855,Harlequin Duck 859 | 856,Aratinga nenday 860 | 857,Psittacara holochlorus 861 | 858,Muscovy Duck 862 | 859,Netta rufina 863 | 860,Psittacara erythrogenys 864 | 861,Say's Phoebe 865 | 862,Canvasback 866 | 863,White-headed Woodpecker 867 | 864,Vermivora cyanoptera 868 | 865,Northwestern Crow 869 | 866,Long-eared Owl 870 | 867,American Crow 871 | 868,Oldsquaw 872 | 869,Chenonetta jubata 873 | 870,Thalasseus sandvicensis 874 | 871,Eolophus roseicapilla 875 | 872,Colaptes rubiginosus 876 | 873,Meleagris gallopavo silvestris 877 | 874,Ptiliogonys cinereus 878 | 875,Swallow-tailed Kite 879 | 876,Carduelis carduelis 880 | 877,Cassiculus melanicterus 881 | 878,Dendragapus fuliginosus 882 | 879,Bushtit 883 | 880,Aegithalos caudatus 884 | 881,Zosterops lateralis lateralis 885 | 882,Haliaeetus leucogaster 886 | 883,Common Murre 887 | 884,Tringa semipalmata inornatus 888 | 885,Sky Lark 889 | 886,Galerida cristata 890 | 887,Delichon urbicum 891 | 888,Helmitheros vermivorum 892 | 889,White-eared Hummingbird 893 | 890,Northern Mockingbird 894 | 891,Gymnorhina tibicen 895 | 892,Alcedo atthis 896 | 893,Spotted Dove 897 | 894,Cedar Waxwing 898 | 895,Bohemian Waxwing 899 | 896,Tadorna tadorna 900 | 897,Petroica australis australis 901 | 898,Amazona autumnalis 902 | 899,Blue Grouse 903 | 900,Canyon Wren 904 | 901,Tadorna ferruginea 905 | 902,Cactus Wren 906 | 903,Campylorhynchus rufinucha 907 | 904,Rhipidura fuliginosa 908 | 905,Black-tailed Gnatcatcher 909 | 906,Pelecanus occidentalis carolinensis 910 | 907,Melozone aberti 911 | 908,Melozone crissalis 912 | 909,Carolina Wren 913 | 910,Harris's Hawk 914 | 911,Anas platyrhynchos domesticus 915 | 912,House Wren 916 | 913,Buteo lineatus elegans 917 | 914,Thamnophilus doliatus 918 | 915,Bewick's Wren 919 | 916,Tadorna variegata 920 | 917,Slate-throated Redstart 921 | 918,Phalacrocorax varius varius 922 | 919,Painted Redstart 923 | 920,Larus argentatus smithsonianus 924 | 921,Parkesia motacilla 925 | 922,Sula granti 926 | 923,Ara macao 927 | 924,Peucaea ruficauda 928 | 925,Calidris subruficollis 929 | 926,Phoenicopterus roseus 930 | 927,Northern Gannet 931 | 928,Pelecanus occidentalis californicus 932 | 929,Ferruginous Pygmy-Owl 933 | 930,Ruddy Duck 934 | 931,Ash-throated Flycatcher 935 | 932,Green Kingfisher 936 | 933,Western Meadowlark 937 | 934,Ramphastos ambiguus 938 | 935,Paroaria coronata 939 | 936,Buteo buteo 940 | 937,Sulphur-bellied Flycatcher 941 | 938,Western Wood-Pewee 942 | 939,Corvus corone 943 | 940,Cyanoramphus novaezelandiae 944 | 941,Eastern Wood-Pewee 945 | 942,Greater Pewee 946 | 943,Olive-sided Flycatcher 947 | 944,Herring Gull 948 | 945,Halcyon smyrnensis 949 | 946,Onychognathus morio 950 | 947,Blue Bunting 951 | 948,Marsh Wren 952 | 949,Barn Owl 953 | 950,Trogon caligatus 954 | 951,Eurasian Jackdaw 955 | 952,Fish Crow 956 | 953,Spheniscus demersus 957 | 954,Corvus frugilegus 958 | 955,Corvus splendens 959 | 956,Brant 960 | 957,Glaucous Gull 961 | 958,Columba livia domestica 962 | 959,Garrulus glandarius 963 | 960,Anser anser domesticus 964 | 961,Tufted Flycatcher 965 | 962,Ardenna creatopus 966 | 963,Ardenna gravis 967 | id,name 968 | 964,background 969 | 0,Haemorhous cassinii 970 | 1,Limpkin 971 | 2,Rupornis magnirostris 972 | 3,Blue Jay 973 | 4,Steller's Jay 974 | 5,Balearica regulorum 975 | 6,Vermilion Flycatcher 976 | 7,American Avocet 977 | 8,Ardeotis kori 978 | 9,Yellow-billed Magpie 979 | 10,Gray Jay 980 | 11,Antigone canadensis 981 | 12,Parkesia noveboracensis 982 | 13,Ardea herodias occidentalis 983 | 14,Sora 984 | 15,Anas platyrhynchos diazi 985 | 16,Gray Wagtail 986 | 17,Pacific-slope Flycatcher 987 | 18,Least Flycatcher 988 | 19,Buff-breasted Flycatcher 989 | 20,Willow Flycatcher 990 | 21,Hammond's Flycatcher 991 | 22,Cordilleran Flycatcher 992 | 23,Virginia Rail 993 | 24,Common Crane 994 | 25,Boat-tailed Grackle 995 | 26,Barnacle Goose 996 | 27,Cyanocorax yucatanicus 997 | 28,Green Jay 998 | 29,Wilson's Storm-Petrel 999 | 30,Quiscalus niger 1000 | 31,Psilorhinus morio 1001 | 32,Megarynchus pitangua 1002 | 33,Gallinula tenebrosa 1003 | 34,Gallus gallus domesticus 1004 | 35,Numida meleagris 1005 | 36,Junco hyemalis caniceps 1006 | 37,Cassin's Kingbird 1007 | 38,Eastern Kingbird 1008 | 39,Scissor-tailed Flycatcher 1009 | 40,Thick-billed Kingbird 1010 | 41,Western Kingbird 1011 | 42,Fork-tailed Flycatcher 1012 | 43,Gallirallus australis 1013 | 44,Calocitta formosa 1014 | 45,Calocitta colliei 1015 | 46,American Coot 1016 | 47,Rose-throated Becard 1017 | 48,Rough-legged Hawk 1018 | 49,Cygnus atratus 1019 | 50,Philesturnus rufusater 1020 | 51,Great Black-backed Gull 1021 | 52,Great Kiskadee 1022 | 53,American Black Duck 1023 | 54,Anthus novaeseelandiae novaeseelandiae 1024 | 55,Eastern Phoebe 1025 | 56,Black Phoebe 1026 | 57,Masked Tityra 1027 | 58,Dryocopus lineatus 1028 | 59,Porphyrio melanotus 1029 | 60,White-cheeked Pintail 1030 | 61,Egretta novaehollandiae 1031 | 62,Anas crecca carolinensis 1032 | 63,Chukar 1033 | 64,Least Grebe 1034 | 65,Artemisiospiza belli 1035 | 66,Gallus gallus 1036 | 67,Pyrrhuloxia 1037 | 68,Northern Cardinal 1038 | 69,Lincoln's Sparrow 1039 | 70,Pied-billed Grebe 1040 | 71,Swamp Sparrow 1041 | 72,Wild Turkey 1042 | 73,Meleagris ocellata 1043 | 74,Willow Ptarmigan 1044 | 75,Black-chinned Sparrow 1045 | 76,Pyrrhocorax graculus 1046 | 77,Brewer's Sparrow 1047 | 78,Mountain Bluebird 1048 | 79,Field Sparrow 1049 | 80,Anas superciliosa 1050 | 81,Fox Sparrow 1051 | 82,Greater Flamingo 1052 | 83,Sylvia atricapilla 1053 | 84,Bell's Vireo 1054 | 85,Vireo plumbeus 1055 | 86,Philadelphia Vireo 1056 | 87,Yellow-throated Vireo 1057 | 88,Red-eyed Vireo 1058 | 89,Harris's Sparrow 1059 | 90,Hutton's Vireo 1060 | 91,White-throated Sparrow 1061 | 92,Golden-crowned Sparrow 1062 | 93,Emberiza citrinella 1063 | 94,Barrow's Goldeneye 1064 | 95,Reed Bunting 1065 | 96,Warbling Vireo 1066 | 97,Serinus serinus 1067 | 98,Serinus mozambicus 1068 | 99,Lophura leucomelanos 1069 | 100,Euphonia elegantissima 1070 | 101,Euphonia hirundinacea 1071 | 102,Euphonia affinis 1072 | 103,Tricolored Blackbird 1073 | 104,Momotus lessonii 1074 | 105,Zosterops japonicus 1075 | 106,Pelagic Cormorant 1076 | 107,Hooded Oriole 1077 | 108,Audubon's Oriole 1078 | 109,Motacilla aguimp 1079 | 110,Anas superciliosa × platyrhynchos 1080 | 111,Streak-backed Oriole 1081 | 112,Altamira Oriole 1082 | 113,Carduelis cannabina 1083 | 114,Gray-cheeked Thrush 1084 | 115,Amaurornis phoenicurus 1085 | 116,Pavo cristatus 1086 | 117,Rallus crepitans 1087 | 118,Nestor meridionalis septentrionalis 1088 | 119,Green-tailed Towhee 1089 | 120,Spotted Towhee 1090 | 121,Eastern Towhee 1091 | 122,Cairina moschata domestica 1092 | 123,Phalacrocorax varius 1093 | 124,Picoides dorsalis 1094 | 125,Nuttall's Woodpecker 1095 | 126,Ladder-backed Woodpecker 1096 | 127,Gambel's Quail 1097 | 128,Eurasian Bullfinch 1098 | 129,Neotropic Cormorant 1099 | 130,Downy Woodpecker 1100 | 131,Northern Bobwhite 1101 | 132,White-collared Seedeater 1102 | 133,Hairy Woodpecker 1103 | 134,Semipalmated Sandpiper 1104 | 135,Black-backed Woodpecker 1105 | 136,Greater Scaup 1106 | 137,Red-billed Tropicbird 1107 | 138,Eastern Meadowlark 1108 | 139,Budgerigar 1109 | 140,Lesser Scaup 1110 | 141,Aythya novaeseelandiae 1111 | 142,Montezuma Quail 1112 | 143,Brown Pelican 1113 | 144,Cinclus cinclus 1114 | 145,Ross's Goose 1115 | 146,California Quail 1116 | 147,Common Grackle 1117 | 148,Great-tailed Grackle 1118 | 149,Scaled Quail 1119 | 150,Pileated Woodpecker 1120 | 151,Passerina caerulea 1121 | 152,Berylline Hummingbird 1122 | 153,Common Yellowthroat 1123 | 154,Trogon melanocephalus 1124 | 155,Sylvia communis 1125 | 156,Pine Grosbeak 1126 | 157,Evening Grosbeak 1127 | 158,Hawfinch 1128 | 159,Golden-winged Warbler 1129 | 160,Opisthocomus hoazin 1130 | 161,Setophaga coronata coronata 1131 | 162,Diglossa baritula 1132 | 163,Saltator coerulescens 1133 | 164,Saltator atriceps 1134 | 165,Sicalis flaveola 1135 | 166,Aix galericulata 1136 | 167,Junco hyemalis hyemalis 1137 | 168,Eupsittula canicularis 1138 | 169,Microcarbo melanoleucos 1139 | 170,Summer Tanager 1140 | 171,Scarlet Tanager 1141 | 172,Hepatic Tanager 1142 | 173,Black-throated Sparrow 1143 | 174,Larus dominicanus 1144 | 175,Piaya cayana 1145 | 176,Rufous-crowned Sparrow 1146 | 177,Lewis's Woodpecker 1147 | 178,Gila Woodpecker 1148 | 179,Savannah Sparrow 1149 | 180,Melanerpes pucherani 1150 | 181,Rock Wren 1151 | 182,Red-bellied Woodpecker 1152 | 183,Melanerpes chrysogenys 1153 | 184,Acorn Woodpecker 1154 | 185,Northern Flicker 1155 | 186,Rufous-capped Warbler 1156 | 187,Larus michahellis 1157 | 188,Ramphocelus passerinii 1158 | 189,Burrowing Owl 1159 | 190,Branta hutchinsii 1160 | 191,Brambling 1161 | 192,Common Chaffinch 1162 | 193,Dark-eyed Junco 1163 | 194,Common Cuckoo 1164 | 195,Yellow-eyed Junco 1165 | 196,Nelson's Sharp-tailed Sparrow 1166 | 197,Grasshopper Sparrow 1167 | 198,Seaside Sparrow 1168 | 199,Black-billed Cuckoo 1169 | 200,Mangrove Cuckoo 1170 | 201,Yellow-billed Cuckoo 1171 | 202,Clark's Nutcracker 1172 | 203,Groove-billed Ani 1173 | 204,Vesper Sparrow 1174 | 205,Olive Sparrow 1175 | 206,Greater Roadrunner 1176 | 207,Geococcyx velox 1177 | 208,Bananaquit 1178 | 209,Painted Bunting 1179 | 210,Alectura lathami 1180 | 211,Passerina leclancherii 1181 | 212,Lazuli Bunting 1182 | 213,Yellow-breasted Chat 1183 | 214,Crax rubra 1184 | 215,Penelope purpurascens 1185 | 216,Copsychus malabaricus 1186 | 217,Paroaria capitata 1187 | 218,Cyanerpes cyaneus 1188 | 219,Microcarbo melanoleucos brevirostris 1189 | 220,Williamson's Sapsucker 1190 | 221,Rose-breasted Grosbeak 1191 | 222,Red-breasted Sapsucker 1192 | 223,Black-headed Grosbeak 1193 | 224,Red-naped Sapsucker 1194 | 225,Ortalis poliocephala 1195 | 226,Plain Chachalaca 1196 | 227,Corvus albus 1197 | 228,Black-and-white Warbler 1198 | 229,Volatinia jacarina 1199 | 230,Thraupis palmarum 1200 | 231,Momotus mexicanus 1201 | 232,Brewer's Blackbird 1202 | 233,Cacatua galerita 1203 | 234,Junco hyemalis oreganus 1204 | 235,Pacific Golden-Plover 1205 | 236,Bronzed Cowbird 1206 | 237,Brown-headed Cowbird 1207 | 238,Merops pusillus 1208 | 239,Merops apiaster 1209 | 240,Pteroglossus torquatus 1210 | 241,Red Crossbill 1211 | 242,Merops orientalis 1212 | 243,White-winged Crossbill 1213 | 244,Coracias garrulus 1214 | 245,Coracias caudatus 1215 | 246,Coracias benghalensis 1216 | 247,Yellow-headed Blackbird 1217 | 248,Lark Sparrow 1218 | 249,Bobolink 1219 | 250,Osprey 1220 | 251,Phainopepla 1221 | 252,Couch's Kingbird 1222 | 253,Phylloscopus collybita 1223 | 254,Circus cyaneus hudsonius 1224 | 255,Grallina cyanoleuca 1225 | 256,Snow Bunting 1226 | 257,Lark Bunting 1227 | 258,Ruby-crowned Kinglet 1228 | 259,Regulus ignicapilla 1229 | 260,Regulus regulus 1230 | 261,Golden-crowned Kinglet 1231 | 262,Tropical Kingbird 1232 | 263,Pelecanus conspicillatus 1233 | 264,Aulacorhynchus prasinus 1234 | 265,Todiramphus sanctus 1235 | 266,Bullock's Oriole 1236 | 267,Dickcissel 1237 | 268,Gray Kingbird 1238 | 269,Black Tern 1239 | 270,Oriturus superciliosus 1240 | 271,Psarocolius montezuma 1241 | 272,Fieldfare 1242 | 273,Notiomystis cincta 1243 | 274,Sagittarius serpentarius 1244 | 275,Psittacula krameri 1245 | 276,Platycercus eximius 1246 | 277,Prothonotary Warbler 1247 | 278,Megaceryle torquata 1248 | 279,Nestor meridionalis 1249 | 280,Red-crowned Parrot 1250 | 281,Amazona albifrons 1251 | 282,Amazona oratrix 1252 | 283,Saxicola rubetra 1253 | 284,Ara militaris 1254 | 285,Spizelloides arborea 1255 | 286,Ceryle rudis 1256 | 287,Chloroceryle aenea 1257 | 288,Chloroceryle amazona 1258 | 289,Myiozetetes similis 1259 | 290,Curve-billed Thrasher 1260 | 291,Megaceryle alcyon 1261 | 292,Horned Lark 1262 | 293,Alisterus scapularis 1263 | 294,Cinnyris jugularis 1264 | 295,Xiphorhynchus flavigaster 1265 | 296,Jacana jacana 1266 | 297,Phalaropus fulicarius 1267 | 298,European Turtle-Dove 1268 | 299,Pica hudsonia 1269 | 300,Corvus cornix 1270 | 301,Monk Parakeet 1271 | 302,Eurasian Collared-Dove 1272 | 303,Western Tanager 1273 | 304,Least Bittern 1274 | 305,Verdin 1275 | 306,Geothlypis tolmiei 1276 | 307,Rock Dove 1277 | 308,Setophaga citrina 1278 | 309,Setophaga cerulea 1279 | 310,Columba palumbus 1280 | 311,Flame-colored Tanager 1281 | 312,Patagioenas leucocephala 1282 | 313,Patagioenas fasciata 1283 | 314,Patagioenas flavirostris 1284 | 315,Setophaga discolor 1285 | 316,Common Nighthawk 1286 | 317,Lesser Nighthawk 1287 | 318,Platalea leucorodia 1288 | 319,Common Poorwill 1289 | 320,Haemorhous mexicanus 1290 | 321,Haemorhous purpureus 1291 | 322,Common Pauraque 1292 | 323,Campephilus guatemalensis 1293 | 324,Brown Thrasher 1294 | 325,White-tipped Dove 1295 | 326,Nyctibius jamaicensis 1296 | 327,Eurasian Wigeon 1297 | 328,Buteo plagiatus 1298 | 329,Selasphorus calliope 1299 | 330,Megascops kennicottii 1300 | 331,Porphyrio poliocephalus 1301 | 332,Megascops asio 1302 | 333,Zenaida auriculata 1303 | 334,Hymenolaimus malacorhynchos 1304 | 335,Setophaga caerulescens 1305 | 336,Northern Beardless-Tyrannulet 1306 | 337,Crested Caracara 1307 | 338,Common Ground-Dove 1308 | 339,Eupsittula nana 1309 | 340,Nestor notabilis 1310 | 341,Ruddy Ground-Dove 1311 | 342,Geopelia striata 1312 | 343,Athene noctua 1313 | 344,Smooth-billed Ani 1314 | 345,Eastern Bluebird 1315 | 346,Platalea alba 1316 | 347,Great Horned Owl 1317 | 348,Cave Swallow 1318 | 349,Purple Martin 1319 | 350,Setophaga coronata auduboni 1320 | 351,Hirundo neoxena 1321 | 352,Barn Swallow 1322 | 353,Calidris virgata 1323 | 354,Calidris pugnax 1324 | 355,Platalea regia 1325 | 356,Violet-green Swallow 1326 | 357,Bostrychia hagedash 1327 | 358,Bank Swallow 1328 | 359,White Ibis 1329 | 360,Glossy Ibis 1330 | 361,White-faced Ibis 1331 | 362,Common Raven 1332 | 363,Northern Rough-winged Swallow 1333 | 364,Masked Booby 1334 | 365,Red-footed Booby 1335 | 366,Brown Booby 1336 | 367,Morus serrator 1337 | 368,Eudyptula minor 1338 | 369,Megadyptes antipodes 1339 | 370,Scopus umbretta 1340 | 371,Winter Wren 1341 | 372,Red Knot 1342 | 373,Lanius collurio 1343 | 374,Baird's Sandpiper 1344 | 375,Meleagris gallopavo intermedia 1345 | 376,Western Sandpiper 1346 | 377,Purple Sandpiper 1347 | 378,Dunlin 1348 | 379,Curlew Sandpiper 1349 | 380,Pectoral Sandpiper 1350 | 381,Short-billed Dowitcher 1351 | 382,Malurus cyaneus 1352 | 383,Common Greenshank 1353 | 384,Todiramphus sanctus vagans 1354 | 385,Green Sandpiper 1355 | 386,Wood Sandpiper 1356 | 387,Greater Yellowlegs 1357 | 388,Lesser Yellowlegs 1358 | 389,Eurasian Curlew 1359 | 390,Whimbrel 1360 | 391,Phalacrocorax carbo novaehollandiae 1361 | 392,Petroica macrocephala macrocephala 1362 | 393,Petroica australis longipes 1363 | 394,Prosthemadera novaeseelandiae novaeseelandiae 1364 | 395,Short-eared Owl 1365 | 396,Rhipidura fuliginosa fuliginosa 1366 | 397,American Woodcock 1367 | 398,Ruddy Turnstone 1368 | 399,Black Turnstone 1369 | 400,Rhipidura fuliginosa placabilis 1370 | 401,Black-tailed Godwit 1371 | 402,Hudsonian Godwit 1372 | 403,Marbled Godwit 1373 | 404,Red-necked Phalarope 1374 | 405,Upland Sandpiper 1375 | 406,Bar-tailed Godwit 1376 | 407,Northern Saw-whet Owl 1377 | 408,Common Sandpiper 1378 | 409,Trichoglossus haematodus 1379 | 410,Northern Hawk Owl 1380 | 411,Blue-gray Gnatcatcher 1381 | 412,Chipping Sparrow 1382 | 413,Red-whiskered Bulbul 1383 | 414,Indigo Bunting 1384 | 415,Varied Bunting 1385 | 416,Manorina melanocephala 1386 | 417,Ocyphaps lophotes 1387 | 418,Jabiru 1388 | 419,Pycnonotus cafer 1389 | 420,Anser cygnoides domesticus 1390 | 421,Picus viridis 1391 | 422,Black-footed Albatross 1392 | 423,Struthio camelus 1393 | 424,Laysan Albatross 1394 | 425,Northern Fulmar 1395 | 426,Francolinus pondicerianus 1396 | 427,Broad-billed Hummingbird 1397 | 428,Eared Grebe 1398 | 429,Podiceps cristatus 1399 | 430,Horned Grebe 1400 | 431,Great Spotted Woodpecker 1401 | 432,Red-necked Grebe 1402 | 433,Tachybaptus ruficollis 1403 | 434,Mountain Plover 1404 | 435,Double-crested Cormorant 1405 | 436,Great Cormorant 1406 | 437,Brandt's Cormorant 1407 | 438,Clark's Grebe 1408 | 439,Pelecanus onocrotalus 1409 | 440,American White Pelican 1410 | 441,Mourning Dove 1411 | 442,Vanellus miles 1412 | 443,Western Gull 1413 | 444,Trogon massena 1414 | 445,Thayer's Gull 1415 | 446,Heermann's Gull 1416 | 447,Yellow-footed Gull 1417 | 448,Mew Gull 1418 | 449,Iceland Gull 1419 | 450,Ring-billed Gull 1420 | 451,Trogon collaris 1421 | 452,White-winged Dove 1422 | 453,Lesser Black-backed Gull 1423 | 454,California Gull 1424 | 455,Prosthemadera novaeseelandiae 1425 | 456,Elegant Trogon 1426 | 457,Glaucous-winged Gull 1427 | 458,Trogon citreolus 1428 | 459,Pigeon Guillemot 1429 | 460,Himantopus leucocephalus 1430 | 461,Black Guillemot 1431 | 462,Anthornis melanura 1432 | 463,Leptoptilos crumenifer 1433 | 464,Threskiornis moluccus 1434 | 465,Thraupis episcopus 1435 | 466,Geranoaetus albicaudatus 1436 | 467,Arctic Tern 1437 | 468,Common Tern 1438 | 469,Forster's Tern 1439 | 470,Northern Shrike 1440 | 471,Pharomachrus mocinno 1441 | 472,Sterna striata 1442 | 473,Parasitic Jaeger 1443 | 474,Pomarine Jaeger 1444 | 475,Anas gracilis 1445 | 476,Black-legged Kittiwake 1446 | 477,Black Skimmer 1447 | 478,Razorbill 1448 | 479,Atlantic Puffin 1449 | 480,Tufted Puffin 1450 | 481,Eurasian Blackbird 1451 | 482,Turdus plumbeus 1452 | 483,Clay-colored Robin 1453 | 484,American Robin 1454 | 485,Turdus viscivorus 1455 | 486,Rhinoceros Auklet 1456 | 487,Turdus philomelos 1457 | 488,Galbula ruficauda 1458 | 489,Northern Jacana 1459 | 490,Saxicola rubicola 1460 | 491,Hoopoe 1461 | 492,Rusty Blackbird 1462 | 493,Pacific Loon 1463 | 494,Mimus gilvus 1464 | 495,Passer italiae 1465 | 496,Common Loon 1466 | 497,Red-throated Loon 1467 | 498,Northern Wheatear 1468 | 499,Magnificent Frigatebird 1469 | 500,Great Frigatebird 1470 | 501,Eurasian Hobby 1471 | 502,Prairie Falcon 1472 | 503,Aplomado Falcon 1473 | 504,Peregrine Falcon 1474 | 505,Falco rufigularis 1475 | 506,American Kestrel 1476 | 507,Barred Owl 1477 | 508,Merlin 1478 | 509,Common Moorhen 1479 | 510,Cardellina pusilla 1480 | 511,Swainson's Thrush 1481 | 512,Falco novaeseelandiae 1482 | 513,Hermit Thrush 1483 | 514,Veery 1484 | 515,Caracara cheriway 1485 | 516,Herpetotheres cachinnans 1486 | 517,Lapland Longspur 1487 | 518,Milvago chimachima 1488 | 519,Ciconia ciconia 1489 | 520,Wood Stork 1490 | 521,Mycteria ibis 1491 | 522,Western Bluebird 1492 | 523,Ephippiorhynchus senegalensis 1493 | 524,Turkey Vulture 1494 | 525,Townsend's Solitaire 1495 | 526,Cathartes burrovianus 1496 | 527,Sarcoramphus papa 1497 | 528,Black Vulture 1498 | 529,Great Gray Owl 1499 | 530,Anastomus lamelligerus 1500 | 531,Black-bellied Plover 1501 | 532,California Condor 1502 | 533,Muscicapa striata 1503 | 534,Killdeer 1504 | 535,Wilson's Plover 1505 | 536,Piping Plover 1506 | 537,Phoenicurus phoenicurus 1507 | 538,Phoenicurus ochruros 1508 | 539,Little Ringed Plover 1509 | 540,Eumomota superciliosa 1510 | 541,Garganey 1511 | 542,Black-necked Stilt 1512 | 543,Black Oystercatcher 1513 | 544,Black-billed Magpie 1514 | 545,Eurasian Oystercatcher 1515 | 546,Haematopus unicolor 1516 | 547,Northern Lapwing 1517 | 548,Vanellus spinosus 1518 | 549,Vanellus armatus 1519 | 550,Bluethroat 1520 | 551,Inca Dove 1521 | 552,Recurvirostra avosetta 1522 | 553,Ring-necked Pheasant 1523 | 554,American Golden-Plover 1524 | 555,American Dipper 1525 | 556,Erithacus rubecula 1526 | 557,Golden-fronted Woodpecker 1527 | 558,Common Ringed Plover 1528 | 559,Western Reef-Heron 1529 | 560,Little Blue Heron 1530 | 561,Tricolored Heron 1531 | 562,Snowy Egret 1532 | 563,Little Egret 1533 | 564,Egretta sacra 1534 | 565,Monticola solitarius 1535 | 566,Ardea cocoi 1536 | 567,Ardea cinerea 1537 | 568,Great Blue Heron 1538 | 569,Black-crowned Night-Heron 1539 | 570,Rufous-backed Robin 1540 | 571,Ardeola ralloides 1541 | 572,Yellow-crowned Night-Heron 1542 | 573,Aramides cajaneus 1543 | 574,Cattle Egret 1544 | 575,Green Heron 1545 | 576,Porphyrio martinicus 1546 | 577,American Bittern 1547 | 578,Cochlearius cochlearius 1548 | 579,Anhinga novaehollandiae 1549 | 580,Anhinga rufa 1550 | 581,Melozone fusca 1551 | 582,Golden Eagle 1552 | 583,Wood Thrush 1553 | 584,Aphelocoma wollweberi 1554 | 585,Sharp-shinned Hawk 1555 | 586,Accipiter nisus 1556 | 587,Northern Goshawk 1557 | 588,Reddish Egret 1558 | 589,Common Goldeneye 1559 | 590,Brown Noddy 1560 | 591,Actitis macularius 1561 | 592,Ardea purpurea 1562 | 593,Todiramphus chloris 1563 | 594,Whooping Crane 1564 | 595,Black-winged Stilt 1565 | 596,Northern Pygmy-Owl 1566 | 597,Circus approximans 1567 | 598,Circus aeruginosus 1568 | 599,Phalacrocorax sulcirostris 1569 | 600,Zone-tailed Hawk 1570 | 601,Butorides striata 1571 | 602,Platalea ajaja 1572 | 603,Short-tailed Hawk 1573 | 604,Great Egret 1574 | 605,Swainson's Hawk 1575 | 606,Alectoris rufa 1576 | 607,Red-shouldered Hawk 1577 | 608,Red-tailed Hawk 1578 | 609,Charadrius nivosus 1579 | 610,Tringa incana 1580 | 611,Tringa semipalmata 1581 | 612,Terathopius ecaudatus 1582 | 613,Gallinago delicata 1583 | 614,Common Black-Hawk 1584 | 615,Chroicocephalus philadelphia 1585 | 616,Circaetus gallicus 1586 | 617,Chroicocephalus novaehollandiae 1587 | 618,Chroicocephalus ridibundus 1588 | 619,Leucophaeus atricilla 1589 | 620,Leucophaeus pipixcan 1590 | 621,Onychoprion fuscatus 1591 | 622,Sternula antillarum 1592 | 623,Hydroprogne caspia 1593 | 624,Thalasseus maximus 1594 | 625,Thalasseus bergii 1595 | 626,White-tailed Kite 1596 | 627,Alopochen aegyptiaca 1597 | 628,Streptopelia senegalensis 1598 | 629,Gerygone igata 1599 | 630,Bald Eagle 1600 | 631,Sedge Wren 1601 | 632,Haliaeetus vocifer 1602 | 633,Bubo scandiacus 1603 | 634,Mottled Owl 1604 | 635,Ruffed Grouse 1605 | 636,Busarellus nigricollis 1606 | 637,Snail Kite 1607 | 638,Milvus milvus 1608 | 639,Gyps fulvus 1609 | 640,Ficedula hypoleuca 1610 | 641,Momotus coeruliceps 1611 | 642,Semipalmated Plover 1612 | 643,Haliastur indus 1613 | 644,Gyps africanus 1614 | 645,Mississippi Kite 1615 | 646,Dives dives 1616 | 647,Baeolophus atricristatus 1617 | 648,Tufted Titmouse 1618 | 649,Baeolophus inornatus 1619 | 650,Song Sparrow 1620 | 651,Spinus spinus 1621 | 652,White Wagtail 1622 | 653,Brown Creeper 1623 | 654,Bucorvus leadbeateri 1624 | 655,Anthus pratensis 1625 | 656,American Pipit 1626 | 657,Tachycineta albilinea 1627 | 658,Carolina Chickadee 1628 | 659,Black-capped Chickadee 1629 | 660,Mountain Chickadee 1630 | 661,Chestnut-backed Chickadee 1631 | 662,Periparus ater 1632 | 663,Chlorophanes spiza 1633 | 664,Estrilda astrild 1634 | 665,Cyanistes caeruleus 1635 | 666,Yellow-bellied Sapsucker 1636 | 667,Cliff Swallow 1637 | 668,Troglodytes pacificus 1638 | 669,Troglodytes hiemalis 1639 | 670,Eurasian Tree Sparrow 1640 | 671,House Sparrow 1641 | 672,Western Scrub-Jay 1642 | 673,Buff-bellied Hummingbird 1643 | 674,Amazilia tzacatl 1644 | 675,Dicrurus adsimilis 1645 | 676,Violet-crowned Hummingbird 1646 | 677,Lonchura punctulata 1647 | 678,Tigrisoma mexicanum 1648 | 679,Porphyrio melanotus melanotus 1649 | 680,Melanitta americana 1650 | 681,Clay-colored Sparrow 1651 | 682,Cinnamon Hummingbird 1652 | 683,Zenaida Dove 1653 | 684,Prunella modularis 1654 | 685,Eurasian Kestrel 1655 | 686,Varied Thrush 1656 | 687,Ruby-throated Hummingbird 1657 | 688,Blue-throated Hummingbird 1658 | 689,Dusky-capped Flycatcher 1659 | 690,American Redstart 1660 | 691,Brown-crested Flycatcher 1661 | 692,Zosterops lateralis 1662 | 693,White-crowned Sparrow 1663 | 694,Red-winged Blackbird 1664 | 695,Parus major 1665 | 696,Zonotrichia capensis 1666 | 697,Oreothlypis peregrina 1667 | 698,Oreothlypis celata 1668 | 699,Oreothlypis ruficapilla 1669 | 700,Geothlypis philadelphia 1670 | 701,Geothlypis formosa 1671 | 702,Setophaga tigrina 1672 | 703,Setophaga americana 1673 | 704,Setophaga magnolia 1674 | 705,Setophaga castanea 1675 | 706,Setophaga fusca 1676 | 707,Setophaga petechia 1677 | 708,Setophaga striata 1678 | 709,Setophaga palmarum 1679 | 710,Setophaga pinus 1680 | 711,Setophaga coronata 1681 | 712,Setophaga dominica 1682 | 713,Campylopterus hemileucurus 1683 | 714,Vireo cassinii 1684 | 715,Setophaga nigrescens 1685 | 716,Setophaga townsendi 1686 | 717,Setophaga occidentalis 1687 | 718,Setophaga chrysoparia 1688 | 719,Setophaga virens 1689 | 720,Cardellina canadensis 1690 | 721,Cardellina rubra 1691 | 722,Florida Scrub-Jay 1692 | 723,Red-headed Woodpecker 1693 | 724,Emberiza calandra 1694 | 725,Acanthis flammea 1695 | 726,Spinus pinus 1696 | 727,Thraupis abbas 1697 | 728,Spinus psaltria 1698 | 729,Spinus lawrencei 1699 | 730,Spinus tristis 1700 | 731,Threskiornis aethiopicus 1701 | 732,Gygis alba 1702 | 733,Tree Swallow 1703 | 734,Larus dominicanus dominicanus 1704 | 735,Lonchura oryzivora 1705 | 736,American Oystercatcher 1706 | 737,Chloris chloris 1707 | 738,Cooper's Hawk 1708 | 739,Vireo solitarius 1709 | 740,Broad-tailed Hummingbird 1710 | 741,Chroicocephalus scopulinus 1711 | 742,Western Grebe 1712 | 743,Hemiphaga novaeseelandiae 1713 | 744,Sabine's Gull 1714 | 745,Ramphastos sulfuratus 1715 | 746,Dacelo novaeguineae 1716 | 747,Eurasian Coot 1717 | 748,Hirundo rustica erythrogaster 1718 | 749,Costa's Hummingbird 1719 | 750,Anna's Hummingbird 1720 | 751,Colaptes auratus cafer 1721 | 752,Blue-footed Booby 1722 | 753,Copsychus saularis 1723 | 754,Allen's Hummingbird 1724 | 755,Rufous Hummingbird 1725 | 756,Lucifer Hummingbird 1726 | 757,Pycnonotus barbatus 1727 | 758,Larus glaucescens × occidentalis 1728 | 759,Aphelocoma woodhouseii 1729 | 760,Florisuga mellivora 1730 | 761,Haematopus finschi 1731 | 762,Spruce Grouse 1732 | 763,Black-chinned Hummingbird 1733 | 764,Northern Harrier 1734 | 765,Ardea alba modesta 1735 | 766,Great Crested Flycatcher 1736 | 767,Ferruginous Hawk 1737 | 768,White-throated Swift 1738 | 769,Vaux's Swift 1739 | 770,Chimney Swift 1740 | 771,Setophaga pensylvanica 1741 | 772,Loggerhead Shrike 1742 | 773,Anhinga 1743 | 774,Acridotheres tristis 1744 | 775,Pygmy Nuthatch 1745 | 776,Actophilornis africanus 1746 | 777,Red-breasted Nuthatch 1747 | 778,Sitta europaea 1748 | 779,Brown-headed Nuthatch 1749 | 780,Common Swift 1750 | 781,European Starling 1751 | 782,Seiurus aurocapilla 1752 | 783,Yellow Wagtail 1753 | 784,White-eyed Vireo 1754 | 785,Long-billed Thrasher 1755 | 786,Sanderling 1756 | 787,California Thrasher 1757 | 788,Gallinula galeata 1758 | 789,Stilt Sandpiper 1759 | 790,Magnificent Hummingbird 1760 | 791,Black-vented Oriole 1761 | 792,Scott's Oriole 1762 | 793,Broad-winged Hawk 1763 | 794,Common Snipe 1764 | 795,Orchard Oriole 1765 | 796,Least Sandpiper 1766 | 797,Gray Catbird 1767 | 798,Porphyrio hochstetteri 1768 | 799,White-rumped Sandpiper 1769 | 800,Wilson's Phalarope 1770 | 801,Colaptes auratus auratus 1771 | 802,Blue Mockingbird 1772 | 803,Tiaris olivaceus 1773 | 804,Sage Thrasher 1774 | 805,Long-billed Dowitcher 1775 | 806,Solitary Sandpiper 1776 | 807,White-breasted Nuthatch 1777 | 808,Tringa totanus 1778 | 809,Black-bellied Whistling-Duck 1779 | 810,Dendrocygna viduata 1780 | 811,Fulvous Whistling-Duck 1781 | 812,Icterus abeillei 1782 | 813,Vanellus chilensis 1783 | 814,Trumpeter Swan 1784 | 815,Whooper Swan 1785 | 816,Tundra Swan 1786 | 817,Mute Swan 1787 | 818,Baltimore Oriole 1788 | 819,Mallard 1789 | 820,Northern Pintail 1790 | 821,Green-winged Teal 1791 | 822,Cinnamon Teal 1792 | 823,Mottled Duck 1793 | 824,Blue-winged Teal 1794 | 825,Gadwall 1795 | 826,Northern Shoveler 1796 | 827,Anas chlorotis 1797 | 828,Rhipidura leucophrys 1798 | 829,American Wigeon 1799 | 830,Bufflehead 1800 | 831,Red-breasted Merganser 1801 | 832,Common Merganser 1802 | 833,Anser anser 1803 | 834,Greater White-fronted Goose 1804 | 835,Common Eider 1805 | 836,Rallus obsoletus 1806 | 837,Platycercus elegans 1807 | 838,White-winged Scoter 1808 | 839,Milvus migrans 1809 | 840,Gelochelidon nilotica 1810 | 841,Ninox novaeseelandiae novaeseelandiae 1811 | 842,Surf Scoter 1812 | 843,Ring-necked Duck 1813 | 844,Common Pochard 1814 | 845,Tufted Duck 1815 | 846,Long-billed Curlew 1816 | 847,Snow Goose 1817 | 848,Wrentit 1818 | 849,Canada Goose 1819 | 850,Thalasseus elegans 1820 | 851,Branta sandvicensis 1821 | 852,Redhead 1822 | 853,Wood Duck 1823 | 854,Hooded Merganser 1824 | 855,Harlequin Duck 1825 | 856,Aratinga nenday 1826 | 857,Psittacara holochlorus 1827 | 858,Muscovy Duck 1828 | 859,Netta rufina 1829 | 860,Psittacara erythrogenys 1830 | 861,Say's Phoebe 1831 | 862,Canvasback 1832 | 863,White-headed Woodpecker 1833 | 864,Vermivora cyanoptera 1834 | 865,Northwestern Crow 1835 | 866,Long-eared Owl 1836 | 867,American Crow 1837 | 868,Oldsquaw 1838 | 869,Chenonetta jubata 1839 | 870,Thalasseus sandvicensis 1840 | 871,Eolophus roseicapilla 1841 | 872,Colaptes rubiginosus 1842 | 873,Meleagris gallopavo silvestris 1843 | 874,Ptiliogonys cinereus 1844 | 875,Swallow-tailed Kite 1845 | 876,Carduelis carduelis 1846 | 877,Cassiculus melanicterus 1847 | 878,Dendragapus fuliginosus 1848 | 879,Bushtit 1849 | 880,Aegithalos caudatus 1850 | 881,Zosterops lateralis lateralis 1851 | 882,Haliaeetus leucogaster 1852 | 883,Common Murre 1853 | 884,Tringa semipalmata inornatus 1854 | 885,Sky Lark 1855 | 886,Galerida cristata 1856 | 887,Delichon urbicum 1857 | 888,Helmitheros vermivorum 1858 | 889,White-eared Hummingbird 1859 | 890,Northern Mockingbird 1860 | 891,Gymnorhina tibicen 1861 | 892,Alcedo atthis 1862 | 893,Spotted Dove 1863 | 894,Cedar Waxwing 1864 | 895,Bohemian Waxwing 1865 | 896,Tadorna tadorna 1866 | 897,Petroica australis australis 1867 | 898,Amazona autumnalis 1868 | 899,Blue Grouse 1869 | 900,Canyon Wren 1870 | 901,Tadorna ferruginea 1871 | 902,Cactus Wren 1872 | 903,Campylorhynchus rufinucha 1873 | 904,Rhipidura fuliginosa 1874 | 905,Black-tailed Gnatcatcher 1875 | 906,Pelecanus occidentalis carolinensis 1876 | 907,Melozone aberti 1877 | 908,Melozone crissalis 1878 | 909,Carolina Wren 1879 | 910,Harris's Hawk 1880 | 911,Anas platyrhynchos domesticus 1881 | 912,House Wren 1882 | 913,Buteo lineatus elegans 1883 | 914,Thamnophilus doliatus 1884 | 915,Bewick's Wren 1885 | 916,Tadorna variegata 1886 | 917,Slate-throated Redstart 1887 | 918,Phalacrocorax varius varius 1888 | 919,Painted Redstart 1889 | 920,Larus argentatus smithsonianus 1890 | 921,Parkesia motacilla 1891 | 922,Sula granti 1892 | 923,Ara macao 1893 | 924,Peucaea ruficauda 1894 | 925,Calidris subruficollis 1895 | 926,Phoenicopterus roseus 1896 | 927,Northern Gannet 1897 | 928,Pelecanus occidentalis californicus 1898 | 929,Ferruginous Pygmy-Owl 1899 | 930,Ruddy Duck 1900 | 931,Ash-throated Flycatcher 1901 | 932,Green Kingfisher 1902 | 933,Western Meadowlark 1903 | 934,Ramphastos ambiguus 1904 | 935,Paroaria coronata 1905 | 936,Buteo buteo 1906 | 937,Sulphur-bellied Flycatcher 1907 | 938,Western Wood-Pewee 1908 | 939,Corvus corone 1909 | 940,Cyanoramphus novaezelandiae 1910 | 941,Eastern Wood-Pewee 1911 | 942,Greater Pewee 1912 | 943,Olive-sided Flycatcher 1913 | 944,Herring Gull 1914 | 945,Halcyon smyrnensis 1915 | 946,Onychognathus morio 1916 | 947,Blue Bunting 1917 | 948,Marsh Wren 1918 | 949,Barn Owl 1919 | 950,Trogon caligatus 1920 | 951,Eurasian Jackdaw 1921 | 952,Fish Crow 1922 | 953,Spheniscus demersus 1923 | 954,Corvus frugilegus 1924 | 955,Corvus splendens 1925 | 956,Brant 1926 | 957,Glaucous Gull 1927 | 958,Columba livia domestica 1928 | 959,Garrulus glandarius 1929 | 960,Anser anser domesticus 1930 | 961,Tufted Flycatcher 1931 | 962,Ardenna creatopus 1932 | 963,Ardenna gravis 1933 | id,name 1934 | 964,background 1935 | 0,Haemorhous cassinii 1936 | 1,Limpkin 1937 | 2,Rupornis magnirostris 1938 | 3,Blue Jay 1939 | 4,Steller's Jay 1940 | 5,Balearica regulorum 1941 | 6,Vermilion Flycatcher 1942 | 7,American Avocet 1943 | 8,Ardeotis kori 1944 | 9,Yellow-billed Magpie 1945 | 10,Gray Jay 1946 | 11,Antigone canadensis 1947 | 12,Parkesia noveboracensis 1948 | 13,Ardea herodias occidentalis 1949 | 14,Sora 1950 | 15,Anas platyrhynchos diazi 1951 | 16,Gray Wagtail 1952 | 17,Pacific-slope Flycatcher 1953 | 18,Least Flycatcher 1954 | 19,Buff-breasted Flycatcher 1955 | 20,Willow Flycatcher 1956 | 21,Hammond's Flycatcher 1957 | 22,Cordilleran Flycatcher 1958 | 23,Virginia Rail 1959 | 24,Common Crane 1960 | 25,Boat-tailed Grackle 1961 | 26,Barnacle Goose 1962 | 27,Cyanocorax yucatanicus 1963 | 28,Green Jay 1964 | 29,Wilson's Storm-Petrel 1965 | 30,Quiscalus niger 1966 | 31,Psilorhinus morio 1967 | 32,Megarynchus pitangua 1968 | 33,Gallinula tenebrosa 1969 | 34,Gallus gallus domesticus 1970 | 35,Numida meleagris 1971 | 36,Junco hyemalis caniceps 1972 | 37,Cassin's Kingbird 1973 | 38,Eastern Kingbird 1974 | 39,Scissor-tailed Flycatcher 1975 | 40,Thick-billed Kingbird 1976 | 41,Western Kingbird 1977 | 42,Fork-tailed Flycatcher 1978 | 43,Gallirallus australis 1979 | 44,Calocitta formosa 1980 | 45,Calocitta colliei 1981 | 46,American Coot 1982 | 47,Rose-throated Becard 1983 | 48,Rough-legged Hawk 1984 | 49,Cygnus atratus 1985 | 50,Philesturnus rufusater 1986 | 51,Great Black-backed Gull 1987 | 52,Great Kiskadee 1988 | 53,American Black Duck 1989 | 54,Anthus novaeseelandiae novaeseelandiae 1990 | 55,Eastern Phoebe 1991 | 56,Black Phoebe 1992 | 57,Masked Tityra 1993 | 58,Dryocopus lineatus 1994 | 59,Porphyrio melanotus 1995 | 60,White-cheeked Pintail 1996 | 61,Egretta novaehollandiae 1997 | 62,Anas crecca carolinensis 1998 | 63,Chukar 1999 | 64,Least Grebe 2000 | 65,Artemisiospiza belli 2001 | 66,Gallus gallus 2002 | 67,Pyrrhuloxia 2003 | 68,Northern Cardinal 2004 | 69,Lincoln's Sparrow 2005 | 70,Pied-billed Grebe 2006 | 71,Swamp Sparrow 2007 | 72,Wild Turkey 2008 | 73,Meleagris ocellata 2009 | 74,Willow Ptarmigan 2010 | 75,Black-chinned Sparrow 2011 | 76,Pyrrhocorax graculus 2012 | 77,Brewer's Sparrow 2013 | 78,Mountain Bluebird 2014 | 79,Field Sparrow 2015 | 80,Anas superciliosa 2016 | 81,Fox Sparrow 2017 | 82,Greater Flamingo 2018 | 83,Sylvia atricapilla 2019 | 84,Bell's Vireo 2020 | 85,Vireo plumbeus 2021 | 86,Philadelphia Vireo 2022 | 87,Yellow-throated Vireo 2023 | 88,Red-eyed Vireo 2024 | 89,Harris's Sparrow 2025 | 90,Hutton's Vireo 2026 | 91,White-throated Sparrow 2027 | 92,Golden-crowned Sparrow 2028 | 93,Emberiza citrinella 2029 | 94,Barrow's Goldeneye 2030 | 95,Reed Bunting 2031 | 96,Warbling Vireo 2032 | 97,Serinus serinus 2033 | 98,Serinus mozambicus 2034 | 99,Lophura leucomelanos 2035 | 100,Euphonia elegantissima 2036 | 101,Euphonia hirundinacea 2037 | 102,Euphonia affinis 2038 | 103,Tricolored Blackbird 2039 | 104,Momotus lessonii 2040 | 105,Zosterops japonicus 2041 | 106,Pelagic Cormorant 2042 | 107,Hooded Oriole 2043 | 108,Audubon's Oriole 2044 | 109,Motacilla aguimp 2045 | 110,Anas superciliosa × platyrhynchos 2046 | 111,Streak-backed Oriole 2047 | 112,Altamira Oriole 2048 | 113,Carduelis cannabina 2049 | 114,Gray-cheeked Thrush 2050 | 115,Amaurornis phoenicurus 2051 | 116,Pavo cristatus 2052 | 117,Rallus crepitans 2053 | 118,Nestor meridionalis septentrionalis 2054 | 119,Green-tailed Towhee 2055 | 120,Spotted Towhee 2056 | 121,Eastern Towhee 2057 | 122,Cairina moschata domestica 2058 | 123,Phalacrocorax varius 2059 | 124,Picoides dorsalis 2060 | 125,Nuttall's Woodpecker 2061 | 126,Ladder-backed Woodpecker 2062 | 127,Gambel's Quail 2063 | 128,Eurasian Bullfinch 2064 | 129,Neotropic Cormorant 2065 | 130,Downy Woodpecker 2066 | 131,Northern Bobwhite 2067 | 132,White-collared Seedeater 2068 | 133,Hairy Woodpecker 2069 | 134,Semipalmated Sandpiper 2070 | 135,Black-backed Woodpecker 2071 | 136,Greater Scaup 2072 | 137,Red-billed Tropicbird 2073 | 138,Eastern Meadowlark 2074 | 139,Budgerigar 2075 | 140,Lesser Scaup 2076 | 141,Aythya novaeseelandiae 2077 | 142,Montezuma Quail 2078 | 143,Brown Pelican 2079 | 144,Cinclus cinclus 2080 | 145,Ross's Goose 2081 | 146,California Quail 2082 | 147,Common Grackle 2083 | 148,Great-tailed Grackle 2084 | 149,Scaled Quail 2085 | 150,Pileated Woodpecker 2086 | 151,Passerina caerulea 2087 | 152,Berylline Hummingbird 2088 | 153,Common Yellowthroat 2089 | 154,Trogon melanocephalus 2090 | 155,Sylvia communis 2091 | 156,Pine Grosbeak 2092 | 157,Evening Grosbeak 2093 | 158,Hawfinch 2094 | 159,Golden-winged Warbler 2095 | 160,Opisthocomus hoazin 2096 | 161,Setophaga coronata coronata 2097 | 162,Diglossa baritula 2098 | 163,Saltator coerulescens 2099 | 164,Saltator atriceps 2100 | 165,Sicalis flaveola 2101 | 166,Aix galericulata 2102 | 167,Junco hyemalis hyemalis 2103 | 168,Eupsittula canicularis 2104 | 169,Microcarbo melanoleucos 2105 | 170,Summer Tanager 2106 | 171,Scarlet Tanager 2107 | 172,Hepatic Tanager 2108 | 173,Black-throated Sparrow 2109 | 174,Larus dominicanus 2110 | 175,Piaya cayana 2111 | 176,Rufous-crowned Sparrow 2112 | 177,Lewis's Woodpecker 2113 | 178,Gila Woodpecker 2114 | 179,Savannah Sparrow 2115 | 180,Melanerpes pucherani 2116 | 181,Rock Wren 2117 | 182,Red-bellied Woodpecker 2118 | 183,Melanerpes chrysogenys 2119 | 184,Acorn Woodpecker 2120 | 185,Northern Flicker 2121 | 186,Rufous-capped Warbler 2122 | 187,Larus michahellis 2123 | 188,Ramphocelus passerinii 2124 | 189,Burrowing Owl 2125 | 190,Branta hutchinsii 2126 | 191,Brambling 2127 | 192,Common Chaffinch 2128 | 193,Dark-eyed Junco 2129 | 194,Common Cuckoo 2130 | 195,Yellow-eyed Junco 2131 | 196,Nelson's Sharp-tailed Sparrow 2132 | 197,Grasshopper Sparrow 2133 | 198,Seaside Sparrow 2134 | 199,Black-billed Cuckoo 2135 | 200,Mangrove Cuckoo 2136 | 201,Yellow-billed Cuckoo 2137 | 202,Clark's Nutcracker 2138 | 203,Groove-billed Ani 2139 | 204,Vesper Sparrow 2140 | 205,Olive Sparrow 2141 | 206,Greater Roadrunner 2142 | 207,Geococcyx velox 2143 | 208,Bananaquit 2144 | 209,Painted Bunting 2145 | 210,Alectura lathami 2146 | 211,Passerina leclancherii 2147 | 212,Lazuli Bunting 2148 | 213,Yellow-breasted Chat 2149 | 214,Crax rubra 2150 | 215,Penelope purpurascens 2151 | 216,Copsychus malabaricus 2152 | 217,Paroaria capitata 2153 | 218,Cyanerpes cyaneus 2154 | 219,Microcarbo melanoleucos brevirostris 2155 | 220,Williamson's Sapsucker 2156 | 221,Rose-breasted Grosbeak 2157 | 222,Red-breasted Sapsucker 2158 | 223,Black-headed Grosbeak 2159 | 224,Red-naped Sapsucker 2160 | 225,Ortalis poliocephala 2161 | 226,Plain Chachalaca 2162 | 227,Corvus albus 2163 | 228,Black-and-white Warbler 2164 | 229,Volatinia jacarina 2165 | 230,Thraupis palmarum 2166 | 231,Momotus mexicanus 2167 | 232,Brewer's Blackbird 2168 | 233,Cacatua galerita 2169 | 234,Junco hyemalis oreganus 2170 | 235,Pacific Golden-Plover 2171 | 236,Bronzed Cowbird 2172 | 237,Brown-headed Cowbird 2173 | 238,Merops pusillus 2174 | 239,Merops apiaster 2175 | 240,Pteroglossus torquatus 2176 | 241,Red Crossbill 2177 | 242,Merops orientalis 2178 | 243,White-winged Crossbill 2179 | 244,Coracias garrulus 2180 | 245,Coracias caudatus 2181 | 246,Coracias benghalensis 2182 | 247,Yellow-headed Blackbird 2183 | 248,Lark Sparrow 2184 | 249,Bobolink 2185 | 250,Osprey 2186 | 251,Phainopepla 2187 | 252,Couch's Kingbird 2188 | 253,Phylloscopus collybita 2189 | 254,Circus cyaneus hudsonius 2190 | 255,Grallina cyanoleuca 2191 | 256,Snow Bunting 2192 | 257,Lark Bunting 2193 | 258,Ruby-crowned Kinglet 2194 | 259,Regulus ignicapilla 2195 | 260,Regulus regulus 2196 | 261,Golden-crowned Kinglet 2197 | 262,Tropical Kingbird 2198 | 263,Pelecanus conspicillatus 2199 | 264,Aulacorhynchus prasinus 2200 | 265,Todiramphus sanctus 2201 | 266,Bullock's Oriole 2202 | 267,Dickcissel 2203 | 268,Gray Kingbird 2204 | 269,Black Tern 2205 | 270,Oriturus superciliosus 2206 | 271,Psarocolius montezuma 2207 | 272,Fieldfare 2208 | 273,Notiomystis cincta 2209 | 274,Sagittarius serpentarius 2210 | 275,Psittacula krameri 2211 | 276,Platycercus eximius 2212 | 277,Prothonotary Warbler 2213 | 278,Megaceryle torquata 2214 | 279,Nestor meridionalis 2215 | 280,Red-crowned Parrot 2216 | 281,Amazona albifrons 2217 | 282,Amazona oratrix 2218 | 283,Saxicola rubetra 2219 | 284,Ara militaris 2220 | 285,Spizelloides arborea 2221 | 286,Ceryle rudis 2222 | 287,Chloroceryle aenea 2223 | 288,Chloroceryle amazona 2224 | 289,Myiozetetes similis 2225 | 290,Curve-billed Thrasher 2226 | 291,Megaceryle alcyon 2227 | 292,Horned Lark 2228 | 293,Alisterus scapularis 2229 | 294,Cinnyris jugularis 2230 | 295,Xiphorhynchus flavigaster 2231 | 296,Jacana jacana 2232 | 297,Phalaropus fulicarius 2233 | 298,European Turtle-Dove 2234 | 299,Pica hudsonia 2235 | 300,Corvus cornix 2236 | 301,Monk Parakeet 2237 | 302,Eurasian Collared-Dove 2238 | 303,Western Tanager 2239 | 304,Least Bittern 2240 | 305,Verdin 2241 | 306,Geothlypis tolmiei 2242 | 307,Rock Dove 2243 | 308,Setophaga citrina 2244 | 309,Setophaga cerulea 2245 | 310,Columba palumbus 2246 | 311,Flame-colored Tanager 2247 | 312,Patagioenas leucocephala 2248 | 313,Patagioenas fasciata 2249 | 314,Patagioenas flavirostris 2250 | 315,Setophaga discolor 2251 | 316,Common Nighthawk 2252 | 317,Lesser Nighthawk 2253 | 318,Platalea leucorodia 2254 | 319,Common Poorwill 2255 | 320,Haemorhous mexicanus 2256 | 321,Haemorhous purpureus 2257 | 322,Common Pauraque 2258 | 323,Campephilus guatemalensis 2259 | 324,Brown Thrasher 2260 | 325,White-tipped Dove 2261 | 326,Nyctibius jamaicensis 2262 | 327,Eurasian Wigeon 2263 | 328,Buteo plagiatus 2264 | 329,Selasphorus calliope 2265 | 330,Megascops kennicottii 2266 | 331,Porphyrio poliocephalus 2267 | 332,Megascops asio 2268 | 333,Zenaida auriculata 2269 | 334,Hymenolaimus malacorhynchos 2270 | 335,Setophaga caerulescens 2271 | 336,Northern Beardless-Tyrannulet 2272 | 337,Crested Caracara 2273 | 338,Common Ground-Dove 2274 | 339,Eupsittula nana 2275 | 340,Nestor notabilis 2276 | 341,Ruddy Ground-Dove 2277 | 342,Geopelia striata 2278 | 343,Athene noctua 2279 | 344,Smooth-billed Ani 2280 | 345,Eastern Bluebird 2281 | 346,Platalea alba 2282 | 347,Great Horned Owl 2283 | 348,Cave Swallow 2284 | 349,Purple Martin 2285 | 350,Setophaga coronata auduboni 2286 | 351,Hirundo neoxena 2287 | 352,Barn Swallow 2288 | 353,Calidris virgata 2289 | 354,Calidris pugnax 2290 | 355,Platalea regia 2291 | 356,Violet-green Swallow 2292 | 357,Bostrychia hagedash 2293 | 358,Bank Swallow 2294 | 359,White Ibis 2295 | 360,Glossy Ibis 2296 | 361,White-faced Ibis 2297 | 362,Common Raven 2298 | 363,Northern Rough-winged Swallow 2299 | 364,Masked Booby 2300 | 365,Red-footed Booby 2301 | 366,Brown Booby 2302 | 367,Morus serrator 2303 | 368,Eudyptula minor 2304 | 369,Megadyptes antipodes 2305 | 370,Scopus umbretta 2306 | 371,Winter Wren 2307 | 372,Red Knot 2308 | 373,Lanius collurio 2309 | 374,Baird's Sandpiper 2310 | 375,Meleagris gallopavo intermedia 2311 | 376,Western Sandpiper 2312 | 377,Purple Sandpiper 2313 | 378,Dunlin 2314 | 379,Curlew Sandpiper 2315 | 380,Pectoral Sandpiper 2316 | 381,Short-billed Dowitcher 2317 | 382,Malurus cyaneus 2318 | 383,Common Greenshank 2319 | 384,Todiramphus sanctus vagans 2320 | 385,Green Sandpiper 2321 | 386,Wood Sandpiper 2322 | 387,Greater Yellowlegs 2323 | 388,Lesser Yellowlegs 2324 | 389,Eurasian Curlew 2325 | 390,Whimbrel 2326 | 391,Phalacrocorax carbo novaehollandiae 2327 | 392,Petroica macrocephala macrocephala 2328 | 393,Petroica australis longipes 2329 | 394,Prosthemadera novaeseelandiae novaeseelandiae 2330 | 395,Short-eared Owl 2331 | 396,Rhipidura fuliginosa fuliginosa 2332 | 397,American Woodcock 2333 | 398,Ruddy Turnstone 2334 | 399,Black Turnstone 2335 | 400,Rhipidura fuliginosa placabilis 2336 | 401,Black-tailed Godwit 2337 | 402,Hudsonian Godwit 2338 | 403,Marbled Godwit 2339 | 404,Red-necked Phalarope 2340 | 405,Upland Sandpiper 2341 | 406,Bar-tailed Godwit 2342 | 407,Northern Saw-whet Owl 2343 | 408,Common Sandpiper 2344 | 409,Trichoglossus haematodus 2345 | 410,Northern Hawk Owl 2346 | 411,Blue-gray Gnatcatcher 2347 | 412,Chipping Sparrow 2348 | 413,Red-whiskered Bulbul 2349 | 414,Indigo Bunting 2350 | 415,Varied Bunting 2351 | 416,Manorina melanocephala 2352 | 417,Ocyphaps lophotes 2353 | 418,Jabiru 2354 | 419,Pycnonotus cafer 2355 | 420,Anser cygnoides domesticus 2356 | 421,Picus viridis 2357 | 422,Black-footed Albatross 2358 | 423,Struthio camelus 2359 | 424,Laysan Albatross 2360 | 425,Northern Fulmar 2361 | 426,Francolinus pondicerianus 2362 | 427,Broad-billed Hummingbird 2363 | 428,Eared Grebe 2364 | 429,Podiceps cristatus 2365 | 430,Horned Grebe 2366 | 431,Great Spotted Woodpecker 2367 | 432,Red-necked Grebe 2368 | 433,Tachybaptus ruficollis 2369 | 434,Mountain Plover 2370 | 435,Double-crested Cormorant 2371 | 436,Great Cormorant 2372 | 437,Brandt's Cormorant 2373 | 438,Clark's Grebe 2374 | 439,Pelecanus onocrotalus 2375 | 440,American White Pelican 2376 | 441,Mourning Dove 2377 | 442,Vanellus miles 2378 | 443,Western Gull 2379 | 444,Trogon massena 2380 | 445,Thayer's Gull 2381 | 446,Heermann's Gull 2382 | 447,Yellow-footed Gull 2383 | 448,Mew Gull 2384 | 449,Iceland Gull 2385 | 450,Ring-billed Gull 2386 | 451,Trogon collaris 2387 | 452,White-winged Dove 2388 | 453,Lesser Black-backed Gull 2389 | 454,California Gull 2390 | 455,Prosthemadera novaeseelandiae 2391 | 456,Elegant Trogon 2392 | 457,Glaucous-winged Gull 2393 | 458,Trogon citreolus 2394 | 459,Pigeon Guillemot 2395 | 460,Himantopus leucocephalus 2396 | 461,Black Guillemot 2397 | 462,Anthornis melanura 2398 | 463,Leptoptilos crumenifer 2399 | 464,Threskiornis moluccus 2400 | 465,Thraupis episcopus 2401 | 466,Geranoaetus albicaudatus 2402 | 467,Arctic Tern 2403 | 468,Common Tern 2404 | 469,Forster's Tern 2405 | 470,Northern Shrike 2406 | 471,Pharomachrus mocinno 2407 | 472,Sterna striata 2408 | 473,Parasitic Jaeger 2409 | 474,Pomarine Jaeger 2410 | 475,Anas gracilis 2411 | 476,Black-legged Kittiwake 2412 | 477,Black Skimmer 2413 | 478,Razorbill 2414 | 479,Atlantic Puffin 2415 | 480,Tufted Puffin 2416 | 481,Eurasian Blackbird 2417 | 482,Turdus plumbeus 2418 | 483,Clay-colored Robin 2419 | 484,American Robin 2420 | 485,Turdus viscivorus 2421 | 486,Rhinoceros Auklet 2422 | 487,Turdus philomelos 2423 | 488,Galbula ruficauda 2424 | 489,Northern Jacana 2425 | 490,Saxicola rubicola 2426 | 491,Hoopoe 2427 | 492,Rusty Blackbird 2428 | 493,Pacific Loon 2429 | 494,Mimus gilvus 2430 | 495,Passer italiae 2431 | 496,Common Loon 2432 | 497,Red-throated Loon 2433 | 498,Northern Wheatear 2434 | 499,Magnificent Frigatebird 2435 | 500,Great Frigatebird 2436 | 501,Eurasian Hobby 2437 | 502,Prairie Falcon 2438 | 503,Aplomado Falcon 2439 | 504,Peregrine Falcon 2440 | 505,Falco rufigularis 2441 | 506,American Kestrel 2442 | 507,Barred Owl 2443 | 508,Merlin 2444 | 509,Common Moorhen 2445 | 510,Cardellina pusilla 2446 | 511,Swainson's Thrush 2447 | 512,Falco novaeseelandiae 2448 | 513,Hermit Thrush 2449 | 514,Veery 2450 | 515,Caracara cheriway 2451 | 516,Herpetotheres cachinnans 2452 | 517,Lapland Longspur 2453 | 518,Milvago chimachima 2454 | 519,Ciconia ciconia 2455 | 520,Wood Stork 2456 | 521,Mycteria ibis 2457 | 522,Western Bluebird 2458 | 523,Ephippiorhynchus senegalensis 2459 | 524,Turkey Vulture 2460 | 525,Townsend's Solitaire 2461 | 526,Cathartes burrovianus 2462 | 527,Sarcoramphus papa 2463 | 528,Black Vulture 2464 | 529,Great Gray Owl 2465 | 530,Anastomus lamelligerus 2466 | 531,Black-bellied Plover 2467 | 532,California Condor 2468 | 533,Muscicapa striata 2469 | 534,Killdeer 2470 | 535,Wilson's Plover 2471 | 536,Piping Plover 2472 | 537,Phoenicurus phoenicurus 2473 | 538,Phoenicurus ochruros 2474 | 539,Little Ringed Plover 2475 | 540,Eumomota superciliosa 2476 | 541,Garganey 2477 | 542,Black-necked Stilt 2478 | 543,Black Oystercatcher 2479 | 544,Black-billed Magpie 2480 | 545,Eurasian Oystercatcher 2481 | 546,Haematopus unicolor 2482 | 547,Northern Lapwing 2483 | 548,Vanellus spinosus 2484 | 549,Vanellus armatus 2485 | 550,Bluethroat 2486 | 551,Inca Dove 2487 | 552,Recurvirostra avosetta 2488 | 553,Ring-necked Pheasant 2489 | 554,American Golden-Plover 2490 | 555,American Dipper 2491 | 556,Erithacus rubecula 2492 | 557,Golden-fronted Woodpecker 2493 | 558,Common Ringed Plover 2494 | 559,Western Reef-Heron 2495 | 560,Little Blue Heron 2496 | 561,Tricolored Heron 2497 | 562,Snowy Egret 2498 | 563,Little Egret 2499 | 564,Egretta sacra 2500 | 565,Monticola solitarius 2501 | 566,Ardea cocoi 2502 | 567,Ardea cinerea 2503 | 568,Great Blue Heron 2504 | 569,Black-crowned Night-Heron 2505 | 570,Rufous-backed Robin 2506 | 571,Ardeola ralloides 2507 | 572,Yellow-crowned Night-Heron 2508 | 573,Aramides cajaneus 2509 | 574,Cattle Egret 2510 | 575,Green Heron 2511 | 576,Porphyrio martinicus 2512 | 577,American Bittern 2513 | 578,Cochlearius cochlearius 2514 | 579,Anhinga novaehollandiae 2515 | 580,Anhinga rufa 2516 | 581,Melozone fusca 2517 | 582,Golden Eagle 2518 | 583,Wood Thrush 2519 | 584,Aphelocoma wollweberi 2520 | 585,Sharp-shinned Hawk 2521 | 586,Accipiter nisus 2522 | 587,Northern Goshawk 2523 | 588,Reddish Egret 2524 | 589,Common Goldeneye 2525 | 590,Brown Noddy 2526 | 591,Actitis macularius 2527 | 592,Ardea purpurea 2528 | 593,Todiramphus chloris 2529 | 594,Whooping Crane 2530 | 595,Black-winged Stilt 2531 | 596,Northern Pygmy-Owl 2532 | 597,Circus approximans 2533 | 598,Circus aeruginosus 2534 | 599,Phalacrocorax sulcirostris 2535 | 600,Zone-tailed Hawk 2536 | 601,Butorides striata 2537 | 602,Platalea ajaja 2538 | 603,Short-tailed Hawk 2539 | 604,Great Egret 2540 | 605,Swainson's Hawk 2541 | 606,Alectoris rufa 2542 | 607,Red-shouldered Hawk 2543 | 608,Red-tailed Hawk 2544 | 609,Charadrius nivosus 2545 | 610,Tringa incana 2546 | 611,Tringa semipalmata 2547 | 612,Terathopius ecaudatus 2548 | 613,Gallinago delicata 2549 | 614,Common Black-Hawk 2550 | 615,Chroicocephalus philadelphia 2551 | 616,Circaetus gallicus 2552 | 617,Chroicocephalus novaehollandiae 2553 | 618,Chroicocephalus ridibundus 2554 | 619,Leucophaeus atricilla 2555 | 620,Leucophaeus pipixcan 2556 | 621,Onychoprion fuscatus 2557 | 622,Sternula antillarum 2558 | 623,Hydroprogne caspia 2559 | 624,Thalasseus maximus 2560 | 625,Thalasseus bergii 2561 | 626,White-tailed Kite 2562 | 627,Alopochen aegyptiaca 2563 | 628,Streptopelia senegalensis 2564 | 629,Gerygone igata 2565 | 630,Bald Eagle 2566 | 631,Sedge Wren 2567 | 632,Haliaeetus vocifer 2568 | 633,Bubo scandiacus 2569 | 634,Mottled Owl 2570 | 635,Ruffed Grouse 2571 | 636,Busarellus nigricollis 2572 | 637,Snail Kite 2573 | 638,Milvus milvus 2574 | 639,Gyps fulvus 2575 | 640,Ficedula hypoleuca 2576 | 641,Momotus coeruliceps 2577 | 642,Semipalmated Plover 2578 | 643,Haliastur indus 2579 | 644,Gyps africanus 2580 | 645,Mississippi Kite 2581 | 646,Dives dives 2582 | 647,Baeolophus atricristatus 2583 | 648,Tufted Titmouse 2584 | 649,Baeolophus inornatus 2585 | 650,Song Sparrow 2586 | 651,Spinus spinus 2587 | 652,White Wagtail 2588 | 653,Brown Creeper 2589 | 654,Bucorvus leadbeateri 2590 | 655,Anthus pratensis 2591 | 656,American Pipit 2592 | 657,Tachycineta albilinea 2593 | 658,Carolina Chickadee 2594 | 659,Black-capped Chickadee 2595 | 660,Mountain Chickadee 2596 | 661,Chestnut-backed Chickadee 2597 | 662,Periparus ater 2598 | 663,Chlorophanes spiza 2599 | 664,Estrilda astrild 2600 | 665,Cyanistes caeruleus 2601 | 666,Yellow-bellied Sapsucker 2602 | 667,Cliff Swallow 2603 | 668,Troglodytes pacificus 2604 | 669,Troglodytes hiemalis 2605 | 670,Eurasian Tree Sparrow 2606 | 671,House Sparrow 2607 | 672,Western Scrub-Jay 2608 | 673,Buff-bellied Hummingbird 2609 | 674,Amazilia tzacatl 2610 | 675,Dicrurus adsimilis 2611 | 676,Violet-crowned Hummingbird 2612 | 677,Lonchura punctulata 2613 | 678,Tigrisoma mexicanum 2614 | 679,Porphyrio melanotus melanotus 2615 | 680,Melanitta americana 2616 | 681,Clay-colored Sparrow 2617 | 682,Cinnamon Hummingbird 2618 | 683,Zenaida Dove 2619 | 684,Prunella modularis 2620 | 685,Eurasian Kestrel 2621 | 686,Varied Thrush 2622 | 687,Ruby-throated Hummingbird 2623 | 688,Blue-throated Hummingbird 2624 | 689,Dusky-capped Flycatcher 2625 | 690,American Redstart 2626 | 691,Brown-crested Flycatcher 2627 | 692,Zosterops lateralis 2628 | 693,White-crowned Sparrow 2629 | 694,Red-winged Blackbird 2630 | 695,Parus major 2631 | 696,Zonotrichia capensis 2632 | 697,Oreothlypis peregrina 2633 | 698,Oreothlypis celata 2634 | 699,Oreothlypis ruficapilla 2635 | 700,Geothlypis philadelphia 2636 | 701,Geothlypis formosa 2637 | 702,Setophaga tigrina 2638 | 703,Setophaga americana 2639 | 704,Setophaga magnolia 2640 | 705,Setophaga castanea 2641 | 706,Setophaga fusca 2642 | 707,Setophaga petechia 2643 | 708,Setophaga striata 2644 | 709,Setophaga palmarum 2645 | 710,Setophaga pinus 2646 | 711,Setophaga coronata 2647 | 712,Setophaga dominica 2648 | 713,Campylopterus hemileucurus 2649 | 714,Vireo cassinii 2650 | 715,Setophaga nigrescens 2651 | 716,Setophaga townsendi 2652 | 717,Setophaga occidentalis 2653 | 718,Setophaga chrysoparia 2654 | 719,Setophaga virens 2655 | 720,Cardellina canadensis 2656 | 721,Cardellina rubra 2657 | 722,Florida Scrub-Jay 2658 | 723,Red-headed Woodpecker 2659 | 724,Emberiza calandra 2660 | 725,Acanthis flammea 2661 | 726,Spinus pinus 2662 | 727,Thraupis abbas 2663 | 728,Spinus psaltria 2664 | 729,Spinus lawrencei 2665 | 730,Spinus tristis 2666 | 731,Threskiornis aethiopicus 2667 | 732,Gygis alba 2668 | 733,Tree Swallow 2669 | 734,Larus dominicanus dominicanus 2670 | 735,Lonchura oryzivora 2671 | 736,American Oystercatcher 2672 | 737,Chloris chloris 2673 | 738,Cooper's Hawk 2674 | 739,Vireo solitarius 2675 | 740,Broad-tailed Hummingbird 2676 | 741,Chroicocephalus scopulinus 2677 | 742,Western Grebe 2678 | 743,Hemiphaga novaeseelandiae 2679 | 744,Sabine's Gull 2680 | 745,Ramphastos sulfuratus 2681 | 746,Dacelo novaeguineae 2682 | 747,Eurasian Coot 2683 | 748,Hirundo rustica erythrogaster 2684 | 749,Costa's Hummingbird 2685 | 750,Anna's Hummingbird 2686 | 751,Colaptes auratus cafer 2687 | 752,Blue-footed Booby 2688 | 753,Copsychus saularis 2689 | 754,Allen's Hummingbird 2690 | 755,Rufous Hummingbird 2691 | 756,Lucifer Hummingbird 2692 | 757,Pycnonotus barbatus 2693 | 758,Larus glaucescens × occidentalis 2694 | 759,Aphelocoma woodhouseii 2695 | 760,Florisuga mellivora 2696 | 761,Haematopus finschi 2697 | 762,Spruce Grouse 2698 | 763,Black-chinned Hummingbird 2699 | 764,Northern Harrier 2700 | 765,Ardea alba modesta 2701 | 766,Great Crested Flycatcher 2702 | 767,Ferruginous Hawk 2703 | 768,White-throated Swift 2704 | 769,Vaux's Swift 2705 | 770,Chimney Swift 2706 | 771,Setophaga pensylvanica 2707 | 772,Loggerhead Shrike 2708 | 773,Anhinga 2709 | 774,Acridotheres tristis 2710 | 775,Pygmy Nuthatch 2711 | 776,Actophilornis africanus 2712 | 777,Red-breasted Nuthatch 2713 | 778,Sitta europaea 2714 | 779,Brown-headed Nuthatch 2715 | 780,Common Swift 2716 | 781,European Starling 2717 | 782,Seiurus aurocapilla 2718 | 783,Yellow Wagtail 2719 | 784,White-eyed Vireo 2720 | 785,Long-billed Thrasher 2721 | 786,Sanderling 2722 | 787,California Thrasher 2723 | 788,Gallinula galeata 2724 | 789,Stilt Sandpiper 2725 | 790,Magnificent Hummingbird 2726 | 791,Black-vented Oriole 2727 | 792,Scott's Oriole 2728 | 793,Broad-winged Hawk 2729 | 794,Common Snipe 2730 | 795,Orchard Oriole 2731 | 796,Least Sandpiper 2732 | 797,Gray Catbird 2733 | 798,Porphyrio hochstetteri 2734 | 799,White-rumped Sandpiper 2735 | 800,Wilson's Phalarope 2736 | 801,Colaptes auratus auratus 2737 | 802,Blue Mockingbird 2738 | 803,Tiaris olivaceus 2739 | 804,Sage Thrasher 2740 | 805,Long-billed Dowitcher 2741 | 806,Solitary Sandpiper 2742 | 807,White-breasted Nuthatch 2743 | 808,Tringa totanus 2744 | 809,Black-bellied Whistling-Duck 2745 | 810,Dendrocygna viduata 2746 | 811,Fulvous Whistling-Duck 2747 | 812,Icterus abeillei 2748 | 813,Vanellus chilensis 2749 | 814,Trumpeter Swan 2750 | 815,Whooper Swan 2751 | 816,Tundra Swan 2752 | 817,Mute Swan 2753 | 818,Baltimore Oriole 2754 | 819,Mallard 2755 | 820,Northern Pintail 2756 | 821,Green-winged Teal 2757 | 822,Cinnamon Teal 2758 | 823,Mottled Duck 2759 | 824,Blue-winged Teal 2760 | 825,Gadwall 2761 | 826,Northern Shoveler 2762 | 827,Anas chlorotis 2763 | 828,Rhipidura leucophrys 2764 | 829,American Wigeon 2765 | 830,Bufflehead 2766 | 831,Red-breasted Merganser 2767 | 832,Common Merganser 2768 | 833,Anser anser 2769 | 834,Greater White-fronted Goose 2770 | 835,Common Eider 2771 | 836,Rallus obsoletus 2772 | 837,Platycercus elegans 2773 | 838,White-winged Scoter 2774 | 839,Milvus migrans 2775 | 840,Gelochelidon nilotica 2776 | 841,Ninox novaeseelandiae novaeseelandiae 2777 | 842,Surf Scoter 2778 | 843,Ring-necked Duck 2779 | 844,Common Pochard 2780 | 845,Tufted Duck 2781 | 846,Long-billed Curlew 2782 | 847,Snow Goose 2783 | 848,Wrentit 2784 | 849,Canada Goose 2785 | 850,Thalasseus elegans 2786 | 851,Branta sandvicensis 2787 | 852,Redhead 2788 | 853,Wood Duck 2789 | 854,Hooded Merganser 2790 | 855,Harlequin Duck 2791 | 856,Aratinga nenday 2792 | 857,Psittacara holochlorus 2793 | 858,Muscovy Duck 2794 | 859,Netta rufina 2795 | 860,Psittacara erythrogenys 2796 | 861,Say's Phoebe 2797 | 862,Canvasback 2798 | 863,White-headed Woodpecker 2799 | 864,Vermivora cyanoptera 2800 | 865,Northwestern Crow 2801 | 866,Long-eared Owl 2802 | 867,American Crow 2803 | 868,Oldsquaw 2804 | 869,Chenonetta jubata 2805 | 870,Thalasseus sandvicensis 2806 | 871,Eolophus roseicapilla 2807 | 872,Colaptes rubiginosus 2808 | 873,Meleagris gallopavo silvestris 2809 | 874,Ptiliogonys cinereus 2810 | 875,Swallow-tailed Kite 2811 | 876,Carduelis carduelis 2812 | 877,Cassiculus melanicterus 2813 | 878,Dendragapus fuliginosus 2814 | 879,Bushtit 2815 | 880,Aegithalos caudatus 2816 | 881,Zosterops lateralis lateralis 2817 | 882,Haliaeetus leucogaster 2818 | 883,Common Murre 2819 | 884,Tringa semipalmata inornatus 2820 | 885,Sky Lark 2821 | 886,Galerida cristata 2822 | 887,Delichon urbicum 2823 | 888,Helmitheros vermivorum 2824 | 889,White-eared Hummingbird 2825 | 890,Northern Mockingbird 2826 | 891,Gymnorhina tibicen 2827 | 892,Alcedo atthis 2828 | 893,Spotted Dove 2829 | 894,Cedar Waxwing 2830 | 895,Bohemian Waxwing 2831 | 896,Tadorna tadorna 2832 | 897,Petroica australis australis 2833 | 898,Amazona autumnalis 2834 | 899,Blue Grouse 2835 | 900,Canyon Wren 2836 | 901,Tadorna ferruginea 2837 | 902,Cactus Wren 2838 | 903,Campylorhynchus rufinucha 2839 | 904,Rhipidura fuliginosa 2840 | 905,Black-tailed Gnatcatcher 2841 | 906,Pelecanus occidentalis carolinensis 2842 | 907,Melozone aberti 2843 | 908,Melozone crissalis 2844 | 909,Carolina Wren 2845 | 910,Harris's Hawk 2846 | 911,Anas platyrhynchos domesticus 2847 | 912,House Wren 2848 | 913,Buteo lineatus elegans 2849 | 914,Thamnophilus doliatus 2850 | 915,Bewick's Wren 2851 | 916,Tadorna variegata 2852 | 917,Slate-throated Redstart 2853 | 918,Phalacrocorax varius varius 2854 | 919,Painted Redstart 2855 | 920,Larus argentatus smithsonianus 2856 | 921,Parkesia motacilla 2857 | 922,Sula granti 2858 | 923,Ara macao 2859 | 924,Peucaea ruficauda 2860 | 925,Calidris subruficollis 2861 | 926,Phoenicopterus roseus 2862 | 927,Northern Gannet 2863 | 928,Pelecanus occidentalis californicus 2864 | 929,Ferruginous Pygmy-Owl 2865 | 930,Ruddy Duck 2866 | 931,Ash-throated Flycatcher 2867 | 932,Green Kingfisher 2868 | 933,Western Meadowlark 2869 | 934,Ramphastos ambiguus 2870 | 935,Paroaria coronata 2871 | 936,Buteo buteo 2872 | 937,Sulphur-bellied Flycatcher 2873 | 938,Western Wood-Pewee 2874 | 939,Corvus corone 2875 | 940,Cyanoramphus novaezelandiae 2876 | 941,Eastern Wood-Pewee 2877 | 942,Greater Pewee 2878 | 943,Olive-sided Flycatcher 2879 | 944,Herring Gull 2880 | 945,Halcyon smyrnensis 2881 | 946,Onychognathus morio 2882 | 947,Blue Bunting 2883 | 948,Marsh Wren 2884 | 949,Barn Owl 2885 | 950,Trogon caligatus 2886 | 951,Eurasian Jackdaw 2887 | 952,Fish Crow 2888 | 953,Spheniscus demersus 2889 | 954,Corvus frugilegus 2890 | 955,Corvus splendens 2891 | 956,Brant 2892 | 957,Glaucous Gull 2893 | 958,Columba livia domestica 2894 | 959,Garrulus glandarius 2895 | 960,Anser anser domesticus 2896 | 961,Tufted Flycatcher 2897 | 962,Ardenna creatopus 2898 | 963,Ardenna gravis 2899 | -------------------------------------------------------------------------------- /pibird/birds-model.tflite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vic7z/ArduinoProjects/b92640563b71b6ff36d87f6bebc47ebaa119f132/pibird/birds-model.tflite -------------------------------------------------------------------------------- /pibird/images/bird-test.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vic7z/ArduinoProjects/b92640563b71b6ff36d87f6bebc47ebaa119f132/pibird/images/bird-test.jpg -------------------------------------------------------------------------------- /pibird/images/bird.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vic7z/ArduinoProjects/b92640563b71b6ff36d87f6bebc47ebaa119f132/pibird/images/bird.jpg -------------------------------------------------------------------------------- /pibird/images/hw-final.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vic7z/ArduinoProjects/b92640563b71b6ff36d87f6bebc47ebaa119f132/pibird/images/hw-final.jpg -------------------------------------------------------------------------------- /rgb/rgb.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #define lednum 28; 5 | #define ledpin 7; 6 | 7 | CRGB leds[NUM_LEDS]; 8 | 9 | int r,g,b; 10 | int mode,speed; 11 | 12 | char auth[] = "e0fc9ccc949d4848bfa4ff4e0967ac24"; 13 | 14 | 15 | char ssid[] = "spaceship"; 16 | char pass[] = "88888888"; 17 | 18 | 19 | BLYNK_WRITE(V1) 20 | { 21 | r = param[0].asInt(); 22 | g = param[1].asInt(); 23 | b = param[2].asInt(); 24 | } 25 | BLYNK_WRITE(V2){ 26 | mode = param.asInt(); 27 | } 28 | BLYNK_WRITE(V3){ 29 | speed=param.asInt(); 30 | } 31 | 32 | 33 | 34 | 35 | 36 | 37 | void setup() 38 | { 39 | 40 | Serial.begin(9600); 41 | Blynk.begin(auth, ssid, pass); 42 | FastLED.addLeds(leds, NUM_LEDS); 43 | } 44 | 45 | 46 | 47 | 48 | 49 | void loop() 50 | { 51 | Blynk.run(); 52 | if(mode=1){ 53 | mode1(r,g,b) 54 | } 55 | 56 | } 57 | 58 | void mode1(int r,int g,int b){ 59 | for (int i = 0; i <= lednum; i++) { 60 | leds[i] = CRGB(r,g,b); 61 | FastLED.show(); 62 | delay(40); 63 | } 64 | } -------------------------------------------------------------------------------- /rgb/ws2812_rgb/rgbanimation/rgbanimation.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define LED_PIN 5 4 | #define NUM_LEDS 30 5 | 6 | CRGB leds[NUM_LEDS]; 7 | 8 | void setup() { 9 | 10 | FastLED.addLeds(leds, NUM_LEDS); 11 | 12 | } 13 | 14 | void loop() { 15 | 16 | for (int i = 0; i <= 30; i++) { 17 | leds[i] = CRGB(0,0,125); 18 | FastLED.show(); 19 | delay(40); 20 | } 21 | for (int i = 30; i >= 0; i--) { 22 | leds[i] = CRGB(0,125,0); 23 | FastLED.show(); 24 | delay(40); 25 | } 26 | for (int i = 0; i <= 30; i++) { 27 | leds[i] = CRGB(125,0,0); 28 | FastLED.show(); 29 | delay(40); 30 | } 31 | for (int i = 30; i >= 0; i--) { 32 | leds[i] = CRGB(100,125,50); 33 | FastLED.show(); 34 | delay(40); 35 | } 36 | for (int i = 0; i <= 30; i++) { 37 | leds[i] = CRGB(255,20,147); 38 | FastLED.show(); 39 | delay(40); 40 | } 41 | for (int i = 30; i >= 0; i--) { 42 | leds[i] = CRGB(0,206,209); 43 | FastLED.show(); 44 | delay(40); 45 | } 46 | for (int i = 0; i <= 30; i++) { 47 | leds[i] = CRGB(25,25,112); 48 | FastLED.show(); 49 | delay(40); 50 | } 51 | for (int i = 30; i >= 0; i--) { 52 | leds[i] = CRGB(255,69,0); 53 | FastLED.show(); 54 | delay(40); 55 | } 56 | for (int i = 30; i >= 0; i--) { 57 | leds[i] = CRGB(255,255,2550); 58 | FastLED.show(); 59 | delay(40); 60 | } 61 | } 62 | 63 | -------------------------------------------------------------------------------- /rgb/ws2812_rgb/ws2812_rgb.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define LED_PIN 7 4 | #define NUM_LEDS 30 5 | 6 | CRGB leds[NUM_LEDS]; 7 | 8 | void setup() { 9 | 10 | FastLED.addLeds(leds, NUM_LEDS); 11 | 12 | } 13 | 14 | void loop() { 15 | 16 | leds[0] = CRGB(255, 0, 0); 17 | FastLED.show(); 18 | delay(500); 19 | leds[1] = CRGB(0, 255, 0); 20 | FastLED.show(); 21 | delay(500); 22 | leds[2] = CRGB(0, 0, 255); 23 | FastLED.show(); 24 | delay(500); 25 | leds[5] = CRGB(150, 0, 255); 26 | FastLED.show(); 27 | delay(500); 28 | leds[9] = CRGB(255, 200, 20); 29 | FastLED.show(); 30 | delay(500); 31 | leds[14] = CRGB(85, 60, 180); 32 | FastLED.show(); 33 | delay(500); 34 | leds[19] = CRGB(50, 255, 20); 35 | FastLED.show(); 36 | delay(500); 37 | } 38 | -------------------------------------------------------------------------------- /rx/rx.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | const uint64_t pipeIn = 0xE8E8F0F0E1LL; 6 | 7 | #define thro 9 8 | #define ya 5 9 | #define pit 6 10 | #define rl 3 11 | #define ser 4 12 | #define maxsignal 2000 13 | #define minsignal 1000 14 | #define motorcutoff 1100 15 | 16 | bool motorarm=false; 17 | bool radiocheck=true; 18 | 19 | RF24 radio(7,8); 20 | 21 | int throttle = 0; 22 | 23 | Servo ESC; 24 | Servo servo; 25 | 26 | struct MyData { 27 | byte throttle; 28 | byte yaw; 29 | byte pitch; 30 | byte roll; 31 | byte AUX1; 32 | byte AUX2; 33 | }; 34 | 35 | MyData data; 36 | 37 | void resetData() 38 | { 39 | 40 | data.throttle = 0; 41 | data.yaw = 127; 42 | data.pitch = 127; 43 | data.roll = 127; 44 | data.AUX1 = 0; 45 | data.AUX2 = 0; 46 | 47 | } 48 | 49 | 50 | void setup() 51 | { 52 | Serial.begin(9600); 53 | 54 | resetData(); 55 | radio.begin(); 56 | radio.setAutoAck(false); 57 | radio.setDataRate(RF24_250KBPS); 58 | radio.openReadingPipe(1,pipeIn); 59 | radio.startListening(); 60 | 61 | ESC.attach(thro,1000,2000); 62 | servo.attach(ser); 63 | ESC.writeMicroseconds(minsignal); 64 | 65 | } 66 | 67 | 68 | 69 | unsigned long lastRecvTime = 0; 70 | 71 | void recvData() 72 | { 73 | while ( radio.available() ){ 74 | radio.read(&data, sizeof(MyData)); 75 | lastRecvTime = millis(); 76 | } 77 | } 78 | 79 | 80 | void loop() 81 | { 82 | recvData(); 83 | unsigned long now = millis(); 84 | 85 | if ( now - lastRecvTime > 1000 ) { 86 | 87 | resetData(); 88 | radiocheck=false; 89 | }else 90 | { 91 | radiocheck=true; 92 | } 93 | 94 | 95 | Serial.print("Throttle: "); Serial.print(data.throttle); Serial.print(" "); 96 | Serial.print("Yaw: "); Serial.print(data.yaw); Serial.print(" "); 97 | Serial.print("Pitch: "); Serial.print(data.pitch); Serial.print(" "); 98 | Serial.print("Roll: "); Serial.print(data.roll); Serial.print(" "); 99 | Serial.print("Aux1: "); Serial.print(data.AUX1); Serial.print(" "); 100 | Serial.print("Aux2: "); Serial.print(data.AUX2); Serial.print("\n"); 101 | 102 | 103 | analogWrite(ya,data.yaw); 104 | analogWrite(pit,data.pitch); 105 | analogWrite(rl,data.roll); 106 | throttle = map(data.throttle,0,255,minsignal,maxsignal); 107 | int rll =map(data.roll,0,255,0,180); 108 | servo.write(rll); 109 | if(data.throttle==0 && data.pitch==0){ 110 | motorarm=true; 111 | } 112 | 113 | if(data.throttle==0 && data.pitch==0 && data.yaw==0 && data.roll==0){ 114 | motorarm=false; 115 | } 116 | 117 | if(motorarm && radiocheck){ 118 | if(throttle>motorcutoff){ 119 | ESC.writeMicroseconds(throttle); 120 | Serial.print("motor armed"); 121 | }else 122 | { 123 | ESC.writeMicroseconds(motorcutoff); 124 | Serial.print("ideal speed"); 125 | } 126 | }else 127 | { 128 | ESC.writeMicroseconds(minsignal); 129 | } 130 | } -------------------------------------------------------------------------------- /strightlight/strightlight.ino: -------------------------------------------------------------------------------- 1 | #define ir 2 2 | #define led 3 3 | void setup() { 4 | Serial.begin(9600); 5 | pinMode(ir,INPUT); 6 | pinMode(led,OUTPUT); 7 | } 8 | 9 | void loop() { 10 | 11 | Serial.println(digitalRead(ir)); 12 | 13 | if(!digitalRead(ir)){ 14 | 15 | digitalWrite(led,LOW); 16 | Serial.println("street light on"); 17 | delay(5000); 18 | }else{ 19 | 20 | digitalWrite(led,HIGH); 21 | Serial.println("street light off"); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /transmitter/transmitter.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "SSD1306Ascii.h" 6 | #include "SSD1306AsciiWire.h" 7 | 8 | #define I2C_ADDRESS 0x3C 9 | #define j1x A0 10 | #define j1y A1 11 | #define j1b 9 12 | #define j2x A2 13 | #define j2y A3 14 | #define j2b 3 15 | #define voltage A7 16 | const uint64_t pipeOut = 0xE8E8F0F0E1LL; 17 | 18 | SSD1306AsciiWire oled; 19 | 20 | RF24 radio(7,8); 21 | 22 | uint8_t col[2]; 23 | uint8_t rows; 24 | String state; 25 | 26 | struct MyData { 27 | byte throttle; 28 | byte yaw; 29 | byte pitch; 30 | byte roll; 31 | byte AUX1; 32 | byte AUX2; 33 | }; 34 | 35 | MyData data; 36 | 37 | void resetData() 38 | { 39 | 40 | data.throttle = 0; 41 | data.yaw = 127; 42 | data.pitch = 127; 43 | data.roll = 127; 44 | data.AUX1 = 0; 45 | data.AUX2 = 0; 46 | } 47 | 48 | void setup() 49 | { 50 | 51 | radio.begin(); 52 | Wire.begin(); 53 | Wire.setClock(400000L); 54 | radio.setAutoAck(false); 55 | radio.setDataRate(RF24_250KBPS); 56 | radio.openWritingPipe(pipeOut); 57 | oled.begin(&Adafruit128x64, I2C_ADDRESS); 58 | oled.setFont(System5x7); 59 | pinMode(j1x,INPUT); 60 | pinMode(voltage,INPUT); 61 | pinMode(j2x,INPUT); 62 | pinMode(j1b,INPUT_PULLUP); 63 | pinMode(j1y,INPUT); 64 | pinMode(j2y, INPUT); 65 | pinMode(j2b,INPUT_PULLUP); 66 | oled.clear(); 67 | oled.set1X(); 68 | oled.println("initializing..."); 69 | 70 | oled.println(""); 71 | 72 | oled.println("@victor_gpz"); 73 | delay(2000); 74 | 75 | resetData(); 76 | oled.clear(); 77 | 78 | 79 | oled.println("throt: 255 yaw : 255"); 80 | oled.println("pitch: 255 roll: 255"); 81 | oled.println("Aux 1: 255 Aux2: 255"); 82 | 83 | 84 | col[0] = oled.fieldWidth(strlen("ADC0: ")); 85 | col[1] = oled.fieldWidth(strlen("ADC0: 9999 ADC1: ")); 86 | rows = oled.fontRows(); 87 | delay(3000); 88 | 89 | } 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | void loop() 98 | { 99 | 100 | float value = analogRead(voltage); 101 | float vo = value /1023*5; 102 | 103 | 104 | data.throttle = map( analogRead(j1x), 0, 1023, 0, 255 ); 105 | data.yaw = map( analogRead(j1y), 0, 1023, 0, 255 ); 106 | data.pitch = map( analogRead(j2x), 0, 1023, 0, 255 ); 107 | data.roll = map( analogRead(j2y), 0, 1023, 0, 255 ); 108 | data.AUX1 = digitalRead(j1b); 109 | data.AUX2 = digitalRead(j2b); 110 | 111 | radio.write(&data, sizeof(MyData)); 112 | 113 | int per = map(data.throttle, 0, 255, 0, 100); 114 | 115 | 116 | oled.clearField(col[0%2], rows*(0/2), 4); 117 | oled.print(data.throttle); 118 | 119 | oled.clearField(col[1%2], rows*(1/2), 4); 120 | oled.print(data.yaw); 121 | 122 | oled.println(); 123 | 124 | oled.clearField(col[2%2], rows*(2/2), 4); 125 | oled.print(data.pitch); 126 | 127 | oled.clearField(col[3%2], rows*(3/2), 4); 128 | oled.print(data.roll); 129 | 130 | oled.println(); 131 | 132 | oled.clearField(col[4%2], rows*(4/2), 4); 133 | oled.print(data.AUX1); 134 | 135 | oled.clearField(col[5%2], rows*(5/2), 4); 136 | oled.print(data.AUX2); 137 | 138 | 139 | oled.println(); 140 | oled.println(); 141 | oled.print("voltage :"); 142 | oled.print(vo); 143 | oled.print("v"); 144 | oled.println(); 145 | oled.print("throttle :" ); 146 | oled.print(per); 147 | oled.println(" %"); 148 | if(data.throttle==0 && data.pitch==0){ 149 | state="armed "; 150 | 151 | } 152 | 153 | if(data.throttle==0 && data.pitch==0 && data.yaw==0 && data.roll==0){ 154 | state="disarmed"; 155 | } 156 | oled.print("motor :"); 157 | oled.println(state); 158 | 159 | 160 | } 161 | -------------------------------------------------------------------------------- /webserver/webserver8266/webserver8266.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | 7 | const char MAIN_page[] PROGMEM = R"=====( 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Form for ESP8266

15 | 16 | 17 |
18 |
19 |
20 | SSID     : 
21 | 
22 | Password : 23 |
24 | Resource : 25 |
26 | 27 |
28 | 29 |
30 | 31 | 32 | 33 | 34 | )====="; 35 | 36 | const char* ssid ="wifibutton"; 37 | const char* pass ="wifibuttontest"; 38 | 39 | ESP8266WebServer server(80); 40 | 41 | void handleroot(){ 42 | String root = MAIN_page; 43 | server.send(200,"text/html",root); 44 | 45 | } 46 | 47 | 48 | void setup(){ 49 | Serial.begin(9600); 50 | WiFi.mode(WIFI_AP); 51 | WiFi.softAP(ssid,pass); 52 | IPAddress IP=WiFi.softAPIP(); 53 | Serial.println(IP); 54 | server.on("/",handleroot); 55 | server.begin(); 56 | while(true){ 57 | server.handleClient(); 58 | } 59 | } 60 | 61 | void loop(){ 62 | 63 | } 64 | -------------------------------------------------------------------------------- /weight/weight.ino: -------------------------------------------------------------------------------- 1 | 2 | #include "HX711.h" 3 | #include "Ubidots.h" 4 | #include 5 | #include "SSD1306Ascii.h" 6 | #include "SSD1306AsciiWire.h" 7 | 8 | #define calibration_factor -7050.0 //This value is obtained using the SparkFun_HX711_Calibration sketch 9 | #define I2C_ADDRESS 0x3C //oled address 10 | 11 | #define LOADCELL_DOUT_PIN 13 //pin D7 12 | #define LOADCELL_SCK_PIN 15 //pin D8 13 | #define booklet 0.05 //weight of one booklet 14 | 15 | 16 | const char* UBIDOTS_TOKEN = "BBFF-wzk5MUWVns8uT1WTsXJoS27kJzfS0g"; // Put here your Ubidots TOKEN 17 | const char* WIFI_SSID = "Mi"; // Put here your Wi-Fi SSID 18 | const char* WIFI_PASS = ""; // Put here your Wi-Fi password 19 | 20 | 21 | Ubidots ubidots(UBIDOTS_TOKEN, UBI_HTTP); 22 | HX711 scale; 23 | SSD1306AsciiWire oled; 24 | 25 | void setup() { 26 | Serial.begin(9600); 27 | ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); 28 | Wire.begin(); 29 | Wire.setClock(400000L); 30 | oled.begin(&Adafruit128x64, I2C_ADDRESS); 31 | oled.setFont(System5x7); 32 | 33 | 34 | scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); 35 | scale.set_scale(calibration_factor); 36 | scale.tare(); 37 | 38 | Serial.println("Readings:"); 39 | oled.clear(); 40 | oled.set2X(); 41 | oled.println("reading"); 42 | 43 | oled.println(""); 44 | oled.clear(); 45 | } 46 | 47 | void loop() { 48 | Serial.print("Reading: "); 49 | float weight=scale.get_units(); 50 | Serial.print(weight, 1); 51 | Serial.print(" kg"); 52 | 53 | 54 | if(weight>0){ 55 | ubidots.add("weight",weight); 56 | int totalbooklet=weight/booklet; 57 | oled.print("weight:"); 58 | oled.print(weight); 59 | oled.println(" kg"); 60 | oled.print("booklet:"); 61 | oled.print(totalbooklet); 62 | oled.println(); 63 | 64 | 65 | } 66 | 67 | 68 | 69 | ; 70 | Serial.println(); 71 | bool bufferSent = false; 72 | bufferSent = ubidots.send(); 73 | 74 | if (bufferSent) { 75 | 76 | Serial.println("Values sent by the device"); 77 | } 78 | 79 | delay(100); 80 | oled.clear(); 81 | 82 | 83 | } 84 | -------------------------------------------------------------------------------- /wifibutton/wifibutton.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | 4 | const char* ssid = "spaceship"; 5 | const char* password = "88888888"; 6 | 7 | 8 | const char* resource = "/trigger/wifibutton/with/key/bUKA7qhASl1gyf_7OAYvTa8Tpj5ouZZbhK3Lq-o_Xsi"; 9 | 10 | 11 | const char* server = "maker.ifttt.com"; 12 | 13 | void setup() { 14 | Serial.begin(9600); 15 | 16 | initWifi(); 17 | makeIFTTTRequest(); 18 | 19 | 20 | ESP.deepSleep(0); 21 | } 22 | 23 | void loop() { 24 | 25 | } 26 | 27 | 28 | void initWifi() { 29 | Serial.print("Connecting to: "); 30 | Serial.print(ssid); 31 | WiFi.begin(ssid, password); 32 | 33 | int timeout = 10 * 4; // 10 seconds 34 | while(WiFi.status() != WL_CONNECTED && (timeout-- > 0)) { 35 | delay(250); 36 | Serial.print("."); 37 | } 38 | Serial.println(""); 39 | 40 | if(WiFi.status() != WL_CONNECTED) { 41 | Serial.println("Failed to connect, going back to sleep"); 42 | } 43 | 44 | Serial.print("WiFi connected in: "); 45 | Serial.print(millis()); 46 | Serial.print(", IP address: "); 47 | Serial.println(WiFi.localIP()); 48 | } 49 | 50 | 51 | void makeIFTTTRequest() { 52 | Serial.print("Connecting to "); 53 | Serial.print(server); 54 | 55 | WiFiClient client; 56 | int retries = 5; 57 | while(!!!client.connect(server, 80) && (retries-- > 0)) { 58 | Serial.print("."); 59 | } 60 | Serial.println(); 61 | if(!!!client.connected()) { 62 | Serial.println("Failed to connect, going back to sleep"); 63 | } 64 | 65 | Serial.print("Request resource: "); 66 | Serial.println(resource); 67 | client.print(String("GET ") + resource + 68 | " HTTP/1.1\r\n" + 69 | "Host: " + server + "\r\n" + 70 | "Connection: close\r\n\r\n"); 71 | 72 | int timeout = 5 * 10; // 5 seconds 73 | while(!!!client.available() && (timeout-- > 0)){ 74 | delay(100); 75 | } 76 | 77 | if(!!!client.available()) { 78 | Serial.println("No response, going back to sleep"); 79 | } 80 | while(client.available()){ 81 | Serial.write(client.read()); 82 | } 83 | 84 | Serial.println("\nclosing connection"); 85 | client.stop(); 86 | } 87 | -------------------------------------------------------------------------------- /wifibuttonWebServerTest/wifibuttonWebServerTest.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | //Web page from esp8266 7 | 8 | const char MAIN_page[] PROGMEM = R"=====( 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Form for ESP8266

16 | 17 | 18 |
19 |
20 |
 21 | SSID     : 
 22 | 
23 | Password : 24 |
25 | Resource : 26 |
27 | 28 |
29 | 30 |
31 | 32 | 33 | 34 | 35 | )====="; 36 | 37 | const char* ssidap = "wifibutton"; 38 | const char* passap = "wifibuttontest"; 39 | 40 | String qsid = ""; 41 | String qpass = ""; 42 | String resourse = ""; 43 | 44 | void eepromwrit(void); 45 | void webserver(void); 46 | 47 | const char* serverre = "maker.iftt.com"; 48 | 49 | ESP8266WebServer server(80); 50 | 51 | void setup(){ 52 | 53 | Serial.begin(9600); 54 | EEPROM.begin(512); 55 | 56 | 57 | //Reading the saved ssid 58 | 59 | String esid = ""; 60 | for (int i = 0; i < 32; ++i) 61 | { 62 | esid += char(EEPROM.read(i)); 63 | } 64 | 65 | Serial.println(); 66 | Serial.print("SSID: "); 67 | Serial.println(esid); 68 | 69 | //Reading the saved password 70 | 71 | Serial.println("Reading EEPROM pass"); 72 | String epass = ""; 73 | for (int i = 32; i < 96; ++i) 74 | { 75 | epass += char(EEPROM.read(i)); 76 | } 77 | Serial.print("PASS: "); 78 | Serial.println(epass); 79 | Serial.println("Reading EEPROM resourse"); 80 | 81 | for (int i = 96; i <160 ; i++) 82 | { 83 | resourse += char(EEPROM.read(i)); 84 | } 85 | 86 | 87 | WiFi.begin(esid.c_str(), epass.c_str());. // Connecting to the wifi 88 | 89 | if(testWifi()){ 90 | Serial.println("sucessfully connected"); 91 | return; 92 | } 93 | else{ 94 | Serial.print("turning on hotspot"); 95 | webserver(); 96 | } 97 | 98 | int timeout = 60 * 4; // 10 seconds 99 | 100 | // Running the web page until establishing a connection 101 | 102 | while(WiFi.status() != WL_CONNECTED && (timeout-- > 0)) { 103 | delay(250); 104 | Serial.println("."); 105 | server.handleClient(); 106 | 107 | } 108 | 109 | //Wifi details 110 | 111 | if(WiFi.status() != WL_CONNECTED) { 112 | Serial.println("not connected"); 113 | } 114 | else{ 115 | Serial.println("connected"); 116 | Serial.print(millis()); 117 | Serial.print(", IP address: "); 118 | Serial.println(WiFi.localIP()); 119 | } 120 | 121 | 122 | } 123 | // Nothing on void loop() 124 | 125 | void loop(){ 126 | 127 | } 128 | 129 | // Writing data to the esps eeprom 130 | 131 | void eepromwrit(){ 132 | 133 | Serial.println("writing eeprom SSID:"); 134 | 135 | for (int i = 0; i < qsid.length(); ++i) 136 | { 137 | EEPROM.write(i, qsid[i]); 138 | Serial.print("Wrote: "); 139 | Serial.println(qsid[i]); 140 | } 141 | Serial.println("writing eeprom pass:"); 142 | 143 | for (int i = 0; i < qpass.length(); ++i) 144 | { 145 | EEPROM.write(32 + i, qpass[i]); 146 | Serial.print("Wrote: "); 147 | Serial.println(qpass[i]); 148 | } 149 | 150 | Serial.println("writing eeprom resourse:"); 151 | 152 | for (int i = 0; i < resourse.length(); ++i) 153 | { 154 | EEPROM.write(96 + i, resourse[i]); 155 | Serial.print("Wrote: "); 156 | Serial.println(resourse[i]); 157 | } 158 | 159 | 160 | EEPROM.commit(); 161 | delay(150); 162 | ESP.reset(); //resetting the esp after writing the credentials and triggers the iftt 163 | } 164 | 165 | 166 | 167 | //Turning on the web server 168 | 169 | void webserver(){ 170 | 171 | WiFi.disconnect(); 172 | WiFi.mode(WIFI_AP); 173 | WiFi.softAP(ssidap,passap); 174 | IPAddress IP = WiFi.softAPIP(); 175 | Serial.println("disconnect from the WiFi "); 176 | delay(10); 177 | Serial.print("Local IP: "); 178 | Serial.println(IP); 179 | 180 | server.on("/",root); 181 | server.on("/action",handlepage); 182 | server.begin(); 183 | Serial.println("server started"); 184 | 185 | } 186 | 187 | 188 | //Checking the wifi connection 189 | 190 | bool testWifi(void) 191 | { 192 | int c = 0; 193 | Serial.println("Waiting for Wifi to connect"); 194 | while ( c < 20 ) { 195 | if (WiFi.status() == WL_CONNECTED) 196 | { 197 | return true; 198 | } 199 | delay(500); 200 | Serial.print("*"); 201 | c++; 202 | } 203 | Serial.println(""); 204 | Serial.println("Connect timed out, opening AP"); 205 | return false; 206 | } 207 | 208 | //Web page handler 209 | 210 | void handlepage(){ 211 | 212 | qsid = server.arg("ssid"); 213 | qpass = server.arg("passwd"); 214 | resourse = server.arg("res"); 215 | Serial.println("data from the web"); 216 | 217 | Serial.println(qsid); 218 | Serial.println(qpass); 219 | Serial.println(resourse); 220 | 221 | eepromwrit(); 222 | } 223 | 224 | 225 | void root(){ 226 | String page = MAIN_page; 227 | server.send(200,"text/html",page); 228 | } 229 | --------------------------------------------------------------------------------