Pith - nodemcu_voice_kitchen_faucet
nodemcu_voice_kitchen_faucet/nodemcu_voice_kitchen_faucet.ino [2.3 kb]
Modified: 23:57:21 57 026 (15 May 026)
15 Days Ago
// Voice Kitchen Faucet V.0.1 (NodeMCU)
// vgmlr
#include "ESP8266WiFi.h"
#include "Servo.h"
const char* ssid = "ssid";
const char* pass = "password";
WiFiServer server(80);
Servo left;
Servo right;
// Servo Pins
const int ser_l = D6;
const int ser_r = D5;
// Version 2.0 would map() distance
// between off and peak temp ..
// Off
int l_off = 60;
int r_off = 110;
// Hot
int hfl = 70;
int hfr = 50;
int hol = 60;
int hor = 10;
// Mix
int mfl = 90;
int mfr = 75;
int mol = 130;
int mor = 35;
// Cold
int cfl = 110;
int cfr = 90;
int col = 160;
int cor = 90;
// Position
int pl = 70;
int pr = 90;
// LED
int led = D0;
void setup() {
  Serial.begin(115200);
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
  left.attach(ser_l);
  right.attach(ser_r);
  left.write(l_off);
  right.write(r_off);
  // Connect
  Serial.println(ssid);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Connected");
  server.begin();
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}
void loop() {
  // Check
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  // Wait
  while (!client.available()) {
    delay(1);
  }
  // Read
  String query = client.readStringUntil('\r');
  client.flush();
  if (query.indexOf("/hot=50") != -1)  {
    hot(50);
  }
  if (query.indexOf("/hot=100") != -1)  {
    hot(100);
  }
  if (query.indexOf("/cold=50") != -1)  {
    cold(50);
  }
  if (query.indexOf("/cold=100") != -1)  {
    cold(100);
  }
  if (query.indexOf("/mix=50") != -1)  {
    mix(50);
  }
  if (query.indexOf("/mix=100") != -1)  {
    mix(100);
  }
  if (query.indexOf("/off") != -1)  {
    off();
  }
  delay(1);
}
void off() {
  left.write(l_off);
  right.write(r_off);
  delay(5);
}
void hot(int q) {
  if (q == 50) {
    pl = hfl;
    pr = hfr;
  } else if (q == 100) {
    pl = hol;
    pr = hor;
  }
  left.write(pl);
  right.write(pr);
  delay(5);
}
void mix(int q) {
  if (q == 50) {
    pl = mfl;
    pr = mfr;
  } else if (q == 100) {
    pl = mol;
    pr = mor;
  }
  left.write(pl);
  right.write(pr);
  delay(5);
}
void cold(int q) {
  if (q == 50) {
    pl = cfl;
    pr = cfr;
  } else if (q == 100) {
    pl = col;
    pr = cor;
  }
  left.write(pl);
  right.write(pr);
  delay(5);
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)