Changed FabCity Demo Build Pin Config

This commit is contained in:
TheJoKlLa 2023-02-22 02:01:47 +01:00
parent 006b1dc034
commit c1e20c122b

View File

@ -4,12 +4,13 @@
#include "config.h" #include "config.h"
#define MCP_INPUTS 16 // MCP23017 #define MCP_INPUTS 16 // MCP23017
#define TRIGGER_TIME 1500 #define TRIGGER_TIME 3000
#define BLINK_COUNT 3
#define BLINK_TIME 500
WiFiClient espClient; WiFiClient espClient;
PubSubClient client(espClient); PubSubClient client(espClient);
Adafruit_MCP23X17 mcp_relais; Adafruit_MCP23X17 mcp_relais;
Adafruit_MCP23X17 mcp_feedback;
unsigned long lastMsg = 0; unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE (50) #define MSG_BUFFER_SIZE (50)
@ -31,8 +32,6 @@ void setup_wifi()
{ {
delay(500); delay(500);
} }
randomSeed(micros());
} }
void callback(char* topic, byte* payload, unsigned int length) void callback(char* topic, byte* payload, unsigned int length)
@ -48,33 +47,23 @@ void callback(char* topic, byte* payload, unsigned int length)
strncpy(str_id, topic + topic_len - trigger_len - 3, 3); strncpy(str_id, topic + topic_len - trigger_len - 3, 3);
int id = atoi(str_id); int id = atoi(str_id);
if ((char)payload[0] == '1') mcp_relais.digitalWrite(id, HIGH);
{ delay(TRIGGER_TIME);
mcp_relais.digitalWrite(id, HIGH); mcp_relais.digitalWrite(id, LOW);
delay(TRIGGER_TIME);
mcp_relais.digitalWrite(id, LOW);
}
else
{
mcp_relais.digitalWrite(id, LOW);
delay(TRIGGER_TIME);
mcp_relais.digitalWrite(id, HIGH);
}
} }
if(!strcmp(topic + topic_len - set_state_len, "/set_state")) if(!strcmp(topic + topic_len - set_state_len, "/identify"))
{ {
char str_id[4] = {0}; char str_id[4] = {0};
strncpy(str_id, topic + topic_len - trigger_len - 3, 3); strncpy(str_id, topic + topic_len - trigger_len - 3, 3);
int id = atoi(str_id); int id = 15 - atoi(str_id);
if ((char)payload[0] == '1') for(int i = 0; i < BLINK_COUNT; i++)
{ {
mcp_relais.digitalWrite(id, HIGH); mcp_relais.digitalWrite(id, HIGH);
} delay(BLINK_TIME);
else
{
mcp_relais.digitalWrite(id, LOW); mcp_relais.digitalWrite(id, LOW);
delay(BLINK_TIME);
} }
} }
} }
@ -99,9 +88,9 @@ void reconnect()
} }
if (connected) if (connected)
{ {
snprintf (topic_recv, TOPIC_BUFFER_SIZE, "fablock/%03d/+/trigger", FABLOCKID); snprintf (topic_recv, TOPIC_BUFFER_SIZE, "fablock/%05d/+/trigger", FABLOCKID);
client.subscribe(topic_recv); client.subscribe(topic_recv);
snprintf (topic_recv, TOPIC_BUFFER_SIZE, "fablock/%03d/+/set_state", FABLOCKID); snprintf (topic_recv, TOPIC_BUFFER_SIZE, "fablock/%05d/+/identify", FABLOCKID);
client.subscribe(topic_recv); client.subscribe(topic_recv);
} }
else else
@ -134,19 +123,7 @@ void setup()
for(i = 0; i<MCP_INPUTS; i++) for(i = 0; i<MCP_INPUTS; i++)
{ {
mcp_relais.pinMode(i, OUTPUT); mcp_relais.pinMode(i, OUTPUT);
} mcp_relais.writeGPIO(i, HIGH);
if(HAS_FEEDBACK)
{
if (!mcp_feedback.begin_I2C(MPC_FEEDBACK_ADDR))
{
Serial.println("MCP Error");
while (1);
}
for(i = 0; i<MCP_INPUTS; i++)
{
mcp_feedback.pinMode(i, INPUT_PULLUP);
}
} }
} }
@ -172,16 +149,5 @@ void loop()
snprintf (topic_send, TOPIC_BUFFER_SIZE, "fablock/%03d/%03d/state", FABLOCKID, i); snprintf (topic_send, TOPIC_BUFFER_SIZE, "fablock/%03d/%03d/state", FABLOCKID, i);
client.publish(topic_send, msg); client.publish(topic_send, msg);
} }
if(HAS_FEEDBACK)
{
for(int i=0; i<MCP_INPUTS; i++)
{
value = !mcp_feedback.digitalRead(i);
snprintf (msg, MSG_BUFFER_SIZE, "%d", value);
snprintf (topic_send, TOPIC_BUFFER_SIZE, "fablock/%03d/%03d/feedback", FABLOCKID, i);
client.publish(topic_send, msg);
}
}
} }
} }