Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include <PubSubClient.h>
- #define interruptPin D1
- const char* ssid = "Jorge 2.4";
- const char* password = "";
- const char* mqtt_server = "iot.eclipse.org";
- WiFiClient espClient;
- PubSubClient mqttClient(espClient);
- long lastReconnectAttempt = 0;
- String message = "";
- int timer = millis();
- void callback(char* topic, byte* payload, unsigned int length) {
- message = "";
- for (int i = 0; i < length; i++) {
- message += (char) payload[i];
- }
- message.toLowerCase();
- message.trim();
- }
- boolean reconnect() {
- String clientId = "ESP8266Client-";
- clientId += String(random(0xffff), HEX);
- if (mqttClient.connect(clientId.c_str())) {
- mqttClient.publish("julinho/enable", "1");
- mqttClient.publish("julinho/sos", "0");
- mqttClient.subscribe("julinha/rota");
- }
- return mqttClient.connected();
- }
- void setup() {
- Serial.begin(9600);
- WiFi.begin(ssid, password);
- pinMode(interruptPin, OUTPUT);
- digitalWrite(interruptPin, HIGH);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- }
- mqttClient.setServer(mqtt_server, 1883);
- mqttClient.setCallback(callback);
- Serial.println("Setup feito");
- }
- void loop() {
- if (!mqttClient.connected()) {
- long now = millis();
- if (now - lastReconnectAttempt > 5000) {
- lastReconnectAttempt = now;
- if (reconnect()) {
- lastReconnectAttempt = 0;
- }
- }
- return;
- }
- if (Serial.available()) {
- String messageCheck = Serial.readString();
- char check[messageCheck.length()];
- messageCheck.toCharArray(check, messageCheck.length());
- mqttClient.publish("julinho/check", check);
- }
- boolean routeExists = message.compareTo("") != 0;
- if (!routeExists) {
- delay(100);
- mqttClient.loop();
- return;
- }
- digitalWrite(interruptPin, LOW);
- Serial.print(message);
- message = "";
- delay(2000);
- ESP.deepSleep(30e6);
- delay(100);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement