Supla + ESP8266 + Adapter Gniazdka Radiowego

User avatar
shimano73
Posts: 855
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze

Wed Aug 28, 2019 1:45 pm

W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
piomar2
Posts: 83
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Wed Aug 28, 2019 2:36 pm

Mam wrażenie (po zdjęciu), że wybierasz złą płytkę w arduino (masz błąd kompilacji dla płytki Generic ESP8266). Skoro jest to ESP8266 Nodemcu v3 to wybierz płytkę: "NodeMCU 1.0 (ESP - 12E Module".
piomar2
piomar2
Posts: 83
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Wed Aug 28, 2019 3:13 pm

Sprawdziłem na ESP8266 Nodemcu v3 też działa dobrze i oczywiście się kompiluje.
Attachments
Zrzut ekranu 2019-08-28 17.07.52.png
Zrzut ekranu 2019-08-28 17.07.52.png (86.73 KiB) Viewed 179 times
piomar2
marsoonn
Posts: 11
Joined: Mon Aug 19, 2019 11:21 am

Thu Aug 29, 2019 9:38 am

Panowie!
Wszystko działa dzięki wielkie !!!

Tylko pytanko teraz ma ktoś pomysł jak rozbudować to o inne gniazdka?
piomar2
Posts: 83
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Thu Aug 29, 2019 10:10 am

Na pilocie masz 2 przyciski (włącz, wył) ?. Ten program wysłany przeze mnie obsługuje tylko jeden przycisk (ten program wygrałeś?). Był to wstępny program żebyś uruchomił cokolwiek. Mogę ci dosłać program, który obsługuje dwa przyciski włącz i wyłącz i wtedy będzie ok. Mało piszesz i trudno domyślić się co i ciebie się dzieje. Oczywiście, że jest możliwość sterowania następnymi gniazdkami ale to dalszą rozbudowa programu i...powoli
piomar2
marsoonn
Posts: 11
Joined: Mon Aug 19, 2019 11:21 am

Thu Aug 29, 2019 10:17 am

Jeśli możesz prześlij następny program w którym działają dwa przyciski,
Ten pierwszy rozbudowałem samemu i działają 2 przyciski ale chciałem zobaczyć czy podobnie to zrobiliśmy;

Masz może program rozbudowany aby obsługiwał 2 gniazdka tj. 4 przyciski ?
piomar2
Posts: 83
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Thu Aug 29, 2019 10:20 am

Za 1,5 godz będę w domu to podeślę 2 przyciski
piomar2
piomar2
Posts: 83
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Thu Aug 29, 2019 11:53 am

To pochwal się jak to napisałeś dla 2 przycisków...
I co działa ci to na Nodemcu V3 i kompilujesz w arduino 1.8.3?
Jeżeli tak to trochę zmieniłbym piny ale jak działa to ok.
To mój :

Code: Select all

//ESP8266
// 0 - GPIO 0
// 1 - TX nadajnik 433
// 2 - GPIO 2
// 3 - RX
 
#include <srpc.h>
#include <log.h>
#include <eh.h>
#include <proto.h>
#include <IEEE754tools.h>
// We define our own ethernet layer
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>
#include <lck.h>

#include <WiFiClient.h>
#include <ESP8266WiFiType.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiMulti.h>
#include <WiFiServer.h>
#include <ESP8266WiFiGeneric.h>
#include <WiFiClientSecure.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiSTA.h>
#include <WiFiUdp.h>

#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch(); 

WiFiClient client;

//tu wpisać parametry swojego wifi
const char* ssid = "xxxx";
const char* password = "xxxx"; 
byte a=0;

//tu wpisać kody swojego pilota
int b=xxxxxxx;//kod pilota włączanie
int c=xxxxxxx;//kod pilota wyłączanie

void setup() {
   
  mySwitch.enableTransmit(1);//nadajnik na TX

  // Replace the falowing GUID
  char GUID[SUPLA_GUID_SIZE] = {0xCC,0x2F,0x0E,0xF8,0x2E,0xFC,0xB7,0x1D,0xB0,0xCF,0x8D,0xD8,0x9D,0xA7,0xBD,0x5E};
  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid

  // Ethernet MAC address
  uint8_t mac[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

 SuplaDevice.addRelayButton(3, 2, INPUT_TYPE_BTN_MONOSTABLE, 0, SUPLA_BIT_RELAYFUNC_LIGHTSWITCH);
 
//tu wpisać swoje parametry supli 
  SuplaDevice.setName("Gniazdo 433");
  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    mac,               // Ethernet MAC address
                    "xxx",  // SUPLA server address
                    xxx,                 // Location ID 
                    "xxx");               // Location Password

}

void loop() {
  SuplaDevice.iterate();

  if (digitalRead(3) == HIGH && a==0){
    mySwitch.send(b,24);//włączanie
      a=1;
      delay(150); 
   } 
  if (digitalRead(3) == LOW && a==1){
    mySwitch.send(c,24);//wyłączanie
      a=0;
      delay(150);
   }
   }


// Supla.org ethernet layer
    int supla_arduino_tcp_read(void *buf, int count) {
        _supla_int_t size = client.available();
       
        if ( size > 0 ) {
            if ( size > count ) size = count;
            return client.read((uint8_t *)buf, size);
        };
    
        return -1;
    };
    
    int supla_arduino_tcp_write(void *buf, int count) {
        return client.write((const uint8_t *)buf, count);
    };
    
    bool supla_arduino_svr_connect(const char *server, int port) {
          return client.connect(server, 2015);
    }
    
    bool supla_arduino_svr_connected(void) {
          return client.connected();
    }
    
    void supla_arduino_svr_disconnect(void) {
         client.stop();
    }
    
    void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {

       // Serial.println("WiFi init");
        WiFi.begin(ssid, password);

        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
        //    Serial.print(".");
        }

        Serial.print("\nlocalIP: ");
        Serial.println(WiFi.localIP());
        Serial.print("subnetMask: ");
        Serial.println(WiFi.subnetMask());
        Serial.print("gatewayIP: ");
        Serial.println(WiFi.gatewayIP());
    }

SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
          SuplaDeviceCallbacks cb;
          
          cb.tcp_read = &supla_arduino_tcp_read;
          cb.tcp_write = &supla_arduino_tcp_write;
          cb.eth_setup = &supla_arduino_eth_setup;
          cb.svr_connected = &supla_arduino_svr_connected;
          cb.svr_connect = &supla_arduino_svr_connect;
          cb.svr_disconnect = &supla_arduino_svr_disconnect;
          cb.get_temperature = NULL;
          cb.get_temperature_and_humidity = NULL;
          cb.get_rgbw_value = NULL;
          cb.set_rgbw_value = NULL;
          
          return cb;
}
piomar2
piomar2
Posts: 83
Joined: Fri Apr 26, 2019 5:32 pm
Location: Bukowice

Sun Sep 01, 2019 12:02 pm

A to wersja sterująca dwoma gniazdami. Sprawdzone na gniazdach 433 Kanlux
Attachments
ESP_433_2_gniazda_1.zip
(1.52 KiB) Downloaded 6 times
piomar2
Post Reply