Uart 3
#include <ESP8266WiFI.h>
/*F********************************************************************
*
**********************************************************************/
#include <ESP8266WiFi.h>
//************************* DEFINES ************************************
#define BAUD 9600
//************************* PROTOTYPES ************************************
//************************* VARIABLES ************************************
// WiFiClient Clnt;
WiFiClient Clnt = Srv.available();
WiFiServer Srv( 80 );
char Ssid[] = "Linksys59517"; // HOME WiFi SSID
IPAddress Ip( 192,168,1,213 ); // ESP NAME IP ADDRESS
IPAddress Gwy( 192,168,1,1 ); // NETWORK GATEWAY
IPAddress SubNet( 255,255,255,0 ); // NETWORK SUBNET MASK
float BattV;
int HiBandLim = 2500, LoBandLim = 1400, SloStartLim = 3600;
int SloStopLim = 500, UpDownInt, UpDownInt2, Val3Int, Val4Int;
int MotorVal, PwmVal0, PwmVal2;
String Start, UpDown, UpDowna, UpDownb, UpDownc, UpDownd, UpDown2;
String UpDown2a, UpDown2b, UpDown2c, UpDown2d;
String Val3, Val3A, Val3B, Val3C, Val3D, Val4, Val4A, Val4B, Val4C, Val4D;
/*F********************************************************************
*
**********************************************************************/
void
setup()
{
// Serial.begin( BAUD ); // ONLY FOR DEBUG
WiFi.config( Ip, Gwy, SubNet ); // FORCES FIXED IP
WiFi.begin( Ssid, pass ); // CONNECTS TO WiFi ROUTER
while( WiFi.status() != WL_CONNECTED )
{
Serial.println( "." );
delay( 50 );
}
Serial.println( "Connected to wifi" );
Srv.begin();
pinMode( 0, OUTPUT );
pinMode( 2, OUTPUT );
pinMode( 4, OUTPUT );
pinMode( 5, OUTPUT );
pinMode( 12, OUTPUT );
pinMode( 13, OUTPUT );
pinMode( 14, OUTPUT );
pinMode( 16, OUTPUT );
digitalWrite( 4, LOW );
digitalWrite( 5, LOW );
digitalWrite( 12, LOW );
digitalWrite( 13, LOW );
digitalWrite( 14, LOW );
digitalWrite( 16, LOW );
}
/*F********************************************************************
*
**********************************************************************/
void
loop ()
{
String req;
Serial.println( "Not connected" );
// BattV = analogRead( A0 );
if( Clnt = Srv.available())
{
Srv.begin();
while( Clnt.connected() )
{
if( !Clnt.connected() )
{
digitalWrite( 2, HIGH );
delay( 100 );
digitalWrite( 2, LOW );
delay( 100 );
Serial.println();
Serial.println( "disconnecting." );
Clnt.stop();
Srv.available();
}
if( Clnt.available() )
{
req = Clnt.readStringUntil( 'y' );
UpDowna = req.charAt( 0 ); // UpDown
UpDownb = req.charAt( 1 );
UpDownc = req.charAt( 2 );
UpDownd = req.charAt( 3 );
UpDown = UpDowna + UpDownb + UpDownc + UpDownd;
UpDown2a = req.charAt( 4 ); // UpDown2
UpDown2b = req.charAt( 5 );
UpDown2c = req.charAt( 6 );
UpDown2d = req.charAt( 7 );
UpDown2 = UpDown2a + UpDown2b + UpDown2c + UpDown2d;
Val3A = req.charAt( 8 ); // Val3
Val3B = req.charAt( 9 );
Val3C = req.charAt( 10 );
Val3D = req.charAt( 11 );
Val3 = Val3A + Val3B + Val3C + Val3D;
Val4A = req.charAt( 12 ); // Val4
Val4B = req.charAt( 13 );
Val4C = req.charAt( 14 );
Val4D = req.charAt( 15 );
Val4 = Val4A + Val4B + Val4C + Val4D;
UpDownInt = UpDown.toInt();
UpDownInt2 = UpDown2.toInt();
Val3Int = Val3.toInt();
Val4Int = Val4.toInt();
Serial.println( "UpDown is: " + UpDown );
Serial.println( "UpDown2 is: " + UpDown2 );
Serial.println( "Val3 is: " + Val3 );
Serial.println( "Val4 is: "+ Val4 );
if( Val3Int > HiBandLim && Val4Int < HiBandLim
&& Val4Int > LoBandLim )
{ // MOVE FORWARD, BOTH MOTORS CCW
digitalWrite( 5, LOW );
digitalWrite( 4, HIGH );
digitalWrite( 12, LOW );
digitalWrite( 13, HIGH );
if( Val3Int > HiBandLim && Val3Int < SloStartLim )
{
for( int MotorVal = HiBandLim
; MotorVal <= SloStartLim; MotorVal += 10 )
{
// MotorVal = min( MotorVal, 3000 );
analogWrite( 0, MotorVal );
analogWrite( 2, MotorVal );
delay( 1 );
}
}
}
else
if( Val3Int < LoBandLim && Val4Int < HiBandLim
&& Val4Int > LoBandLim )
{ // MOVE BACKWARD, BOTH MOTORS CW
digitalWrite( 5, HIGH );
digitalWrite( 4, LOW );
digitalWrite( 13, LOW );
digitalWrite( 12, HIGH );
if( Val3Int > SloStopLim && Val3Int < LoBandLim )
{
for( MotorVal = LoBandLim; MotorVal >= 10
; MotorVal -= 10 )
{
// min( MotorVal, 3000 );
analogWrite( 0, ( 4095-MotorVal ) );
analogWrite( 2, ( 4095-MotorVal ) );
delay( 1 );
}
}
}
else if( Val4Int < LoBandLim && Val3Int < HiBandLim
&& Val3Int > LoBandLim )
{ // MOVE RIGHT, VAL4 ONLY
digitalWrite( 12, HIGH );
digitalWrite( 13, LOW );
digitalWrite( 4, LOW );
digitalWrite( 5, LOW );
Serial.println( "right" );
analogWrite( 0, ( 4095-MotorVal ) );
}
else if( Val4Int > HiBandLim && Val3Int < HiBandLim
&& Val3Int > LoBandLim )
{ // MOVE LEFT, VAL3 ONLY
digitalWrite( 12, LOW );
digitalWrite( 13, LOW );
digitalWrite( 4, HIGH );
digitalWrite( 5, LOW );
Serial.println( "left" );
analogWrite( 0, ( 4095-MotorVal ) );
}
else if( UpDownInt < 2000 )
{ // GO DOWN
digitalWrite( 16, HIGH );
digitalWrite( 14, LOW );
Serial.println( "down" );
}
else if( UpDownInt2 < 2000 )
{ // GO UP
digitalWrite( 14, HIGH );
digitalWrite( 16, LOW );
Serial.println( "up" );
}
else if( UpDownInt >= 2000 && Val3Int > LoBandLim
&& Val3Int < HiBandLim && Val4Int > LoBandLim
&& Val4Int < HiBandLim )
{
digitalWrite( 4, LOW );
digitalWrite( 5, LOW );
digitalWrite( 12, LOW );
digitalWrite( 13, LOW );
digitalWrite( 14, LOW );
digitalWrite( 16, LOW );
Serial.print( "ALL OFF " );
}
}
}
}
}