Listwa zasilająca V1.0

wrobel111
Posts: 62
Joined: Tue Jun 05, 2018 6:13 pm

Post

Witam wszystkich,
chciałbym zaprezentować listwę zasilająca z 5-cioma niezależnie sterowanymi gniazdkami. Gotowe urządzenia można znaleźć u chińczyków w cenie ok. 25$ lecz problem byłby z wgraniem supli, poza tym chciałem to zrobić taniej oraz własnoręcznie. Jako baza posłużyła mi tutaj listwa Esperanza RAINBOW PRO, z której usunąłem orginalne przełączniki. Takie rozwiązanie znacznie ułatwiło pracę, gdyż w przeciwnym razie wymagane by było cięcie szyny zasialającej. Obudowa jest też szersza niż w standardowych listwach, dzięki czemu zmieściła się cała elektronika. W miejsce przełączników zaprojektowałem moduły z przekaźnikami w taki sposób aby wykorzystać orginalne blaszki styków. Zastosowałem przekaźniki z cewką sterowaną 5 V DC, o obciązalności styków 10 A. Listwa była stworzona z zamysłem sterowania sprzętu RTV, więc uznałem że takie w zupełności wystarczą.
Jako sterownik wykorzystałem Wemos d1 mini. Za pomocą pięciu pinów po przez tranzystory steruje on przekaźnikami.

Image

Image

Image

Image

Image
wrobel111
Posts: 62
Joined: Tue Jun 05, 2018 6:13 pm

Post

Płytka została zaprojektowana w Eagl-u. Poniżej zamieszczam schemat
Image
Image

Program został napisany w środowisku Arduino IDE, na podstawie gotowego przykładu.Podpięcie przekaźników pod piny D3 i D2 skutkowało wieszaniem się wemosa dlatego też użyłem pinów D0, D1, D6, D7, D8.

Code: Select all

/**
 * Supla.org NodeMCU WiFi minimal example
 * Author: Programistyk - Kamil Kaminski <[email protected]>
 * 
 * This example shows how to configure SuplaDevice for building for NodeMCU within Arduino IDE
 */


#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>

WiFiClient client;


// Setup Supla connection
const char* ssid     = "xxxxx";
const char* password = "yyyyyy";


void setup() {
  Serial.begin(115200);

  // Replace the falowing GUID
  char GUID[SUPLA_GUID_SIZE] = {xxxxxxxxx};
  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid

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

  /*
   * Having your device already registered at cloud.supla.org,
   * you want to change CHANNEL sequence or remove any of them,
   * then you must also remove the device itself from cloud.supla.org.
   * Otherwise you will get "Channel conflict!" error.
   */
    
  // CHANNEL0 - RELAY
  SuplaDevice.addRelay(D0, false);           // 44 - Pin number where the relay is connected      
                                      // Call SuplaDevice.addRelay(44, true) with an extra "true" parameter 
                                      // to enable "port value inversion"
                                      // where HIGH == LOW, and LOW == HIGH 

  SuplaDevice.addRelay(D1, false);
  SuplaDevice.addRelay(D6, false);
  SuplaDevice.addRelay(D7, false);
  SuplaDevice.addRelay(D8, false);

  SuplaDevice.begin(GUID,              // Global Unique Identifier 
                    mac,               // Ethernet MAC address
                    "svr1.supla.org",  // SUPLA server address
                    aaaaa,              // Location ID 
                    "bbbbb");           // Location Password

}

void loop() {
  SuplaDevice.iterate();
}

// 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;
}
Po zbudowaniu pierwszej wersji nasuwa mi się kilka wniosków:
- potrzeba dodania zabezpieczenia przeciwprzepięciowego oraz bezpiecznika,
- dobrym dodatkiem byłoby zrobienie diod LED przy każdym z gniazdek sygnalizujących załączenie napięcia
- zrobienie dedykowanej płytki pod wemosa i zasilacz
- dodanie złącza uniwersalnego (+5V, sygnał, GND) , pozwalającego wpięcie np. termometru lub innego czujnika
- dorobienie przycisków w celu manualnego włączania gniazd - potrzeba by jednak do tego scalaka powiększającego liczbę wejść


Płytki nie wyszły do końca tak jak bym chciał bo były robione na szybko, całość poskładana w jeden dzień. Do tego toner z drukarki nie chciał przechodzić i musiałem poprawiać pisakiem :(

Za wszelkie sugestie co dodać lub zmienić z góry dziękuję :)
User avatar
shimano73
Posts: 2174
Joined: Sun Feb 28, 2016 12:27 pm
Location: Orzesze
Been thanked: 1 time

Post

Moja sugestia , zamiast wemos'a użyć esp-12 zajmuje mniej miejsca . Co prawda pozbędziesz się usb ale jak raz zaprogramujesz to szybko nie będziesz zmieniał, a nawet jeśli no to podłączysz się pod tx/rx przez RS'a
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie

Wezmę udział w Supla Offline Party 2024 :)
User avatar
wojtas567
Posts: 2334
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Post

Zbieram się do takiej listwy już jakiś czas ale brakowało mi właśnie tej bazy, tu widzę że jest sporo miejsca nawet na duże przekazniki.
Diody sygnalizacyjne możesz dołożyć przy przekaźnikach. A co do przełączników to zależy gdzie ta listwa będzie lezala, bo jak za meblami to i tak nie sięgniesz recznie.
Pozdrawiam
Wojtek
Sibikk
Posts: 366
Joined: Mon Nov 07, 2016 12:42 pm
Location: Katowice

Post

Jak ktoś na auchana blisko to podobno mają ciekawą listwę po taniości
https://www.pepper.pl/promocje/przeduza ... azd-104264
Image
wrobel111
Posts: 62
Joined: Tue Jun 05, 2018 6:13 pm

Post

wojtas567 wrote: Tue Sep 18, 2018 6:07 pm Zbieram się do takiej listwy już jakiś czas ale brakowało mi właśnie tej bazy, tu widzę że jest sporo miejsca nawet na duże przekazniki.
Diody sygnalizacyjne możesz dołożyć przy przekaźnikach. A co do przełączników to zależy gdzie ta listwa będzie lezala, bo jak za meblami to i tak nie sięgniesz recznie.
Tak właśnie myślałem żeby diody dać równolegle do przekaźnika i wyprowadzić na obudowę.

Sibikk wrote: Wed Sep 19, 2018 9:12 am Jak ktoś na auchana blisko to podobno mają ciekawą listwę po taniości
https://www.pepper.pl/promocje/przeduza ... azd-104264
Śmiem nawet twierdzić że mogła wyjść z tej samej fabryki. Wygląda dokładnie tak samo jak ta Esperanza w wersji kolorowej tylko logo innego producenta

Return to “Projekty użytkowników”