Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include <SabertoothSimplified.h>
- #include <SoftwareSerial.h>
- const char* ssid = "YOURSSIDHERE";//Enter your Wifi SSID/name here.
- const char* password = "YOURPASSWORDHERE";//Enter your password for your wifi here.
- int ledPin = 13; // GPIO13
- WiFiServer server(80);
- SabertoothSimplified ST;//Declaring the Sabertooth controller for the Arduino. Connect S1 of the Sabertooth to Tx of the Arduino OR
- //in this case, connect to the NodeMCU.
- char breceived = 'S';
- char prevreceived;
- void setup() {
- SabertoothTXPinSerial.begin(9600);//Communication to the Sabertooth controller at 9600.S
- Serial.begin(115200);
- delay(10);
- pinMode(ledPin, OUTPUT);
- digitalWrite(ledPin, LOW);
- // Connect to WiFi network
- Serial.println();
- Serial.println();
- Serial.print("Connecting to ");
- Serial.println(ssid);
- WiFi.begin(ssid, password);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.println("WiFi connected");
- // Start the server
- server.begin();
- Serial.println("Server started");
- // Print the IP address
- Serial.print("Use this URL to connect: ");
- Serial.print("http://");
- Serial.print(WiFi.localIP());
- Serial.println("/");
- }
- void loop() {
- // Check if a client has connected
- WiFiClient client = server.available();
- if (!client) {
- return;
- }
- // Wait until the client sends some data
- Serial.println("new client");
- while(!client.available()){
- delay(1);
- }
- // Read the first line of the request
- String request = client.readStringUntil('\r');
- Serial.println(request);
- client.flush();
- // Match the request
- int value = LOW;
- if (request.indexOf("/LED=ON") != -1) {
- digitalWrite(ledPin, HIGH);
- value = HIGH;
- }
- if (request.indexOf("/LED=OFF") != -1) {
- digitalWrite(ledPin, LOW);
- value = LOW;
- }
- int motorState = 0;
- if (request.indexOf("/MOTOR=FORWARD") != -1) {
- ST.motor(1,-50);
- ST.motor(2,-50);
- motorState = 1;
- }
- if (request.indexOf("/MOTOR=BACKWARD") != -1) {
- ST.motor(1,50);
- ST.motor(2,50);
- motorState = 2;
- }
- if (request.indexOf("/MOTOR=LEFT") != -1) {
- ST.motor(1,0);
- ST.motor(2,50);
- motorState = 3;
- }
- if (request.indexOf("/MOTOR=RIGHT") != -1) {
- ST.motor(1,50);
- ST.motor(2,0);
- motorState = 4;
- }
- if (request.indexOf("/MOTOR=STOP") != -1) {
- ST.motor(1,0);
- ST.motor(2,0);
- motorState = 0;
- }
- // Set ledPin according to the request
- //digitalWrite(ledPin, value);
- // Return the response
- client.println("HTTP/1.1 200 OK");
- client.println("Content-Type: text/html");
- client.println(""); // do not forget this one
- client.println("<!DOCTYPE HTML>");
- client.println("<html>");
- client.print("Led pin is now: ");
- if(value == HIGH) {
- client.print("On");
- } else {
- client.print("Off");
- }
- client.print(" Robot is now: ");
- if(motorState == 0){
- client.print("Stop");
- }
- if(motorState == 1){
- client.print("Moving Forward");
- }
- if(motorState == 2){
- client.print("Moving Backward");
- }
- if(motorState == 3){
- client.print("Rotating Left");
- }
- if(motorState == 4){
- client.print("Rotating Right");
- }
- client.println("<br><br>");
- client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
- client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");
- client.println("<br><br>");
- client.println("<br><br>");
- client.println("<a href=\"/MOTOR=FORWARD\"\"><button>Forward </button></a>");
- client.println("<a href=\"/MOTOR=BACKWARD\"\"><button>Backward </button></a><br />");
- client.println("<a href=\"/MOTOR=LEFT\"\"><button>Rotate Left </button></a>");
- client.println("<a href=\"/MOTOR=RIGHT\"\"><button>Rotate Right </button></a><br />");
- client.println("<a href=\"/MOTOR=STOP\"\"><button>Stop Moving </button></a><br />");
- client.println("</html>");
- delay(1);
- Serial.println("Client disonnected");
- Serial.println("");
- }
Add Comment
Please, Sign In to add comment