Implement 6 Tactilos and rename

This commit is contained in:
2020-11-10 15:23:33 +01:00
parent 557a867d7b
commit 69f107c9cc
3 changed files with 24 additions and 258 deletions
+178
View File
@@ -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;
}
}