Compare commits

7 Commits

8 changed files with 44 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
{ {
"sketch": "window_control/window_control.ino", "sketch": "window_control/window_control.ino",
"configuration": "BoardModel=primo,xtal=80,vt=flash,exception=legacy,ssl=all,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200", "configuration": "BoardModel=primo,xtal=80,vt=flash,exception=legacy,ssl=all,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200",
"board": "esp8266:esp8266:arduino-esp8266" "board": "esp8266:esp8266:arduino-esp8266",
"port": "/dev/ttyUSB0"
} }

5
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"files.associations": {
"sstream": "cpp"
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -3,50 +3,43 @@
// Include the mqtt client lib // Include the mqtt client lib
#include <PubSubClient.h> #include <PubSubClient.h>
// Include any secrets. // Include the settings.h.
#include "window_control_secrets.h" #include "window_control_settings.h"
#define wifi_ssid SECRET_SSID #define buzzer 2
#define wifi_password SECRET_PASS #define motorForward 1
#define motorReverse 0
#define mqtt_server "mqtt.kitsunehosting.net" #define sense 3
#define mqtt_port 1883
#define mqtt_user SECRET_MQTT_USER
#define mqtt_password SECRET_MQTT_PASS
#define in_topic "/testing/in"
#define out_topic "/testing/out"
// Replace by 2 if you aren't enable to use Serial Monitor... Don't forget to Rewire R1 to GPIO2!
#define in_led 2
WiFiClient espClient; WiFiClient espClient;
PubSubClient client; PubSubClient client;
void setup() { void setup() {
Serial.begin(115200);
setup_wifi(); setup_wifi();
client.setClient(espClient); client.setClient(espClient);
client.setServer(mqtt_server, mqtt_port); client.setServer(MQTT_SERVER, MQTT_PORT);
client.setCallback(callback); client.setCallback(callback);
// initialize digital pin LED_BUILTIN as an output. // Initalize some pins!
pinMode(in_led, OUTPUT); // Initalize buzzer pin
digitalWrite(in_led, HIGH); pinMode(buzzer, OUTPUT);
digitalWrite(buzzer, LOW);
} }
void setup_wifi() { void setup_wifi() {
delay(10); delay(10);
// We start by connecting to a WiFi network // We start by connecting to a WiFi network
Serial.println(); Serial.println();
WiFi.hostname("ESP-Test1"); WiFi.hostname("ESP-" WINDOW_NAME);
Serial.print("Connecting to "); Serial.print("Connecting to ");
Serial.println(wifi_ssid); Serial.println(WIFI_SSID);
WiFi.begin(wifi_ssid, wifi_password); WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) { while (WiFi.status() != WL_CONNECTED) {
delay(500); delay(950);
Serial.println("Not yet connected.. Waiting 500ms to check again.."); tone(buzzer, 1200, 50);
Serial.println("Not yet connected.. Waiting 1s to check again..");
} }
Serial.println(""); Serial.println("");
@@ -60,9 +53,7 @@ void reconnect() {
while (!client.connected()) { while (!client.connected()) {
Serial.print("Attempting MQTT connection..."); Serial.print("Attempting MQTT connection...");
// Attempt to connect // Attempt to connect
// If you do not want to use a username and password, change next line to if (client.connect("ESP8266Client", MQTT_USER, MQTT_PASS)) {
// if (client.connect("ESP8266Client")) {
if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
Serial.println("connected"); Serial.println("connected");
} else { } else {
Serial.print("failed, rc="); Serial.print("failed, rc=");
@@ -82,21 +73,26 @@ void callback(char* topic, byte* payload, unsigned int length) {
char receivedChar = (char)payload[i]; char receivedChar = (char)payload[i];
Serial.print(receivedChar); Serial.print(receivedChar);
if (receivedChar == '0') if (receivedChar == '0')
digitalWrite(in_led, LOW); //digitalWrite(in_led, LOW);
if (receivedChar == '1') if (receivedChar == '1')
digitalWrite(in_led, HIGH); //digitalWrite(in_led, HIGH);
} }
Serial.println(); Serial.println();
} }
void loop() { void loop() {
// If we ever disconnect, reconnect.
if (!client.connected()) { if (!client.connected()) {
reconnect(); reconnect();
} }
// Run the client loop
client.loop(); client.loop();
// Publishes a random 0 and 1 like someone switching off and on randomly (random(2)) // Publishes a random 0 and 1 like someone switching off and on randomly (random(2))
client.publish(out_topic, String(random(2)).c_str(), true); client.publish(MQTT_ROOT "/random", String(random(2)).c_str(), true);
delay(1000); delay(1000);
client.subscribe(in_topic); client.subscribe(MQTT_ROOT "/in");
tone(buzzer, 2000, 500);
delay(1000); delay(1000);
} }

View File

@@ -0,0 +1,10 @@
#define WIFI_SSID "muner"
#define WIFI_PASS "apollo11"
#define MQTT_SERVER "mqtt.kitsunehosting.net"
#define MQTT_PORT 1883
#define MQTT_USER "device"
#define MQTT_PASS "iamnotacrook"
#define WINDOW_NAME "window_0"
#define MQTT_ROOT "home/upstairs_lab/actuators/" WINDOW_NAME