Last Updated on 30 juli 2024 by Syds
AXA Remote Controller
Al eens eerder geprobeerd om met een breadboard, linbus chip, wemos d1 mini en wat dupont kabeltjes om mijn Axa Remote 2.0 raamopeners vanuit Domoticz te kunnen bedienen. Na diverse pogingen en configuraties en even zoveel mislukkingen het project maar gestopt. Kreeg het gewoon niet werkend.
Heb nu besloten om het wat “professioneler” op te pakken en een PCB er voor te laten maken zodat alle componenten netjes vast gesoldeerd kunnen worden. Als basis hiervoor heb ik een schema van “Galagaking” gebruikt welke je op github kunt vinden: https://github.com/galagaking/espaxa
Onderdelenlijst
Aantal | Onderdeel | Te bestellen bij | Kosten |
1 | Wemos D1 mini | www.aliexpress.com | € 2,75 |
1 | MCP2003-E/P | https://nl.rs-online.com/web/p/products/7154542/ | € 1,48 |
1 | 8-voudige IC fitting | Reichelt.nl | € 0,25 |
1 | RJ12 6P6C PCB connector | www.aliexpress.com | 1,66 (10 stuks) |
1 | 1K weerstand | www.aliexpress.com | 2,09 (100 stuks) |
2 | 4,7K weerstand | www.aliexpress.com | 2,09 (100 stuks) |
2 | 22K weerstand | www.aliexpress.com | 2,09 (100 stuks) |
2 | 47uF condensator | www.aliexpress.com | 0,76 (20 stuks) |
1 | 220uf condensator | www.aliexpress.com | 0,76 (20 stuks) |
1 | MT3608 step-up converter | tinytronics.nl | 2,00 |
1 | HLK-10M05 AC-DC Power module | tinytronics.nl | 7,00 |
1 | Apparaatsnoer | Uit rommeldoos | |
1 | 2-pair terminal block | www.aliexpress.com | 0,78 (10 stuks) |
3 | 8-pin header male | www.aliexpress.com | 2,54 (10 male en 10 female 40-pins) |
2 | 8-pin header female | ||
1 | PCB | www.pcbgogo.com | 13,86 (5 stuks) |
1 | Installatiedoos 80*80*40mm | www.2cheap.nl | 2,69 |
2-4 | Nylon hex standoff M2.5 8mm | www.kiwi-electronics.com (380 stuks) | 11,69 |
2-4 | Nylon hex boutjes M2.5 | www.kiwi-electronics.com (380 stuks) | |
2-4 | Nylon schroefjes M2.5 6mm | www.kiwi-electronics.com (380 stuks) | |
1 | Stukje plat snoer, 6 aderig | Uit de rommeldoos | |
2 | RJ12 connectors | www.kabelshop.nl (10 stuks) | 2,85 |
Benodigdheden
- Soldeerbout + tin
- Boormachine + 3mm boortje
- Schroevendraaiers
- Kniptang, combinatietang
- RJ12 Krimptang
Stap 1. PCB ontworpen
Op basis van het schema van Galagaking heb ik in Autodesk Eagle (CAD software voor het ontwerpen van PCB’s) mijn eigen versie ontworpen. Verschillen tussen mijn versie en die van Galagaking zijn dat ik de BMP280 temperatuur sensor heb weggelaten, deze was toch al optioneel en had ik functioneel gezien niet nodig. Verder heb ik male pin headers toegevoegd om de Wemos D1 mini eventueel eenvoudig te vervangen als deze onverhoopt stuk zou gaan. Tot slot heb ik een terminal block toegevoegd waarop ik het netsnoer kan vastschroeven.
Mijn schema ziet er dan als volgt uit:
Vervolgens dit schema m.b.v. Eagle vertaald naar een PCB layout:
Om er vervolgens bij een PCB fabrikant PCB’s van te kunnen laten maken moet je de PBC layout omzetten naar Gerber files. Ook daar voorziet Eagle gelukkig in.
Bovenstaande bestanden zijn allemaal te downloaden:
File | Download link |
ESP-AXA schema | https://drive.google.com/file/d/17iCXOf9cLjG3Lpdgb4l2OiBh3aCuGRlI/view?usp=sharing |
ESP-AXA board layout | https://drive.google.com/file/d/1wCj4GhY7TiSYAlz64zEiAJRm_esP_vcL/view?usp=sharing |
Gerber files | https://drive.google.com/file/d/1lJNUNVePfZpi6XMxlKLSYAB-virB7SNv/view?usp=sharing |
Stap 2. PCB’s besteld bij pbcgogo.com
De PCB’s besteld via de menuoptie “PCB Instant Quote”->”PCB Manufactoring Calculator” met de volgende instellingen:
In de volgende stap de Gerber files (gezipt) geuploaded. De gerber files worden automatisch gereviewed waarna je vervolgens de bestelling kunt afronden en betalen. Om de kosten laag te houden heb ik gekozen voor verzending via China Post. Tevens de andere onderdelen, voor zover ik ze niet op voorraad had, besteld bij Aliexpress&TinyTronics.nl.
Dit is het resultaat:
Ziet er professioneel uit toch. Paar kleine punten ter verbetering:
- De gaatjes voor de weerstanden zitten wel heel dicht op elkaar, bij het maken van een volgend ontwerp iets bredere layout kiezen.
- Daarentegen zijn de gaatjes voor de condensators weer heel wijd van elkaar geplaatst, bij het maken van een volgende ontwerp iets smallere layout kiezen.
- Bij condensator C3 is een type-foutje er in geslopen, moet zijn 220nF.
- Gaten voor monteren in de installatiedoos had iets groter gekund, past nu nauwlijks een M2.5 boutje door
Stap 3. Raamopener toevoegen aan Domoticz
Kies binnen Domoticz voor Instellingen->Hardware en selecteer bij de plugin Virtuele sensoren voor de optie Maak virtuele sensoren . Het volgende scherm verschijnt:
Geef het device een zinvolle naam, en kies voor Sensor Type : Keuzeschakelaar. Het virtuele device wordt aangemaakt. Kies nu voor Schakelaars en zoek het net aangemaakte device op, waarschijnlijk staat die helemaal onderaan.
Klik op Aanpassen , het volgende scherm verschijnt:
Vul hier de volgende (niet default) waarden in:
Attribuut | Waarde | Toelichting |
Naam | Zinvolle naam | |
Schakelaar Type | Selector | Biedt een meerkeuze optie |
Schakelaar Icoon | Kies een betekenisvol icoon | Zie https://www.domoticz.com/wiki/Custom_icons_for_webinterface |
Keuzeniveaus | 10 Open 20 Stop 30 Close | AXA Remote commando’ s |
Selectie acties | http://<hostname>/cm?cmnd=Backlog%20SSerialSend3%20%22%5Cr%22%3B%20SSerialSend3%20%22OPEN%5Cr%22 http://<hostname>/cm?cmnd=Backlog%20SSerialSend3%20%22%5Cr%22%3B%20SSerialSend3%20%22STOP%5Cr%22 http://<hostname>/cm?cmnd=Backlog%20SSerialSend3%20%22%5Cr%22%3B%20SSerialSend3%20%22CLOSE%5Cr%22 | URL s van AXA Remote commando s, vul voor hostname de door jou gekozen hostname in (zie ook de volgende stap). |
In mijn geval ziet het er dan zo uit:
En de schakelaar:
Noteer de IDX van je device, die heb je nodig in een volgende stap.
Stap 4. Tasmota op Wemos D1 flashen en configureren
Sluit de Wemos D1 mini met een USB kabel aan op een vrije COM-poort van je laptop of desktop. We gebruiken de online installer om de nieuwste versie van Tasmota op de Wemos te installeren. Open in je browser https://tasmota.github.io/install/, het volgende scherm verschijnt:
Druk op de knop “CONNECT” en selecteer de COM poort waarop je de Wemos D1 hebt aangesloten, en klik op “Verbinding maken”:
Kies vervolgens “INSTALL TASMOTA (ENGLISCH)”:
Vink vervolgens de vinkbox “Erase device” aan om de Wemos D1 volledig leeg te poetsen, en klik op “NEXT”:
En confirmeer dat je de installatie wil starten door op “INSTALL” te klikken:
En het installatie proces begint, wacht tot de melding “Installation complete!” verschijnt en klik op “NEXT”:
Vervolgens kun je de WIFI connectie configureren, kies je WIFI-netwerk, vul het password in en klik op “CONNECT”:
De Wemos D1 maakt nu verbinding met je WIFI-netwerk, door op “VISIT DEVICE” te klikken opent de Web-UI van Tasmota:
Nu gaan we Tasmota dusdanig configureren dat hij:
- Een software matige seriële connectie kan maken met de MCP2003;
- Een verbinding maakt met de MQTT, SYSLOG en NTP (tijd) servers;
- Om de 5 minuten een status update doorgeeft;
Kies binnen het hoofdmenu voor “Configuration”, en daarna voor “Configure Module”. Selecteer Module type “Generic (0)” en klik op “Save”. De Wemos reboot en je keert terug op het hoofdmenu:
We gaan nu de Wemos D1 een nette naam geven. Kies binnen het hoofdmenu voor “Configuration”, en daarna voor “Configure WiFi”. Vul bij Hostname een nette naam in, ik heb gekozen voor “Raamopener-Links” (en heb uiteraard ook een exemplaar voor midden en rechts gemaakt), klik daarna op “Save”. De Wemos reboot en je keert terug op het hoofdmenu:
Nu gaan we de Wemos D1 aansluiten op de MQTT server. Kies binnen het hoofdmenu voor “Configuration”, en daarna voor “Configure MQTT” en vul bij “Host” de FQDN-naam of het IP-address van je MQTT-server. In mijn geval is dat 192.168.2.29. Klik daarna op “Save”. De Wemos reboot en je keert terug op het hoofdmenu:
Optioneel kun je de SYSLOG server configureren om centraal de logging van Tasmota te kunnen inzien, zie ook mijn tutorial over het inrichten van een syslog server https://www.sydspost.nl/index.php/2021/07/24/syslog-server-inrichten/. Kies binnen het hoofdmenu voor “Configuration”, en daarna voor “Configure Logging”. Vul bij “Syslog host” de FQDN-naam of het IP-address van je syslog server in. In mijn geval is dat 192.168.2.29. Klik op “Save” en je keert terug in het submenu “Configuration”. De Wemos reboot en je keert terug op het hoofdmenu:
Tot slot gaan we de softwarematige seriële poort configureren. Kies voor “Configure Template”. We gebruiken GPIO12 als RX poort, en GPIO13 als TX poort. Kies bij GPIO12 voor de waarde “SerBR RX” en bij GPIO13 voor “SerBR TX”. Vervolgens gaan we 3 GPIO’s gebruiken als “virtuele” relays, deze worden dan als knoppen zichtbaar in de WebUI van Tasmota. Gebruik GPIO0 als Relay(1), GPIO1 als Relay(2) en GPIO2 als Relay(3). Klik op “Save”. De Wemos reboot en je keert terug op het hoofdmenu:
De overige configuratie doen we via de Console van Tasmota. Kies binnen het hoofdmenu voor “Console:
Knip-en-plak achtereenvolgens de volgende commando’s in het “enter command” veld, en druk per commando op “enter” om ze te starten.
SerialDelimiter 128
Rule1 ON System#Boot DO Backlog SSerialConfig 8N2; SBaudrate 19200; SSerialSend3 “\r”; SSerialSend3 "STATUS\r" ENDON
Rule2
ON Time#Minute|5 DO BACKLOG SSerialSend3 “\r”; SSerialSend3 "STATUS\r" ENDON
ON Power1#State=1 DO SSerialSend3 “\r”; SSerialSend3 "OPEN\r" ENDON
ON Power2#State=1 DO SSerialSend3 “\r”; SSerialSend3 "STOP\r" ENDON
ON Power3#State=1 DO SSerialSend3 “\r”; SSerialSend3 "CLOSE\r" ENDON
Rule3
ON SSerialReceived#Data=210 UnLocked DO Publish domoticz/in {"command": "udevice", "idx": <IDX>, "nvalue" : 0, "svalue" : "0", "parse": false} ENDON
ON SSerialReceived#Data=211 Strong Locked DO Publish domoticz/in {"command": "udevice", "idx": <IDX>, "nvalue" : 0, "svalue" : "20", "parse": false} ENDON
ON SSerialReceived#Data=212 Weak Locked DO Publish domoticz/in {"command": "udevice", "idx": <IDX>, "nvalue" : 0, "svalue" : "20", "parse": false} ENDON
Rule1 1
Rule2 1
Rule3 1
NtpServer1 192.168.2.29
Backlog Latitude 53.12545297000464; Longitude 5.58380126953125; TimeDST 0,0,3,1,1,120; TimeSTD 0,0,10,1,1,60; TimeZone 99
backlog switchmode1 13; switchmode2 13; switchmode2 13; pulsetime1 1; pulsetime2 1; pulsetime3 1; Webbutton1 OPEN; Webbutton2 STOP; Webbutton3 CLOSE;
Toelichting:
- SerialDelimiter 128 schakelt de escape karakters Cariage Return (\r) en Newline (\n) uit in de respons vanuit de AXA op het statusupdate verzoek
- rule 1 zorgt er voor dat na een reboot de software seriële poort geconfigureerd wordt én er een statusupdate van de AXA gevraagd wordt
- rule 2 zorgt er voor dat er iedere 5 minuten een statusupdate gevraagd wordt aan de AXA, deze wordt vervolgens gepubliceerd via MQTT. Dit zorgt ervoor dat indien de raamopener met de afstandsbediening wordt bediend, de status binnen Domoticz gesynchroniseerd wordt.
- rule 3 verwerkt de statusupdate vanuit de AXA in een MQTT bericht voor Domoticz. Verander <IDX> in de IDX die je in stap 3 hebt genoteerd
- de drie rules worden geactiveerd
- De FQDN of het IP-address van de NTP server wordt ingesteld, in mijn geval 192.168.2.29
- De juiste tijdzone wordt ingesteld
- De knoppen in de WebUI van Tasmota worden geconfigureerd
Tasmota is nu volledig geconfigureerd en de Wemos D1 klaar voor gebruik.
To do:
- Aansturen Tasmota middels MQTT
Stap 5. AXA Remote printplaat van componenten voorzien
Als het goed is reageert de Wemos D1 mini in de Serial monitor van Arduino IDE met het commando OPEN. Op dezelfde wijze kun je ook /stop en /close testen. Nadat we in de volgende stap de verschillende componenten op de AXA Remote printplaat hebben gesoldeerd kunnen het /status commando testen.
We beginnen uiteraard met de kale printplaat en de verschillende componenten:
Eerst solderen we hier de weerstanden R1, R2, R3, R4 en R6 op, en de consensatoren C1, C2 en C3. Even op een rijtje:
- R1: 22K Ohm weerstand
- R2: 22K Ohm weerstand
- R3: 4.7K Ohm weerstand
- R4: 1K Ohm weerstand
- R6: 4.7K Ohm weerstand
- C1: 47uF ELCO
- C2: 47uF ELCO
- C3: 220nF keramische condensator
Tussenresultaat:
Daarna zijn de headers en IC fitting aan de beurt, even op een rij:
- U2: 8-voudige IC fitting
- SV3 en SV4: 8 voudige male header
- U$1: 1 voudige male header op IN + en -, en OUT + en –
Tussenresultaat:
Daarna voeding, step-up converter en terminal voor de 230v aansluiting. Op een rij:
- U$2: 2 voudige terminal
- U$1: MT3608 Step-up converter
- HLK10M05: HLK10M05
Let op dat je de step-up converter op de juiste wijze plaatst, dus VIN+ en VIN- op IN+ en IN-, VOUT+ en VOUT- op OUT+ en OUT-.
En tot slot de RJ12 connector en de Wemos D1 mini. Wacht nog even met MCP2003-E/P in de IC fitting te plaatsen, eerst gaan we step-up converter nog instellen zodat deze 8v afgeeft. Let erop dat je de Wemos D1 mini op de juiste wijze op de headers plaatst, dus met de USB-aansluiting naar de rand van de printplaat toe. Sluit een apparaatsnoer aan op de terminal, rechts de fase, links neutraal en pak een heel klein platte schroevendraaier.
<<Let op, wees voorzichtig, 230v kan levensgevaarlijk zijn !!>> Stop de stekker in het stopcontact en meet met een multimeter de voltage tussen de OUT+ en OUT- van de step-up converter. Draai het kleine schroefje op de Bones 3288 potentiometer van de step-up converter naar links of naar rechts totdat je een voltage van 8v meet.
Plaats nu de MCP2003-E/P in de IC fitting, let er goed op dat de uitholling in de bovenkant van de IC overeenstemt met de uitholling in de IC fitting. Het eindresultaat ziet er dan als volgt uit:
Stap 6. RJ12 kabel maken
Benodigd:
- stukje plat 6-aderig snoer, 20cm is voldoende
- 2 RJ12 connectoren
- RJ12 krimptang
Strip met behulp van de krimptang het stukje snoer aan beide kanten, steek de RJ12 connectoren erop zodat er een recht-toe-recht-aan verbinding ontstaat. Knijp de RJ12 connectoren met de krimptang stevig op het snoer.
Stap 7. Assembleren
De PCB monteren we vervolgens in de installatiedoos van 80x80x40mm. Haal het deksel van de installatiedoos en verwijder alle wartels. Plaats de PCB in de installatiedoos en teken de gaatjes van de PCB af op de bodem van de installatiedoos (in de PCB zitten vier gaatjes, 2 volstaan echter). Boor met een 3mm boortje gaatjes in de bodem van de installatiedoos.
Duw vervolgens twee hex standoff van binnenuit door de bodem en schroef hier een boutje op. Plaats de PCB op de standoff’s en teken het gat van de RJ12 jack af. Zaag met het losse zaagblad van een ijzerzaagje het gat van de RJ12 jack uit de zijkant van de installatiedoos.
Haal het netsnoer door het uitgezaagde gat en schroef vast op de terminal, let goed op de fase (bruin, rechts) en neutraal (blauw, links). Schroef de PCB met twee schroefjes vast in de installatiedoos. Sluit de niet gebruikte gaten af met de rubberen wartels. Plaats het deksel en sluit het RJ12 kabeltje aan.
Je bent nu klaar om de AXA raamopener conform de bijgevoegde handleiding op het kozijn en raam te bevestigen. Na het monteren van de AXA raamopener breek je een hoekje uit de linkerkant van de witte “kap” van de raamopener.
Sluit de RJ12 kabel aan op de AXA raamopener, geleid de draad onder het haakje door en plaats de witte kap op de AXA raamopener. Sluit het netsnoer aan op het stroomnet. Ta da !, je bent klaar. Veel plezier met je doormiddel van Domoticz aan te sturen AXA raamopener.
Ik zou wel adviseren geen lood finish te nemen. Deze voldoet niet aan europese regelgeving RoHS.
Sebas, dank, dat wist ik niet. Zal hier in het vervolg rekening mee houden wanneer ik PCB’s bestel in China. Ben overigens van plan om zelf BCB’s te gaan maken. Leuk experiment voor komende winter. Heb overigens de aansturing van de AXA nog niet werkende. Verdenk de MCP2003, heb die waarschijnlijk beschadigd bij eerdere pogingen. Overigens 3 exemplaren geproduceerd, geen van allen gaf een werkend resultaat. Dus kan ook een andere oorzaak hebben.
Beste Syds,
Kan het zijn dat jij geen softserial hebt geïnstalleerd en daarmee de verkeerde pin (D6 en D7) gesoldeerd hebt (en niet Tx en Rx)?
Als ik kijk naar de code van ESPAXA wordt daar aangegeven dat ze specifiek een uart op D6 en D7 hebben. Verder zat ik ook te kijken naar Remote 2.0 bedienen / klimaat regeling (homey) en ook hier geven ze in de code aan welke pin ze gebruiken in een stuk code (in dit geval een softserial).
Dus ik denk dat het probleem ligt in het feit dat je Tx en Rx niet hebt gesoldeerd of dat je in de code nog moet aangeven dat D6 (GPIO12) en D7 (GPIO13) als serial port fungeren.
zou dit kunnen werken?
#include
#include
#include
#include
#include
#include “arduino_secrets.h”
#include “config.h”
;int Debug = 0; // 1: Debug on, 0: Debug off
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
// Start HttpClient
HTTPClient http;
SoftwareSerial softSerial(12, 13); // RX = D6, TX = D7 Verbind deze pinnen met de linbus converter
void setup() {
// Initialiseer seriële communicatie via usb poort en voor linbus controller
Serial.begin(115200); //Initialiseer serial port via usb
softSerial.begin(19200, SWSERIAL_8N2); // Initialiseer software serial port voor linbus
// Connect to WiFi network
WiFi.mode(WIFI_STA);
WiFi.hostname(sHostname.c_str());
WiFi.setHostname(sHostname.c_str());
WiFi.begin(ssid, pass);
if (!MDNS.begin(sHostname.c_str()) && Debug == 1) {
Serial.println(“Error setting up MDNS responder!”);
}
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
// Start the server
server.begin();
}
void loop() {
Damien,
Dat van SoftwareSerial had ik zelf ook al ontdekt, en de code daarop aangepast (maar nog niet in m’n blog verwerkt, nu wel). Maar nog steeds werkt het bij mij niet. Zie het groene statuslampje van de AXA wel even knipperen als ik bijv. het close commando stuurt, maar daar blijft het ook bij. Krijg het niet werkend, maar blijf proberen.
Syds
achter de #include moet nog . komen te staan, maar dat viel weg.
Een van mijn AXA raamopeners werkte niet meer op de afstandsbediening. Daarom deze gisteren omgewisseld met de spare die ik gebruikte om mijn electronica en software te testen. Voor de gein die “defecte” raamopener aangesloten op de ESP-AXA PCB, en tot mijn grote verbazing werkte dat meteen. Dus al die tijd heb ik lopen klooien met een raamopener waar waarschijnlijk de RJ12 aansluiting niet goed werkte.
Vandaag de code voor het verzenden van statusupdates naar Domoticz verder uitgebreid en getest en aan het eind van de dag de hele boel kunnen assembleren en installeren bij één van mijn ramen. Een andere ESP-AXA PCB die ik al klaar had gemaakt ook voorzien van de nieuwe software. Deze zal ik morgen bij een ander raam plaatsen.
Voor het derde raam moet ik nog wat onderdelen bestellen, de onderdelen die ik besteld had heb ik intussen voor andere projecten gebruikt ;-(
Heb je nog een print over?
Heb er nog 2