Initial commit

This commit is contained in:
Igor Beloschapkin
2020-09-28 13:42:48 +02:00
commit 6e452b3bc8
4 changed files with 680 additions and 0 deletions
@@ -0,0 +1,216 @@
// Arduino -> Adafruit ESP32 Feather auswählen
#include <WiFi.h>
#include <WiFiUDP.h>
#include <stdio.h>
#include <ctype.h>
/* Martin Wimmer Hardwaretest 17.04.2019
* Firmware v1.1 04.04.2019
* Christian Schuster
* cchschuster@gmail.com
*/
#define SSID "featherNetwork" // network SSID
#define PASSWORD "featherNetwork" // network password
#define PIN_LED 13
#define PIN_Z 14
#define PIN_V 32
#define PIN_R 15
#define PIN_L 33
#define PIN_27 27
#define PIN_12 12
#define PIN_13 13
#define PIN_A5 4
#define PIN_A1 25
#define PIN_A0 26
#define SCRIPTMODE 1 // 0 = local filtering, 1 = laptop script filtering
char packetBuffer[255]; // buffer to hold incoming packet
unsigned int localPort = 8888;
char sig_nr;
int i_sig_nr;
WiFiUDP udp;
void setup()
{
setInitGPIO();
// Initialize serial
Serial.begin(115200);
Serial.println();
Serial.print("Setting up AP at SSID: ");
Serial.print(SSID);
bool result = WiFi.softAP(SSID, PASSWORD);
//result = false; // for error testing
if(result)
{
Serial.println();
Serial.println("...AP successfully built.");
Serial.print("...Feather IP: ");
Serial.println(WiFi.softAPIP());
Serial.print("...Feather MAC: ");
Serial.println(WiFi.softAPmacAddress());
Serial.print("...Local port: ");
Serial.println(localPort);
successWiFi();
Serial.println("Listening to port...");
} else {
Serial.println("...Failed while setting up access point");
errorWiFi();
}
udp.begin(localPort);
}
void loop()
{
/*
int packetSize = udp.parsePacket();
if(packetSize)
{
int len = udp.read(packetBuffer, 255);
if(len)
{
packetBuffer[len] = 0;
}
if(SCRIPTMODE) // == 1
{
// laptop script filtering
sig_nr = packetBuffer[0];
Serial.println(sig_nr);
vibrate(sig_nr);
} else {
// local filtering
if(strstr(packetBuffer,"usCode "))
{
sig_nr = packetBuffer[13];
Serial.println(sig_nr);
vibrate(sig_nr);
}
}
}
*/
// Test alle Kanäle
allHigh();
delay(1000);
allLow();
delay(1000);
/*
// Test Kanal L,R,V,Z
for(char i='1' ; i<='4' ; i++)
{
vibrate(i);
delay(1000);
vibrate('0');
delay(1000);
}
*/
}
void setInitGPIO()
{
// Set all as OUTPUT
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_Z, OUTPUT);
pinMode(PIN_V, OUTPUT);
pinMode(PIN_R, OUTPUT);
pinMode(PIN_L, OUTPUT);
// Bisher ungenutzte Pins
pinMode(PIN_27, OUTPUT);
pinMode(PIN_12, OUTPUT);
pinMode(PIN_13, OUTPUT);
pinMode(PIN_A5, OUTPUT);
pinMode(PIN_A1, OUTPUT);
pinMode(PIN_A0, OUTPUT);
allLow();
}
void allLow()
{
// Set all LOW
digitalWrite(PIN_LED, LOW);
digitalWrite(PIN_Z, LOW);
digitalWrite(PIN_V, LOW);
digitalWrite(PIN_R, LOW);
digitalWrite(PIN_L, LOW);
// Bisher ungenutzte Pins
digitalWrite(PIN_27, LOW);
digitalWrite(PIN_12, LOW);
digitalWrite(PIN_13, LOW);
digitalWrite(PIN_A5, LOW);
digitalWrite(PIN_A1, LOW);
digitalWrite(PIN_A0, LOW);
}
void errorWiFi()
{
delay(2000);
while(true)
{
digitalWrite(PIN_LED, HIGH);
delay(100);
digitalWrite(PIN_LED, LOW);
delay(100);
digitalWrite(PIN_LED, HIGH);
delay(100);
digitalWrite(PIN_LED, LOW);
delay(1000);
}
}
void successWiFi()
{
delay(2000);
for(int i = 0; i < 5; i++)
{
digitalWrite(PIN_LED, HIGH);
delay(1000);
digitalWrite(PIN_LED, LOW);
delay(200);
}
}
void vibrate(const char signr)
{
switch(signr)
{
case '4': digitalWrite(PIN_Z, HIGH); break;
case '3': digitalWrite(PIN_V, HIGH); break;
case '2': digitalWrite(PIN_R, HIGH); break;
case '1': digitalWrite(PIN_L, HIGH); break;
case '0': allLow(); break;
}
}
void allHigh()
{
// Set all High
digitalWrite(PIN_LED, HIGH);
digitalWrite(PIN_Z, HIGH);
digitalWrite(PIN_V, HIGH);
digitalWrite(PIN_R, HIGH);
digitalWrite(PIN_L, HIGH);
// Bisher ungenutzte Pins
digitalWrite(PIN_27, HIGH);
digitalWrite(PIN_12, HIGH);
digitalWrite(PIN_13, HIGH);
digitalWrite(PIN_A5, HIGH);
digitalWrite(PIN_A1, HIGH);
digitalWrite(PIN_A0, HIGH);
}