├── APP PICS ├── 1.jpg ├── 2.jpg ├── 3.jpg ├── 4.jpg ├── 5.jpg ├── GAMEPAD_CODE.png ├── SWITCH_CODE.png ├── esp.png ├── esp1.png ├── ipcam.jpg └── plus_ultra.jpg ├── ESP8266_sample_program ├── ESP01_AT_TEST.ino └── ESP8266_sample_program.ino ├── LICENSE ├── README.md └── Schematic fritzing diagram ├── esp1.jpg ├── esp2.jpg └── esp3.jpg /APP PICS/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/1.jpg -------------------------------------------------------------------------------- /APP PICS/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/2.jpg -------------------------------------------------------------------------------- /APP PICS/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/3.jpg -------------------------------------------------------------------------------- /APP PICS/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/4.jpg -------------------------------------------------------------------------------- /APP PICS/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/5.jpg -------------------------------------------------------------------------------- /APP PICS/GAMEPAD_CODE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/GAMEPAD_CODE.png -------------------------------------------------------------------------------- /APP PICS/SWITCH_CODE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/SWITCH_CODE.png -------------------------------------------------------------------------------- /APP PICS/esp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/esp.png -------------------------------------------------------------------------------- /APP PICS/esp1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/esp1.png -------------------------------------------------------------------------------- /APP PICS/ipcam.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/ipcam.jpg -------------------------------------------------------------------------------- /APP PICS/plus_ultra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/APP PICS/plus_ultra.jpg -------------------------------------------------------------------------------- /ESP8266_sample_program/ESP01_AT_TEST.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | SoftwareSerial mySerial(10, 11); //RX,TX 4 | 5 | // Arduino pin 10 (RX) to ESP8266 TX 6 | // Arduino pin 11 to voltage divider then to ESP8266 RX 7 | // Connect GND from the Arduiono to GND on the ESP8266 8 | // Pull ESP8266 CH_PD/EN HIGH 9 | // 10 | // When a command is entered in to the serial monitor on the computer 11 | // the Arduino will relay it to the ESP8266 12 | /* 13 | “AT” This will check if the module is connected properly and its functioning, the module will reply with an acknowledgment. 14 | “AT+RST” This will reset the wifi module. Its good practice to reset it before or after it has been programmed. 15 | “AT+GMR” This will mention the firmware version installed on the ESP8266. (Optional) 16 | “AT+CWLAP” This will detect the Access points and their signal strengths available in the area. 17 | AT+CWJAP=”SSID”,”PASSWORD” This connects the ESP8266 to the specified SSID in the AT command mentioned in the previous code. 18 | “AT+CIFSR” This will display the ESP8266’s obtained IP address. If the user wants to disconnect from any access point then use the following AT command AT+CWJAP=””,”” 19 | “AT+CWMODE=1” This sets the Wifi mode. It should be always set to Mode 1 if the module is going to be used as a node (Like our mobile’s connection to the access points) 20 | After this step is done, repeat step 2 to reset the Wifi Module. “AT+RST” 21 | Now you can connect your ESP8266 to the internet and get started with IoT. 22 | 23 | */ 24 | int LEDPIN = 13; 25 | 26 | void setup() 27 | { 28 | pinMode(LEDPIN, OUTPUT); 29 | 30 | Serial.begin(9600); // communication with the host computer 31 | //while (!Serial) { ; } 32 | 33 | // Start the software serial for communication with the ESP8266 34 | mySerial.begin(115200); 35 | 36 | Serial.println(""); 37 | Serial.println("Remember to to set Both NL & CR in the serial monitor."); 38 | Serial.println("Ready"); 39 | Serial.println(""); 40 | } 41 | 42 | void loop() 43 | { 44 | // listen for communication from the ESP8266 and then write it to the serial monitor 45 | if ( mySerial.available() ) { Serial.write( mySerial.read() ); } 46 | 47 | // listen for user input and send it to the ESP8266 48 | if ( Serial.available() ) { mySerial.write( Serial.read() ); } 49 | } 50 | -------------------------------------------------------------------------------- /ESP8266_sample_program/ESP8266_sample_program.ino: -------------------------------------------------------------------------------- 1 | #include 2 | WiFiClient client; 3 | WiFiServer server(80); 4 | const char* ssid = "espcontroller"; //router ssid 5 | const char* password = "engrpandaece"; //router pw 6 | String command = ""; // Command received from Android device 7 | 8 | // Set led Pins 9 | int led1 = 16; 10 | int led2 = 5; 11 | int led3 = 4; 12 | 13 | void setup() 14 | { 15 | Serial.begin(115200); 16 | 17 | pinMode(led1, OUTPUT); 18 | pinMode(led2, OUTPUT); 19 | pinMode(led3, OUTPUT); 20 | 21 | digitalWrite(led1, HIGH); 22 | digitalWrite(led2, HIGH); 23 | digitalWrite(led3, HIGH); 24 | 25 | connectWiFi(); 26 | server.begin(); 27 | } 28 | 29 | void loop() 30 | { 31 | client = server.available(); 32 | if (!client) return; 33 | command = checkClient (); 34 | Serial.println(command); 35 | 36 | if (command == "B" || command == "Red on") 37 | { 38 | digitalWrite(led1, LOW); 39 | } 40 | else if (command == "b" || command == "Red on") 41 | { 42 | digitalWrite(led1, HIGH); 43 | } 44 | else if (command == "C" || command == "Green on") 45 | { 46 | digitalWrite(led2, HIGH); 47 | } 48 | else if (command == "c" || command == "Green off") 49 | { 50 | digitalWrite(led2, LOW); 51 | } 52 | else if (command == "D" || command == "Blue on") 53 | { 54 | digitalWrite(led3, LOW); 55 | } 56 | else if (command == "d" || command == "blue") 57 | { 58 | digitalWrite(led3, HIGH); 59 | } 60 | else if (command == "all on") 61 | { 62 | digitalWrite(led1, HIGH); 63 | digitalWrite(led2, HIGH); 64 | digitalWrite(led3, HIGH); 65 | } 66 | else if (command == "alloff") 67 | { 68 | digitalWrite(led1, LOW); 69 | digitalWrite(led2, LOW); 70 | digitalWrite(led3, LOW); 71 | } 72 | sendBackEcho(command); // send command echo back to android device 73 | command = ""; 74 | } 75 | /* connecting WiFi */ 76 | void connectWiFi() 77 | { 78 | Serial.println("Connecting to WIFI"); 79 | WiFi.begin(ssid, password); 80 | while ((!(WiFi.status() == WL_CONNECTED))) 81 | { 82 | delay(300); 83 | Serial.print(".."); 84 | } 85 | Serial.println(""); 86 | Serial.println("WiFi connected"); 87 | Serial.println("NodeMCU Local IP is : "); 88 | Serial.print((WiFi.localIP())); 89 | } 90 | 91 | /* check command received from Android Device */ 92 | String checkClient (void) 93 | { 94 | while (!client.available()) delay(1); 95 | String request = client.readStringUntil('\r'); 96 | request.remove(0, 5); 97 | request.remove(request.length() - 9, 9); 98 | return request; 99 | } 100 | 101 | /* send command echo back to android device */ 102 | void sendBackEcho(String echo) 103 | { 104 | client.println("HTTP/1.1 200 OK"); 105 | client.println("Content-Type: text/html"); 106 | client.println(""); 107 | client.println(""); 108 | client.println(""); 109 | client.println(echo); 110 | client.println(""); 111 | client.stop(); 112 | delay(1); 113 | } 114 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 inhinyerongpanda 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESP8266 CONTROLLER PLUS ULTRA 2 | For ESP8266 NODEMCU 12 E 3 | 4 | # 3 MODES 5 | - SWITCH ON/OFF MODE 6 | - GAMEPAD MODE 7 | - Arrow button 8 | - Analog joystick button 9 | - IP CAM Video VIEWER 10 | - VOICE RECOGNITION MODE 11 | 12 | 13 | 14 | - ok why plus ultra? first im a fan of all might(Plus ultra means go beyond your limit). :) 15 | 16 | # code: 17 | https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/tree/master/ESP8266_sample_program 18 | 19 | # fritzing: 20 | https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/tree/master/Schematic%20fritzing%20diagram 21 | 22 | # app: 23 | https://play.google.com/store/apps/details?id=com.Espwifi.panda&hl=en_US 24 | 25 | https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/releases 26 | 27 | 28 | This app makes you control your ESP's projects like RC car or any IOT applications using your mobile phone thru WIFI. 29 | 30 | All the files (apk, circuit, program, codes) are all provided) :) 31 | 32 | # NEW to ESP? check this link to get started: 33 | 34 | https://www.instructables.com/id/Programming-ESP8266-ESP-12E-NodeMCU-Using-Arduino-/ 35 | 36 | https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html 37 | 38 | # 39 | # Compatible with android 4.4.4 (API 19) to android 9(API 28). 40 | 41 | This app is under beta test. Any bugs or error can be reported or send to my email. (engrpandaece@gmail.com) 42 | 43 | 44 | Check the provided Schematic Fritzing for connections. 45 | 46 | ![screen1](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/plus_ultra.jpg) 47 | ![screen1](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/1.jpg) 48 | # 49 | You can choose from Switch ON/OFF mode, Gamepad mode, Voice Recognition mode. (will update more mode soon). 50 | 51 | ![menu](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/2.jpg) 52 | 53 | 54 | # 55 | # 1.) SWITCH ON/OFF MODE 56 | PARTS REQUIRED: 57 | - ESP8266 or similar 58 | - Anything Digital OUTPUT i.e LED's, Relay etc. 59 | - Some resistors 60 | - Connecting wires 61 | - Breadboard 62 | 63 | Labels(D0, D1, D2 etc) can be Rename. i.e Light1, LED1, Relay1, . 64 | 65 | 66 | ![2](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/3.jpg) 67 | 68 | # 69 | # Sample Connection of Simple LED-ESP control connection. 70 | 71 | You can add LED up to 13LEDs. 72 | 73 | 74 | ![hc06 led_bb](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/Schematic%20fritzing%20diagram/esp1.jpg) 75 | 76 | # Type your Router SSID and Password 77 | a. Upload and open the serial monitor and copy the ESP IP address to the app. 78 | 79 | ![hc06 led_bb](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/esp.png) 80 | 81 | b. alternatively you can use "FING" to search your IP address. 82 | https://www.fing.com/products/fing-app 83 | 84 | 85 | # 86 | ![hc06 led_bb](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/esp1.png) 87 | 88 | 89 | 90 | # Sample Connection of Relay-ESP control connection. 91 | 92 | Up to 13 channels can be used. Using relay you can control your lights i.e bulbs or any appliances for IOT applications. 93 | 94 | ![hc06 relay_bb](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/Schematic%20fritzing%20diagram/esp2.jpg) 95 | 96 | 97 | 98 | # 99 | # Serial Code to ESP 100 | 101 | Switch ON/OFF Serial code to ESP 102 | 103 | ![SWITCH_CODE](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/SWITCH_CODE.png) 104 | 105 | # 106 | # 2.) GAMEPAD MODE 107 | PARTS REQUIRED: 108 | - ROBOT CAR CHASIS WITH DC MOTORS 109 | - ESP or similar 110 | - L298N MOTOR DRIVER 111 | - Connecting wires 112 | 113 | ![1](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/4.jpg) 114 | ![1](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/ipcam.jpg?raw=true) 115 | 116 | # IP CAM VIEWER 117 | 118 | Using 3rd party IP CAM (copy the IP address) - Must be the same network 119 | 120 | link:https://play.google.com/store/apps/details?id=com.pas.webcam&hl=en_US 121 | 122 | # 123 | # Sample Connection of RC Car-ESP control connection. 124 | 125 | Using this controller you can control your RC car forward, Turnleft, turnright, backward etc. 126 | 127 | 128 | ![hc06 car_bb](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/Schematic%20fritzing%20diagram/esp3.jpg) 129 | 130 | 131 | # 132 | # Serial Code to ESP 133 | 134 | Gamepad Serial code to ESP 135 | 136 | NOTE: UP, LEFT, RIGHT, DOWN, SQUARE, TRIANGLE, CIRCLE, EXS Buttons can be hold. not holding serial value is "S" ,"s". 137 | 138 | ![GAMEPAD_CODE](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/GAMEPAD_CODE.png) 139 | 140 | 141 | # 142 | # 3.) VOICE RECOGNITION MODE 143 | 144 | This mode use google tts & speech recognition. Make sure the device has it. This mode lets the user control IOT applications using voice command thru ESP. 145 | 146 | ![voice](https://github.com/engrpanda/ESP8266-Controller-plus-ULTRA/blob/master/APP%20PICS/5.jpg) 147 | 148 | 149 | 150 | 151 | ## Contact 152 | Have an project? DM me at 👇 153 | 154 | Drop a mail to: engrpandaece@gmail.com 155 | 156 | # Donation 157 | If this project help you reduce time to develop, you can give me a cup of coffee :) 158 | 159 | [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/paypalme/engrpandaece) 160 | 161 | -------------------------------------------------------------------------------- /Schematic fritzing diagram/esp1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/Schematic fritzing diagram/esp1.jpg -------------------------------------------------------------------------------- /Schematic fritzing diagram/esp2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/Schematic fritzing diagram/esp2.jpg -------------------------------------------------------------------------------- /Schematic fritzing diagram/esp3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/engrpanda/ESP8266-Controller-plus-ULTRA/298dcfab33855b2edfd021b083404aa4d8fb53a5/Schematic fritzing diagram/esp3.jpg --------------------------------------------------------------------------------