Screenshot
Arduino Code:
#include const char WiFiAPPSK[] = ""; WiFiServer server(80); #define blueLed 16 #define redLed 2 #define greenLed 0 void setup() { Serial.begin(9600); pinMode(redLed, OUTPUT); pinMode(greenLed, OUTPUT); pinMode(blueLed, OUTPUT); setupWiFi(); } void loop() { WiFiClient client = server.available(); Serial.println("waiting... "); Serial.println(client); if (client ) { while (client.connected()) { while(1){ if (client.available()) { int inChar; inChar = client.read(); Serial.println(inChar); switch (inChar) { case 'A': analogWrite(blueLed,0); break; case 'a': analogWrite(blueLed,PWMRANGE); break; case 'B': analogWrite(redLed, PWMRANGE); break; case 'b': analogWrite(redLed, 0); break; case 'C': analogWrite(greenLed, PWMRANGE); break; case 'c': analogWrite(greenLed, 0); break; } } } // Serial.println("Client disconnected."); // client.stop(); } } } void setupWiFi(){ WiFi.mode(WIFI_AP); // Do a little work to get a unique-ish name. Append the // last two bytes of the MAC (HEX'd) to "Thing-": uint8_t mac[WL_MAC_ADDR_LENGTH]; WiFi.softAPmacAddress(mac); String macID = String(mac[WL_MAC_ADDR_LENGTH - 2], HEX) + String(mac[WL_MAC_ADDR_LENGTH - 1], HEX); macID.toUpperCase(); String AP_NameString = "ESPCopter"; char AP_NameChar[AP_NameString.length() + 1]; memset(AP_NameChar, 0, AP_NameString.length() + 1); for (int i=0; i<AP_NameString.length(); i++) AP_NameChar[i] = AP_NameString.charAt(i); WiFi.softAP(AP_NameChar, WiFiAPPSK); server.begin(); }
Processing Code:
import processing.net.*; import controlP5.*; Client myClient; ControlP5 cp5; String command= ""; int c1,c2; void setup() { size(400, 300,P3D); background(0); myClient = new Client(this, "192.168.4.1", 80); println(myClient.ip()); cp5 = new ControlP5(this); cp5.addToggle("colorA") .setPosition(150,100) .setSize(50,20) .setValue(false) .setMode(ControlP5.SWITCH) ; cp5.addToggle("colorB") .setPosition(150,150) .setSize(50,20) .setValue(false) .setMode(ControlP5.SWITCH) ; cp5.addToggle("colorC") .setPosition(150,200) .setSize(50,20) .setValue(false) .setMode(ControlP5.SWITCH) ; } void draw() { } // function colorA will receive changes from // controller with name colorA void colorA(boolean theFlag) { println("a button event from colorA: "+theFlag); background(0,255,0); if(theFlag == true){ command = "A"; } else { command = "a"; } myClient.write(command); } // function colorB will receive changes from // controller with name colorB void colorB(boolean theFlag) { println("a button event from colorB: "+theFlag); background(0,0,255); if(theFlag == true){ command = "B"; } else { command = "b"; } myClient.write(command); } // function colorC will receive changes from // controller with name colorC void colorC(boolean theFlag) { println("a button event from colorC: "+theFlag); background(255,0,0); if(theFlag == true){ command = "C"; } else { command = "c"; } myClient.write(command); }