Implement 6 Tactilos and rename
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
// Arduino -> Adafruit ESP32 Feather auswählen
|
||||
|
||||
#include <WiFi.h>
|
||||
#include <WiFiUDP.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
|
||||
/* 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_TAC6 12
|
||||
#define PIN_TAC5 27
|
||||
#define PIN_TAC4 33
|
||||
#define PIN_TAC3 15
|
||||
#define PIN_TAC2 32
|
||||
#define PIN_TAC1 14
|
||||
#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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setInitGPIO()
|
||||
{
|
||||
// Set all as OUTPUT
|
||||
pinMode(PIN_LED, OUTPUT);
|
||||
pinMode(PIN_TAC6, OUTPUT);
|
||||
pinMode(PIN_TAC5, OUTPUT);
|
||||
pinMode(PIN_TAC4, OUTPUT);
|
||||
pinMode(PIN_TAC3, OUTPUT);
|
||||
pinMode(PIN_TAC2, OUTPUT);
|
||||
pinMode(PIN_TAC1, OUTPUT);
|
||||
|
||||
// Bisher ungenutzte Pins
|
||||
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_TAC6, LOW);
|
||||
digitalWrite(PIN_TAC5, LOW);
|
||||
digitalWrite(PIN_TAC4, LOW);
|
||||
digitalWrite(PIN_TAC3, LOW);
|
||||
digitalWrite(PIN_TAC2, LOW);
|
||||
digitalWrite(PIN_TAC1, LOW);
|
||||
|
||||
// Bisher ungenutzte Pins
|
||||
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 '6': digitalWrite(PIN_TAC6, HIGH); break;
|
||||
case '5': digitalWrite(PIN_TAC5, HIGH); break;
|
||||
case '4': digitalWrite(PIN_TAC4, HIGH); break;
|
||||
case '3': digitalWrite(PIN_TAC3, HIGH); break;
|
||||
case '2': digitalWrite(PIN_TAC2, HIGH); break;
|
||||
case '1': digitalWrite(PIN_TAC1, HIGH); break;
|
||||
case '0': allLow(); break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user