DIY domotica multisensor < €15: ™sense

Door Thijsmans op woensdag 6 februari 2019 22:30 - Reacties (19)
Categorie: -, Views: 4.108

De Bruh Automation DIY multi-sensor voor $ 15,00 mag na bijna twee jaar bij elke Tweaker bekend worden verondersteld. Maar een 3d-geprinte behuizing die je aan een USB-lader hangt? Tsja, voor vast gebruik is het gewoon niet praktisch genoeg. Ik wil iets met een 220V stekkerbehuizing! En... dat heb ik nu! In deze tweakblog een verslag over mijn multisensor, die ik heel narcistisch tot "™sense" heb gedoopt :+ De sensor werkt met ieder platform dat MQTT-integratie biedt (waaronder Home Assistant, waarvoor ik de benodigde YAML hieronder ook deel).

Hieronder zal ik achtereenvolgens ingaan op:
  • de behuizing;
  • de componenten;
  • de assemblage;
  • de code;
  • de YAML-config voor Home Assistant;
  • en tot slot een vooruitblik.


Behuizing
Bij de Action zag ik voor € 9,95 een vier-delige 433MhZ schakelset. Nu wil ik niets met die 433MhZ-schakelaar, maar voor € 3,35 per stuk (de afstandsbediening tel ik niet mee) ziet de behuizing er erg strak uit! En als ik hier de multisensor in zou kunnen bouwen, heb ik er nog een werkend stopcontact aan ook.

Schakelset Action

Componenten
Een multisensor moet naar mijn smaak in elk geval drie dingen kunnen: beweging, temperatuur en luchtvochtigheid meten. En omdat de behuizing van een stekkerschakelaar is, is schakelen ook mooi meegenomen. De componenten moeten natuurlijk ook worden uitgelezen, dus een microprocessor is onontkoombaar. De componenten werken tot slot niet op 230V wisselspanning, dus er moet een step-down converter in. Dat brengt mij tot het volgende boodschappenlijstje:
  • HLK-PM03 230V AC > 3.3V DC step down buck converter;
  • Wemos D1 mini;
  • PIR-sensor AM312 (bestand tegen de wifi-signalen, die bij andere sensoren tot vals-positieven leiden);
  • DHT22-sensor (temperatuur en luchtvochtigheid);
  • Solid state relais G3MB-202P (2A @ 230V; dus max. 460W - een "full blown" 10A relais kreeg ik er niet in gepast).
Bestel je deze onderdelen via AliExpress bij ModuleFans (waar ik herhaaldelijk uitstekende ervaringen mee heb), dan kost dit op het moment van schrijven:

- $ 2,24 voor de step down converter;
- $ 4,86 voor de Wemos D1 mini;
- $ 1,06 voor de AM312 PIR-sensor;
- $ 2,87 voor de DHT22-sensor;
- $ 0,84 voor het SSR.

Tel gemakshalve nog $ 1,00 erbij voor een stukje printplaat en wat bedrading uit voorraad, en je komt uit op $ 12,87, ofwel € 11,28. Inclusief de € 3,35 voor de behuizing kost de sensor dus € 14,63 - niet slecht!

Assemblage
  1. De schakelstekker is afgedicht met twee tri-wing schroeven, die je met een gewone spanningszoeker open krijgt;
  2. De-soldeer de 230V-bedrading en trek daarna de originele print eruit;
  3. Vervolgens zaag je een stukje printplaat op maat, waar de componenten op komen;
  4. In de achterkant van de behuizing boor je een 6mm-gaatje voor de bedrading van de DHT22-sensor (die het beste aan de buitenkant zit, om geen last te hebben van eventuele warmte van de componenten). De sensor kun je met hot glue op de achterkant bevestigen. Ik heb daarbij een millimeter ruimte opengehouden om opwarming door contactwarmte te voorkomen. De bekabeling heb ik extra geisoleerd met een krimpkous omdat deze in de buurt komt van 230V;
  5. Het venstergaatje in de voorkant van de behuizing is een mooie plek voor de PIR-sensor, en kan eenvoudig worden uitgeboord totdat de sensor erin kan worden geklemd;
  6. En dan begint het puzzelen met de onderdelen op de printplaat.
