Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. I need help with an ESP8266 and Servo.H

I need help with an ESP8266 and Servo.H

Scheduled Pinned Locked Moved Development
1 Posts 1 Posters 1.3k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    ecsunix
    wrote on last edited by
    #1

    Hello All,

    Can anyone offer guidance or show me how to add additional servos to this project? I can't seem to make any forward progress.

    The sketch is working perfectly to control a single servo connected to pin D4 via a webpage.

    I'm using a NodeMCU ESP-12 (ESP8266) and some legos.

    I adopted a 12 week old puppy that requires medication midday.

    My commute is 38 miles each way so giving him his meds remotely is ideal.

    Unfortunately he also suffers from separation anxiety and I would like to be able to give him a treat and a toy during the day to help him with this. (That's the reason for servo's 3 and 4)

    Any help would be greatly appreciated!

    Johnny

    Insert Code Here
    ```I started with this code: https://github.com/hobbzey/Simplest-SmartThings-ESP8266-Blinds/blob/master/ESP8266-Sketch.ino<img 
    
    
    
    My working sketch:
    
    
    /*
     *  Simple HTTP get webclient test
     */
     
    #include <ESP8266WiFi.h>
    #include <ESP8266WebServer.h>
    #include <Servo.h>
    
    #define ssid      "ChangeME"
    #define password  "Password"
     
    ESP8266WebServer server(83);
    
    Servo myservo;
    int pos = 0;
    int state = 0;
    int prevstate = 0;
    int dirc = 0;
    int servoPin = D4;
    
    
    String webPage = "";
    
    void setup() {
      Serial.begin(115200);
      delay(100);
     
      // We start by connecting to a WiFi network
     
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);
     
      WiFi.begin(ssid, password);
     
       // Set a static IP (optional)
      IPAddress ip(192, 168, 1, 71);
      IPAddress gateway(192, 168, 1, 1);
      IPAddress subnet(255, 255, 255, 0);
      WiFi.config(ip, gateway, subnet);
      // End of set a static IP (optional)
      
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
     
      Serial.println("");
      Serial.println("WiFi connected"); 
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    
      webPage += "<h1>Dog Rx Machine</h1><p>AM Medicine  <a href=\"deliver\"><button>Deliver</button></a>&nbsp;<a href=\"reset\"><button>Reset</button></a></p>";
      webPage += "<h2> </h1><p>PM Medicine  <a href=\"deliver\"><button>Deliver</button></a>&nbsp;<a href=\"reset\"><button>Reset</button></a></p>";
      webPage += "<h3> </h1><p>Treat  <a href=\"deliver\"><button>Deliver</button></a>&nbsp;<a href=\"reset\"><button>Reset</button></a></p>";
      webPage += "<h4> </h1><p>Kong Toy  <a href=\"deliver\"><button>Deliver</button></a>&nbsp;<a href=\"reset\"><button>Reset</button></a></p>";
       server.on("/", []() {
        server.send(200, "text/html", webPage);
       });
     
       server.on("/deliver", []() {
        server.send(200, "text/html", webPage);
        Serial.println("HTTP OPEN COMMAND RECEIVED");
        dirc = 0;  // direction for servo to run
        state = 2; // sets current state
      });
     
      server.on("/reset", []() {
        server.send(200, "text/html", webPage);
        Serial.println("HTTP CLOSE COMMAND RECEIVED");
        dirc = 180; // direction for servo to run
        state = 1;  // sets current state
      });
    
      server.begin();
      Serial.println("Server started");
    }
    
    void servo_move() {
      Serial.println("State Change. Rotating Servo");
      if ( dirc == 180) {
        myservo.attach(servoPin);              // energize servo
        delay(50);
        for (pos = 0; pos <= 180; pos += 1) {   // goes from 0 degrees to 90 degrees in steps of 1 degree CHANGE 90 TO MATCH ANGLE OF TILT DESIRED
          myservo.write(pos);                  // tell servo to go to position in variable 'pos'
          delay(10);                           // waits 30ms between each degree to slow rotation speed
        }
        delay(50);
        myservo.detach();                      // movement finished so detach servo to conserve power
      }
      else if (dirc == 0) {
        myservo.attach(servoPin);              // energize servo
        delay(50);
        for (pos = 90; pos >= 0; pos -= 1) {   // goes from 90 degrees to 0 degrees in steps of 1 degree CHANGE 90 TO MIRROR ANGLE OF TILT DESIRED ABOVE
          myservo.write(pos);                  // tell servo to go to position in variable 'pos'
          delay(10);                           // waits 30ms between each degree to slow rotation speed
        }
        delay(50);
        myservo.detach();                      // movement finished so detach servo to conserve power
      }
    
      Serial.println("Returning to main loop");
      return;
    }
     
     
    void loop() {
        if (state != prevstate) {
        Serial.println("State change!");
        servo_move();
      }
      prevstate = state;
      server.handleClient();
    }
    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    14

    Online

    11.7k

    Users

    11.2k

    Topics

    113.1k

    Posts


    Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • MySensors
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular