Initial commit
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user