Om de Wemos D1 mini te laten passen, heb ik gebruik gemaakt van haakse pin-headers. Daardoor kan de D1 op zijn kant in de behuizing - dit past nét, mits de pin-headers aan de onderkant van de printplaat worden gesoldeerd.

De PIR-sensor en DHT22 werken op 3,3V en sluit je dus aan op de 3,3V output van de buck converter (net als de D1 mini). De data-lijn van de DHT22 sluit je aan op D6, die van de PIR op D7 en de + van de SSR sluit je aan op D8. De - verbind je direct met de Ground van de buck converter.

De 230V-bedrading van de schakelbehuizing bestaat uit drie rode draden. In de onderstaande foto's is een draad vervangen voor een blauwe, omdat die beschadigd is geraakt. De blauwe draad verbind je met een van de AC-inputs van de buck-converter. De lange rode draad (rechts) verbind je met de andere input van de buck-converter. Vanaf daar trek je deze draad door naar de schakel-input van het SSR. De korte rode draad is de te schakelen draad, en die verbind je dus met de schakel-output van het SSR.

Als alle stappen succesvol zijn doorlopen, ziet dat er zo uit:

https://tweakers.net/ext/f/TTj83tFsrv3kQjyoNxZSVMnb/thumb.pnghttps://tweakers.net/ext/f/vQe6HkQx0Tfqj32hU0tOz7cb/thumb.pnghttps://tweakers.net/ext/f/76aXebWxXyHMG5xwniWvS1oN/thumb.pnghttps://tweakers.net/ext/f/kJVBordjrAGhD7STqg9Vvr0x/thumb.png


Code
Scripttaal van de dag is Javascript, draaiend op de Espruino firmware die eenvoudig op de D1 mini is te flashen. Javascript tikt heerlijk weg, er zijn tal van modules om sensoren uit te lezen of aan te sturen en de Web-IDE is onovertroffen. De wellicht ietwat over-gedocumenteerde code luidt als volgt:


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
    /*
        TMsense Multisensor v1.0

        De TMsense gaat uit van drie actoren:

        - Een DHT22-sensor (temperatuur en luchtvochtigheid);
        - Een PIR-sensor (AM312, wordt niet gestoord door wifi-signalen!);
        - Een solid state relais / ssr (G3MB-202P).

        De waardes van de DHT22-sensor worden gepublisht als JSON met de 
        properties "temp" en "hum". Bij beweging van de PIR-sensor wordt de 
        payload "ON" dan wel "OFF" gepublisht. Ook voor de SSR worden "ON" 
        en "OFF" gebruikt als trigger. Dit zijn de standaard payloads vanuit 
        Home Assistant en hoeven dus niet in de YAML-config opgegeven te worden.
    */

    /*
        Config van pin-out; de Wemos D1 Mini gebruikt dezelfde pin-mapping 
        als de NodeMCU-bordjes, waarvoor een pin-mapping-class bestaat.
    */
    const pin_dht = NodeMCU.D6;
    const pin_pir = NodeMCU.D7;
    const pin_ssr = NodeMCU.D8;

    /*
        MQTT config; default zijn geen user en pass vereist.
    */
    const mqtt_host = 'Jouw MQTT broker';
    const mqtt_client = 'esp-' + getSerial() + '-' + Math.ceil( Math.random() * 1000 );
    const mqtt_user = undefined;
    const mqtt_pass = undefined;

    const mqtt_topic_dht = 'home/first_floor/bedroom/dht';
    const mqtt_topic_pir = 'home/first_floor/bedroom/pir';
    const mqtt_topic_ssr = 'home/first_floor/bedroom/outlet';

    /*
        Config voor wifi
    */
    const wifi_ssid = 'Wifi SSID';
    const wifi_pass = 'Wifi Passwd';

    /*
        Config voor temperatuur en relatieve luchtvochtigheid. 
        De multisensor werkt met gemiddelden om foutieve uitschieters
        te voorkomen. De verzonden waardes zijn te fine-tunen met:

        - dht_itv = de interval tussen twee metingen in secondes (30 = 30 sec);
        - dht_avg = aantal te middelen metingen.

        De overige dht_variabelen niet aanpassen; deze gaan de verzamelde 
        data bevatten.
    */
    var dht_itv  = 30; 
    var dht_avg  = 10;
    var dht_temp = [];
    var dht_hum  = [];
    var dht_itv_id = undefined;
    var dht_prev_temp = 0;
    var dht_prev_hum  = 0;

    /*
        Functie om van een nummerieke array het gemiddelde te berekenen
    */
    function avg( arr ) {
        var sum, avg = 0;
        if (arr.length) {
            sum = arr.reduce(function(a, b) { return a + b; });
            avg = sum / arr.length;
        }
        return Math.round( avg * 10 ) / 10;
    }

    /*
        De MQTT-class wordt hier klaargemaakt, maar er wordt nog geen 
        verbinding gemaakt (er moet immers eerst wifi zijn). Om het SSR
        te schakelen, wordt geluisterd naar het hierboven gedefinieerde 
        topic (mqtt_topic_ssr), waarbij de payload "ON" inschakelt en 
        al het overige uit. De payload kun je zo nodig hieronder aanpassen.

        Als de verbinding met de MQTT-server kort wegvalt, wordt na vijf 
        seconden opnieuw verbonden (met een nieuwe client-id omdat de server
        de verbinding weigert als ie nog niet heeft bemerkt dat de oude 
        verbinding verbroken is). Bij langere disconnects zorgt de 
        interval onderaan dat in elk geval elke minuut opnieuw wordt 
        verbonden (door een totale reboot van de sensor).
    */
    var mqtt = require("MQTT").create( mqtt_host, 
            { client_id: mqtt_client, username: mqtt_user, password: mqtt_pass } 
        );

    mqtt.on('connected', function () {
        mqtt.subscribe( mqtt_topic_ssr );
    });

    mqtt.on('message', function (t, msg) {
        if( t == mqtt_topic_ssr )
            digitalWrite( pin_ssr, msg == 'ON' );
    });

    mqtt.on('disconnected', function () {
        mqtt.client_id = 'esp-' + getSerial() + '-' + Math.ceil( Math.random() * 1000 );
        setTimeout( function () {
            mqtt.connect();
        }, 5000);
    });

    /*
        Verbinden met wifi, en als dan, met MQTT-server
    */
    var wifi = require("Wifi");
    wifi.connect( wifi_ssid, { password: wifi_pass }, 
            function (err) { 
                if( ! err ) mqtt.connect(); 
            }
        );

    /*
        Watch op de PIR-pin, die "on" publisht bij beweging en "off" 
        bij het verlies van de beweging. De AM312 heeft geen vaste of 
        instelbare schakeltijd: beweging = aan en anders niet.
    */
    setWatch( function (e) {
            mqtt.publish( mqtt_topic_pir, e.state === true ? 'ON' : 'OFF' );
        }, 
        pin_pir, 
        { repeat: true, debounce: 25, edge: 'both' }
    );

    /*
        Maak verbinding met de DHT22-sensor en start een interval 
        die metingen toevoegt aan de array (dht_temp[] en dht_hum[]), en 
        bij gewijzigde gemiddeldes, de nieuwe waarde publisht.
    */

    var dht = require("DHT22").connect( pin_dht );
    dht_itv_id = setInterval( function () {

        dht.read( function (r) {

            dht_temp.push( r.temp );
            dht_hum.push( Math.ceil(r.rh) );

            if( dht_temp.length > dht_avg ) dht_temp.shift();
            if( dht_hum.length > dht_avg )  dht_hum.shift();
        });

        if( mqtt.connected )
        {
            curr_temp = avg( dht_temp );
            curr_hum  = Math.ceil( avg( dht_hum  ) );

            if( curr_temp != dht_prev_temp || curr_hum != dht_prev_hum )
            {
                mqtt.publish( mqtt_topic_dht, 
                              JSON.stringify( { temp: curr_temp, hum: curr_hum}),
                              { retain: true } 
                    );
                
                dht_prev_temp = curr_temp;
                dht_prev_hum  = curr_hum;
            }
        }

    }, dht_itv*1000);

    /*
        Interval voor het geval de verbinding met de MQTT-server
        duurzaam verbroken wordt: volledige reboot.
    */
    var reboot_itv = setInterval( function () {

        if( ! mqtt.connected || process.memory().free < 250 )
            require("ESP8266").reboot();

    }, 60000);



YAML-config (Home Assistant)

Als je de sensor wilt integreren in Home Assistant, kan dat met deze YAML:

configuration.yaml (voor zover niet al daarin vermeld)
YAML:
1
2
3
sensor: !include sensors.yaml
binary_sensor: !include binary-sensors.yaml
switch: !include switches.yaml



binary-sensors.yaml
YAML:
1
2
3
4
5
- platform: mqtt
  state_topic: "home/first_floor/bedroom/pir"
  name: "tmsense_pir"
  device_class: "motion"
  retain: true



sensors.yaml
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
- platform: mqtt
  name: "tmsense_humidity"
  state_topic: "home/first_floor/bedroom/dht"
  value_template: '{{ value_json.hum }}'
  device_class: "humidity"
  unit_of_measurement: '%'

- platform: mqtt
  name: "tmsense_temperature"
  state_topic: "home/first_floor/bedroom/dht"
  value_template: '{{ value_json.temp }}'
  device_class: "temperature"
  unit_of_measurement: '°C'



switches.yaml
YAML:
1
2
3
4
- platform: mqtt
  name: "tmsense_switch"
  command_topic: "home/first_floor/bedroom/outlet"
  retain: true



customize.yaml
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
binary_sensor.tmsense_pir:
  friendly_name: "Beweging"

sensor.tmsense_temperature:
  friendly_name: "Temperatuur"

sensor.tmsense_humidity:
  friendly_name: "Luchtvochtigheid"

switch.tmsense_switch:
  friendly_name: "Schakelaar"
  assumed_state: false



groups.yaml
YAML:
1
2
3
4
5
6
7
tm_sense:
  name: "(tm) Sense"
  entities:
    - binary_sensor.tmsense_pir
    - sensor.tmsense_temperature
    - sensor.tmsense_humidity
    - switch.tmsense_switch



Heb je de YAML goed overgenomen (en de group toegevoegd aan een view), dan is dit het eindresultaat :)

https://tweakers.net/ext/f/CcZsnNkLu6CFwfhmEibzjRKM/full.png

v2.0?
Wat staat er in de toekomst nog op het programma? Ik wil graag met bijvoorbeeld Fritzing een PCB ontwerpen en die professioneel laten afdrukken. Misschien met een tactile switch op de achterkant van de behuizing, om het SSR handmatig te kunnen schakelen. De "echte" uitvoering met nette PCB zal in elk geval een "losse" DHT22 (niet de breakout versie) huisvesten. En misschien iets doen met de ingebouwde led (op pin NodeMCU.D4, waarbij de led brandt als de pin laag staat).

Verder houd ik mij aanbevolen voor tips en ervaringen voor een nieuwe revisie!

Volgende: Espruino firmware @ ESP8266 flashen 04-03 Espruino firmware @ ESP8266 flashen

Reacties


Door Tweakers user Kenhas, donderdag 7 februari 2019 08:26

Verdorie, wat ben ik jaloers op mensen die met zo'n dingen spelen. Het lijkt allemaal zo simpel maar dit zou me nooit lukken.

Maar ik ga het wel eens proberen. Kleine variant op wat jij hier gemaakt hebt. Bewegingsmelder voor buiten, die verbonden is met wifi om verlichting te schakelen. Op die locatie enkel 220V beschikbaar.

En voor de belachelijk lage prijzen mag ik er al eens eentje om zeep helpen ;)

Zijn projecten zoals dit, met net dat ietsje meer uitleg, die me ertoe aanzetten om het toch eens te proberen.

Kom maar op met nieuwe projectjes :9~


Door Tweakers user Thijsmans, donderdag 7 februari 2019 09:48

Kenhas schreef op donderdag 7 februari 2019 @ 08:26:
Verdorie, wat ben ik jaloers op mensen die met zo'n dingen spelen. Het lijkt allemaal zo simpel maar dit zou me nooit lukken.
Het lijkt misschien simpel, maar op het geheel bezien (kennis en kunde) heeft het een aanloop gehad. Laat ik het zo zeggen: je leert het meest van dingen die gruwelijk fout gaan :+ Er zijn de afgelopen jaren heel wat sensoren in de prullenbak beland. Bij dit specifieke project viel alles op zijn plek toen ik ontdekte dat een solid state relais veel kleiner is dan een "gewoon" relais. Toen paste ineens alles in de behuizing, en ja, dan lijkt alles ineens heel simpel.
Maar ik ga het wel eens proberen. Kleine variant op wat jij hier gemaakt hebt. Bewegingsmelder voor buiten, die verbonden is met wifi om verlichting te schakelen. Op die locatie enkel 220V beschikbaar. En voor de belachelijk lage prijzen mag ik er al eens eentje om zeep helpen ;)
Alleen 220V? Als je 220V/230V hebt, maak je daarvan toch ook alles dat daaronder zit? Ik zou voor buiten niet de AM312-sensor nemen. Op 3.3V of 5V is het bereik daarvan te beperkt voor buiten. Kijk eens naar het bereik van een 12V sensor. Niet direct 12V aan je GPIO's hangen (dan komt de "magic smoke" vrij), gebruik een logic level converter :o
Kom maar op met nieuwe projectjes :9~
Mag ik ook een oud project hervatten? Want er ligt iets te verstoffen :)
Thanks :)

Door Tweakers user ImaPseudonym, donderdag 7 februari 2019 10:03

Mooi projectje! Is gebookmarked voor als er weer wat meer tijd is.

Door Tweakers user Kenhas, donderdag 7 februari 2019 10:55

Het lijkt misschien simpel, maar op het geheel bezien (kennis en kunde) heeft het een aanloop gehad. Laat ik het zo zeggen: je leert het meest van dingen die gruwelijk fout gaan :+ Er zijn de afgelopen jaren heel wat sensoren in de prullenbak beland. Bij dit specifieke project viel alles op zijn plek toen ik ontdekte dat een solid state relais veel kleiner is dan een "gewoon" relais. Toen paste ineens alles in de behuizing, en ja, dan lijkt alles ineens heel simpel.
Daarom het voordeel dat die dingen maar paar euro kosten ;)
Alleen 220V? Als je 220V/230V hebt, maak je daarvan toch ook alles dat daaronder zit? Ik zou voor buiten niet de AM312-sensor nemen. Op 3.3V of 5V is het bereik daarvan te beperkt voor buiten. Kijk eens naar het bereik van een 12V sensor. Niet direct 12V aan je GPIO's hangen (dan komt de "magic smoke" vrij), gebruik een logic level converter :o
Het idee was om meer dan 5V te gebruiken. Had wel een bepaald plan in mijn hoofd maar wist gewoon niet hoe ik er aan moest beginnen. Jouw blogpost is wel een goed uitgangspunt.
Dat plan was eigenlijk "gewoon" PIR, wifi en een "manier om het voltage juist te krijgen". Erg professioneel plan dus ;)
Maar qua wifi modules zag ik door de bomen het bos niet meer. Als ik dan lees wat iemand, die kennis van zaken heeft, gebruikt, dan is dat toch een stap in de juist richting.
Mag ik ook een oud project hervatten? Want er ligt iets te verstoffen :)
Ik zou iets erg vrouwonvriendelijk kunnen antwoord hierop maar zal dat maar laten :X

Door Tweakers user -36-, donderdag 7 februari 2019 21:25

Leuk projectje. Ervan uitgaande dat ze die set nog steeds hebben bij de Action en je er intresse in hebt natuurlijk kan ik er met Kicad wel een PCBtje voor maken (werkt beter dan Fritzing)

Door Tweakers user Hkuit, vrijdag 8 februari 2019 11:17

Mooi, zeker voor een eerste blog (toch?).
Rechtsboven onder About lees ik als laatste zin "...maar als verslaglegging voor de mensheid. Do not try this at home!"
Dat laatste lijkt me jammer, het is toch juist wel de bedoeling dat wij dit 'at home' ook gaan proberen? Of is het zo'n soort Amerikaanse waarschuwing, zo van 'ik heb dit gemaakt en het werkte, uiteindelijk, maar in vredesnaam probeer het zelf niet na te maken. En als je dat toch doet, dan heb ik je gewaarschuwd: "Do not try this at home!" "?

Door Tweakers user CurlyMo, vrijdag 8 februari 2019 12:11

Voor iedereen die zich net als mij afvroeg of de step-down converter wel veilig is. Ja. Hij is getest door de al bekende Deen:
https://lygte-info.dk/rev...Link%20HLK-PM01%20UK.html

Door Tweakers user Thijsmans, vrijdag 8 februari 2019 12:34

Hkuit schreef op vrijdag 8 februari 2019 @ 11:17:
Dat laatste lijkt me jammer, het is toch juist wel de bedoeling dat wij dit 'at home' ook gaan proberen? Of is het zo'n soort Amerikaanse waarschuwing, zo van 'ik heb dit gemaakt en het werkte, uiteindelijk, maar in vredesnaam probeer het zelf niet na te maken. En als je dat toch doet, dan heb ik je gewaarschuwd: "Do not try this at home!" "?
Vervangen door "Doe er je voordeel mee, maar denk vooral ook zelf na!" ;)
CurlyMo schreef op vrijdag 8 februari 2019 @ 12:11:
Voor iedereen die zich net als mij afvroeg of de step-down converter wel veilig is. Ja. Hij is getest door de al bekende Deen:
https://lygte-info.dk/rev...Link%20HLK-PM01%20UK.html
Ik heb op YouTube ook een review gezien van iemand die, bij wijze van test, 230V over de 3,3V output zette en het e.e.a. kortsloot. Niets aan de hand. Maar evengoed: juist bij dit soort onderdelen kies ik altijd voor een betrouwbare leverancier (zoals ModuleFans, vermeld in de blog) en niet zozeer voor de goedkoopste. Dan maar een dollar meer betalen om mijn huis niet in de as terug te vinden ;)

Door Tweakers user h3nr1, vrijdag 8 februari 2019 14:02

Leuk project. Maar is hetzelfde niet haalbaar met een Sonoff S20. Tasmota firmware erop en dan op de extra pinheaders de sensoren. Echter ben je dan beperkt tot 2a3 sensoren.

Door Dikke Kip, vrijdag 8 februari 2019 15:32

CurlyMo schreef op vrijdag 8 februari 2019 @ 12:11:
Voor iedereen die zich net als mij afvroeg of de step-down converter wel veilig is. Ja. Hij is getest door de al bekende Deen:
https://lygte-info.dk/rev...Link%20HLK-PM01%20UK.html
Thanks! Vroeg ik me inderdaad af. Mocht je op zoek zijn naar iets meer 'peace of mind' is een mean well IRM-02-3.3 een mooi alternatief, zit je wel al gauw tegen de €6 aan, maar wel wat meer zekerheid wanneer je met mains gaat spelen.

