1. NodeMCU ESP-12E
2. Arduino Uno
3. HC-06 Bluetooth Module
4. (2) Momentary Buttons
5. 5V Relay
6. NPN Transistor
7. 1K Resistor
8. Alligator Clips
- // Flashing Light Prize (5) IoT Pacing
- // Step Code
- // pkvi
- // NodeMCU ESP-12E 1.0
- #include <ESP8266WiFi.h>
- #include <ESP8266HTTPClient.h>
- // WIFI Network Access
- const char* ssid = "networkID";
- const char* password = "networkpassword";
- WiFiServer server(80);
- // Buttons
- const int left = D2;
- const int right = D3;
- // Buttons State
- int lstate;
- int rstate;
- int state = 0;
- int led = D0;
- void setup() {
- pinMode(left, INPUT);
- pinMode(right, INPUT);
- pinMode(led, OUTPUT);
- Serial.begin(9600);
- while (WiFi.status() != WL_CONNECTED) {
- WiFi.begin(ssid, password);
- delay(5000);
- }
- Serial.println("Connected");
- digitalWrite(led, HIGH);
- server.begin();
- }
- void loop() {
- // Read Buttons
- lstate = digitalRead(left);
- rstate = digitalRead(right);
- // Declare Task
- HTTPClient http;
- int httpCode;
- if (lstate == HIGH && rstate == LOW) {
- // Prevent Excess
- if (state == 0) {
- Serial.println("L");
- // Load .php that writes to .txt
- http.begin("http://website.com/flp/flp.php?state=1");
- httpCode = http.GET();
- http.end();
- state = 1;
- } else {
- // Nothing
- }
- } else if (rstate == HIGH && lstate == LOW) {
- if (state == 1) {
- Serial.println("R");
- http.begin("http://website.com/flp/flp.php?state=0");
- httpCode = http.GET();
- http.end();
- state = 0;
- } else {
- // Nothing
- }
- } else if (lstate == HIGH && rstate == HIGH) {
- // Zilch
- } else if (lstate == LOW && rstate == LOW) {
- // Nope
- }
- delay(100);
- }
Arduino Doodle
- // Flashing Light Prize (5) IoT Pacing
- // pkvi
- // Relay Pin
- int relay = 2;
- // Serial Data
- char data;
- void setup() {
- Serial.begin(9600);
- pinMode(relay, OUTPUT);
- }
- void loop() {
- // Communication?
- if (Serial.available() > 0) {
- // Whad' It Say?!
- data = Serial.read();
- // Off?
- if (data == 'F') {
- digitalWrite(relay, HIGH);
- }
- // On?
- if (data == 'U') {
- digitalWrite(relay, LOW);
- }
- }
- }
Processing Process
- // Flashing Light Prize (5) IoT Pacing
- // Processing to Bluetooth
- // pkvi
- import processing.serial.*;
- Serial port;
- void setup() {
- println(Serial.list());
- port = new Serial(this, "COM3", 9600);
- frameRate(4);
- }
- void draw() {
- // Internet Address .txt File
- String onoroff[] = loadStrings("http://website.com/flp/flp.txt");
- // Prints .txt File Contents
- print(onoroff[0]);
- if (onoroff[0].equals("1") == true) {
- println("Flash");
- port.write('F');
- } else if (onoroff[0].equals("0") == true) {
- println("Unflash");
- port.write('U');
- } else {
- }
- }
PHP-p-ing
- $onoroff = $_GET["state"];
- $textfile = "flp.txt";
- $fileLocation = "$textfile";
- $fh = fopen($fileLocation, 'w') or die("Crap!");
- $stringToWrite = "$onoroff";
- fwrite($fh, $stringToWrite);
- fclose($fh);