Door Tweakers user teacup, zaterdag 9 februari 2019 17:47

Hartstikke leuk project, en ook heel goed dat je de moeite neemt het hier zo mooi te delen.
Ik wil graag met bijvoorbeeld Fritzing een PCB ontwerpen en die professioneel laten afdrukken
. Toch maar even vragen, dit is voor mij niet zo heel vertrouwd, ik begrijp dat je nu een stuk generieke printplaat gebruikt die een regelmatig gatpatroon heeft met een constante pitch. Hierop prik je je componenten die je aan de achterkant met korte kabelbruggetjes met elkaar connecteert. Ik moet zeggen, als ik je methode hiermee goed heb beschreven dan lijkt het mij toe dat je het resultaat nog best compact hebt gekregen. Verwacht je dat door een eigen PCB te ontwerpen je nog iets kan winnen op het vlak van compactheid?

Ik vind het trouwens goed dat je in je reacties ook aangeeft dat je al een lange weg hebt afgelegd. Zelf beschouw ik dit altijd maar als leergeld. Als je iets nieuws wilt proberen moet je altijd een eerste stap zetten. Zolang we accepteren dat zo'n eerste stap, of enkele van de opvolgende stappen, missers zullen zijn die ons uiteindelijk helpen om wel het goede spoor te vinden, dan is er geen hek van de dam. Zolang je het geduld maar kunt opbrengen tenminste, en kan accepteren dat je volgende stap niet de ultieme eindstap zal zijn.

Nu zou het in elkaar knutselen van de elektronica voor mij al een ding zijn, maar daar kan ik mijn weg zelf wel in vinden. Het starten met die Java code is voor mij nog meer een black box. Heb je daarvoor nog een suggestie voor een soort absolute beginners bron om daarmee een start te maken?

Door Tweakers user CurlyMo, zaterdag 9 februari 2019 19:04

generieke printplaat
Dat heet overigens gewoon een gaatjesbord of laminated breadboard. Je hebt ze ook dubbelzijdig.
Hierop prik je je componenten die je aan de achterkant met korte kabelbruggetjes met elkaar connecteert.
De nette manier is om baantjes te solderen. Een voorbeeld hiervan:
[img]https://tweakers.net/ext/f/L5HOkmSyPHyMiJ8ajJ1tKwLW/full.jpg[/img]

Je ziet het niet heel goed door de kleuren. Maar wat je doet is op elk gaatje van je baan een druppel tin vastmaken en vervolgens de druppels tin onderling verbinden.

Als je overigens zo'n step down convertor op zo'n bord soldeert, dan is het wel aan te raden om aan de onderkant een vierkantje uit te zagen met een figuurzaag. Zo houdt je de galvanische scheiding tussen 220v en 5v in tact.

Door Tweakers user CurlyMo, zaterdag 9 februari 2019 19:06

generieke printplaat
Dat heet overigens gewoon een gaatjesbord of laminated breadboard. Je hebt ze ook dubbelzijdig.
Hierop prik je je componenten die je aan de achterkant met korte kabelbruggetjes met elkaar connecteert.
De nette manier is om baantjes te solderen. Een voorbeeld hiervan:
https://tweakers.net/ext/f/L5HOkmSyPHyMiJ8ajJ1tKwLW/full.jpg

Je ziet het niet heel goed door de kleuren. Maar wat je doet is op elk gaatje van je baan een druppel tin vastmaken en vervolgens de druppels tin onderling verbinden.

Als je overigens zo'n step down convertor op zo'n bord soldeert, dan is het wel aan te raden om aan de onderkant een vierkantje uit te zagen met een figuurzaag. Zo houdt je de galvanische scheiding tussen 220v en 5v in tact.

Door Tweakers user Thijsmans, zaterdag 9 februari 2019 22:07

teacup schreef op zaterdag 9 februari 2019 @ 17:47:
Toch maar even vragen, dit is voor mij niet zo heel vertrouwd, ik begrijp dat je nu een stuk generieke printplaat gebruikt die een regelmatig gatpatroon heeft met een constante pitch. Hierop prik je je componenten die je aan de achterkant met korte kabelbruggetjes met elkaar connecteert. Ik moet zeggen, als ik je methode hiermee goed heb beschreven dan lijkt het mij toe dat je het resultaat nog best compact hebt gekregen. Verwacht je dat door een eigen PCB te ontwerpen je nog iets kan winnen op het vlak van compactheid?
Correct wat betreft de generieke printplaat. Zoals CurlyMo aangeeft, heb ik op de achterkant met tin baantjes getrokken. Wat bij deze printplaat overigens niet gemakkelijk bleek: het tin vloeide zo door de gaatjes heen in plaats van aan elkaar. De sensoren (die niet op de print zitten) heb ik natuurlijk wel met losse draad verbonden. Verder zie ik in een afgedrukte PCB een voordeel m.b.t. afwerkingsniveau, en kun je bovenop andere banen hebben dan onderop (de huidige printplaat heeft doorverbonden zijdes). Dat geeft wat meer werkruimte voor nog te plaatsen onderdelen.
Nu zou het in elkaar knutselen van de elektronica voor mij al een ding zijn, maar daar kan ik mijn weg zelf wel in vinden. Het starten met die Java code is voor mij nog meer een black box. Heb je daarvoor nog een suggestie voor een soort absolute beginners bron om daarmee een start te maken?
Arduino heeft volgens mij best wel wat absolute beginners guides, Espruino heeft dat wat minder (al doet Gordon, de man achter Espruino, wel zijn best om alles op instapniveau te documenteren). Een absoluut begin lijkt mij de blink-sketch op z'n javascripts :) Zie ook tutorials and examples. Neem eens een Arduino-tutorial serie en bedenk wat dat in javascript zou moeten worden :) Misschien een idee voor een volgende blog...
h3nr1 schreef op vrijdag 8 februari 2019 @ 14:02:
Leuk project. Maar is hetzelfde niet haalbaar met een Sonoff S20. Tasmota firmware erop en dan op de extra pinheaders de sensoren. Echter ben je dan beperkt tot 2a3 sensoren.
Je kunt hetzelfde natuurlijk op verschillende manieren doen, dus ook met Tasmota ja :) Maar dan zit je wel vast aan de volgens mij beperkte mogelijkheden daarvan.

[Reactie gewijzigd op zaterdag 9 februari 2019 22:23]


Door Tweakers user Automaticoo, maandag 11 februari 2019 10:30

Als tip : Voor als je de ESP8266 zelf op custom PCB wilt solderen ipv een Wemos of NodeMCU wilt gebruiken.

Adafruit heeft ook een eigen board gebaseerd op de ESP8266
en het fijne is dat ze de PCB layout open source hebben gemaakt https://github.com/adafru...eather-ESP8266-HUZZAH-PCB

Dus je kan precies zien welke resistors/capacitors ze hebben gebruikt om het werkend te krijgen, en je negeert makkelijk het hele USB gedeelte uit hun schema. Ik heb zelf EasyEDA gebruikt vind dat het makkelijkste werken voor mijn amateuristisch gehobby.

Door Tweakers user WoutervOorschot, maandag 11 februari 2019 11:57

Hoe stuur je die solid state relay aan? Hij lijkt te schakelen met 5v volgens de specificaties, maar je step down converter en alle andere componenten werken met 3.3v?

Door Tweakers user Thijsmans, maandag 11 februari 2019 12:42

Dat luistert nooit zo nauw dat je precies 5V moet hebben; 3,3V is in dit geval genoeg om te schakelen.


Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)