@fcapri,
Grappig. Je moet er maar opkomen, en mooi dat het dan ook lukt.
Ik wilde hier ook van die S0 pulsen af. Dus ik ben over naar kWh meters met modbus. Dan kun je meerdere meters aan een enkele esp koppelen.
Ik werk hier met een ABB EV3-012-100 3fase kWh meter. Die kun je ook gebruiken om 3 aparte lasten te meten op een enkele fase.
Zie https://www.sandervunderink.nl/abb-kwh-meter-3-fase-voor-levering-en-t…
jammer dat die 'data lijnen' bij die kwh meters altijd in het hoge spanning deel zitten. ik zou het mooier vinden moest de uitgang aan de display kant zitten, dan is het maar een kabel inpluggen aan de voorkant.
ik heb ook meerdere kwh meters.
1) een 3F kwh meter die alle stroom NAAR het huis meet. deze is dan het huisverbruik
2) een 3F kwh meter die de stroom van de zonnepanelen installatie meet op het huis. SMA 5KW
3) een 1F kwh meter die de stroom meet van de 2 ecoflow panelen op de garage (2panelen en 1 kleine plugin accu).
zo weet ik al alles wat er van opwek is, en alles wat er verbruikt wordt.
met wat rekenen weet ik per minuut ook wat mijn netverbruik of netinjectie is. nog voor de digitale meter er was.
nu met de digitale meter kan ik mooi vergelijken en zit redelijk goed.
nu wil ik dus ook de EV gaan meten met deze 4de kwh meter, welke stroom gaat er naar de EV, en vooral, was dat injectiestroom geweest of is het netverbruik dat ik betaal. een 4de kabel van de zekeringkast naar de raspberry zag ik niet zitten.
en met dat wifi, is alles IP based en is het ook zo ingevoegd in de overview pagina op mijn thuis accu ESP
de digitale meter zat vroeger ook met 2draad op de Rpi, maar dat is ook een ESP geworden (rechts onder in beeld).
draadloos is toch net allemaal wat makkelijker. hoop alleen dat het enkele jaren meegaat
Op donderdag 23 juli 2026 00:17:12 schreef eSe:
Eindelijk mijn stuurconsole afgewerkt. Dit is deel 1 van een groter geheel.
Deze bedient 6 stappenmotoren en 4 "power" led's, R G B W.
Mooi gedaan! Er zitten joysticks op om volgspots te besturen?
Op donderdag 23 juli 2026 00:19:19 schreef eSe:
[bijlage]
[bijlage]
[bijlage]
[bijlage]
Mooi stukje vakwerk eSe !
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op donderdag 23 juli 2026 01:51:16 schreef deKees:
Zie https://www.sandervunderink.nl/abb-kwh-meter-3-fase-voor-levering-en-t…
Bij sandervunderink is ie 48 euro, als je dan voor de manual naar ABB clickt en daar op BUY clickt kom je bij een site die 312 euro rekent! Dat is een fors verschil!
Op donderdag 23 juli 2026 00:17:12 schreef eSe:
Eindelijk mijn stuurconsole afgewerkt. Dit is deel 1 van een groter geheel.
Deze bedient 6 stappenmotoren en 4 "power" led's, R G B W.
Ik had de print een cm of wat korter kunnen (laten) maken, was een beetje handiger geweest.
Ziet er prachtig uit eSe.
Maar waar is het precies voor als ik vragen mag?
Ik dacht eerst een besturing voor een freesbankje of zo, maar de RBGW klopt dan weer niet lijkt mij.
Lucky Luke
Eluke.nl | handgetypt | I'm a poor, lonesome cowboy, with a long, long way to go.
Op donderdag 23 juli 2026 00:17:12 schreef eSe:
Eindelijk mijn stuurconsole afgewerkt. Dit is deel 1 van een groter geheel.
Deze bedient 6 stappenmotoren en 4 "power" led's, R G B W.
Het ziet er gigantisch mooi uit. Maar wat "Stuurt" deze stuurconsole? Dat heb je er niet bijvertelt...
Het kastje is een project an sich, strak in de lak. Zou niet misstaan voor een nixieklok of ander "Woonkamertoonbaar" project.
Maar de binnenkant vind ik ook best netjes hoor, draden gebundeld, lang genoeg dat je ergens bij kan als het open moet maar zonder dat het spaghetti wordt. Print kan er ook gewoon uit zonder dat je de USB moet lossolderen ofzo, alles zit keurig met connectors, en als je 'm los op je bureau wilt aansluiten past een standaard kabel zonder dat je de halve behuizing hoeft te demonteren of een verloopje moet maken.
En die koeling van die steppers kan menig 3D printer wat van leren. Daar zit vaak wel een fan tegen die chips / print te blazen, en dat werkt wel, maar ik denk dat bij jou de fan stukken minder herrie hoeft te maken. Is al dat alu niet al genoeg om ze passief te koelen zelfs?
(Ik erger me aan de herrie van mijn leapfrog, daar zaten 2 kleine fans pal naast elkaar, het is al beter nu ik daar 1 iets dikkere fan voor in de plaats gezet heb. Koelen de stepperdrivers. Terwijl de hele printer aluminium is en het waarschijnlijk zelfs passief gekoeld had kunnen zijn als de stepperdrivers in thermisch contact stonden met die printerbehuizing - goed, ik krijg dat zelf ook niet 123 voor elkaar, maar misschien kan ik nu wat spieken bij jou constructie)
Heeft de onderkant van de print een groundplane? (Er zit een metalen kast onder/omheen, maar toch)
Ja, het is ruim opgezet, maar je wilt toch alle connectors kwijt kunnen zonder dat het proppen wordt of onpraktisch om aan te sluiten. Goed, nu werd het misschien wat passen en meten het in het kastje te krijgen.
Je hebt nogal wat voedingsblokjes, heeft het zo veel verschillende spanningsrails nodig? (2 blokken voor 12V 4A, nog iets aan de zijkant, en de 4 "Mean Well" dingen op de print die ik eerst voor relais aanzag maar dat leddrivers blijken te zijn nu ik LDD-700L opzoek).
Als je er seriematig tientallen zou willen bouwen, handmatig, wil je misschien meer ruimte naast die print om prettig die connectors naar de voeding te kunnen aansluiten. Maar A) lijkt me dit een nogal custom er-is-er-1-van-in-de-wereld en zet zitten nu vast, B) win je die ruimte misschien al als je de print op hogere standoffs zet ofzo. C) Als je er 10 moet maken maak je er toch eerst 1 om er achter te komen waar ruimte zit om het prettiger produceerbaar te maken. (En is er misschien ruimte te winnen met een andere voeding).
Tsja. Zonder plan beginnen en iets dergelijks moois neerzetten vind ik eigenlijk geslaagder dan een plan maken en het dan daarbij laten. Geen van mijn plannen zit een een mooi gelakt notenhouten kastje. (En evenmin in peer, eiken, grenen of whatever dit is). Een deel staat op papier, dat komt nog het dichtst in de buurt van iets met bomen.
--
Op maandag 20 juli 2026 12:59:21 schreef fcapri:
net genoeg ruimte tussen display en voedingsprint. al heb ik de voeding wel moeten aanpassen. de serie condensator voeding was maar voorzien op 40mA (op 15V) en kreeg de ESP echt niet gestart daarop)
Wacht ff, het is uiteindelijk wel gelukt een ESP op een seriecondensatorvoeding te draaien? Ik dacht dat die dingen een paar honderd mA wilden om WiFi te doen? Of zijn dat alleen pulsen en red je het met voldoende buffercapaciteit? Of de ESP zuiniger en de voeding 'laagimpedanter'? Of iets slims met een stepdown van 90V 20mA naar 3v3 400mA? Of eigenlijk: Hoe heb je het voor elkaar gekregen?
(De MakerSpace kreeg een vrij groot aantal ESP8266 die ergens over waren, en wil daar sensornodes mee gaan maken. Ze op beperkt powerbudget "ergens bij proppen" kan handig zijn - ik wil bijvoorbeeld iets met de ventilatorsturing - al denk ik nu aan een los kastje met losse eigen voeding, om het netjes voor elkaar te kunnen krijgen.)
Op donderdag 23 juli 2026 08:24:13 schreef rew:
[...]Bij sandervunderink is ie 48 euro, als je dan voor de manual naar ABB clickt en daar op BUY clickt kom je bij een site die 312 euro rekent! Dat is een fors verschil!
Klopt, ik ben best wel even op zoek geweest, en die van ABB vielen af wegens te duur. Totdat ik deze tegenkwam. Ik heb er eentje laten komen en die werkt perfect. Aparte tellers voor import en export, 3 fasen, Power op 2 decimalen, spanning op 1 decimaal, stroom op 2 decimalen. Krekwakwou
.
Op donderdag 23 juli 2026 09:40:35 schreef Lucky Luke:
Wacht ff, het is uiteindelijk wel gelukt een ESP op een seriecondensatorvoeding te draaien? Ik dacht dat die dingen een paar honderd mA wilden om WiFi te doen? Of zijn dat alleen pulsen en red je het met voldoende buffercapaciteit? Of de ESP zuiniger en de voeding 'laagimpedanter'? Of iets slims met een stepdown van 90V 20mA naar 3v3 400mA? Of eigenlijk: Hoe heb je het voor elkaar gekregen?
(De MakerSpace kreeg een vrij groot aantal ESP8266 die ergens over waren, en wil daar sensornodes mee gaan maken. Ze op beperkt powerbudget "ergens bij proppen" kan handig zijn - ik wil bijvoorbeeld iets met de ventilatorsturing - al denk ik nu aan een los kastje met losse eigen voeding, om het netjes voor elkaar te kunnen krijgen.)
nee, ik heb de voeding moeten uittekenen en kwam uit dat de serie condensator 15V 40mA ongeveer aan kan. met een 2de voedingsdeel maken ze er dan een stabiele 5V uit.
maar het was NET te weinig om zowel het displat als de ESP nog te starten. ik heb het superzuinig proberen maken maar faalde.
ik zou de seriecondensator naar pakweg 100mA kunnen brengen en dan kom ik er wel (alles naar 3,3V brengen levert dan 500mA met een superzuinige DC/DC chip) maar ik koos er uiteindelijk voor de voeding te vervangen.
de hlk-pm01 is klein genoeg om erin te bouwen en dan kan ook de 2de voedingstrap weg omdat je direct al een stabiele 5V hebt
ik heb zulke ESP8266 al in smartplugs zitten, in diy thuis batterijen. er zit er zelf eentje en zijn enige taak is een display sturen van een ecoflow accu.
ik heb er ook aan een adapter hangen met een IR led eraan, en die is dan de omvormer van wifi naar IR afstandsbediening zodat ik vanalles kan aan en afzetten zonder dat ik fysiek op de originele afstandsbediening moet drukken
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op donderdag 23 juli 2026 11:28:53 schreef fcapri:
ik heb er ook aan een adapter hangen met een IR led eraan, en die is dan de omvormer van wifi naar IR afstandsbediening zodat ik vanalles kan aan en afzetten zonder dat ik fysiek op de originele afstandsbediening moet drukken
Ehh.... Ben je bereid om het schema en code hiervan te delen? Ik zou hier "als ik van huis ga" bijvoorbeeld de airco op m'n werk willen aanzetten. Dan heeft ie het wel koel tegen de tijd dat ik daar ben.
Ik heb hier ook problemen met de ESP32. Die start niet op als de voeding te langzaam opkomt.
Daarom heb ik op mijn laatste ontwerp een reset controller toegevoegd (APX803L20-30SA7). En nu start hij wel altijd op.
Ehh.... Ben je bereid om het schema en code hiervan te delen? Ik zou hier "als ik van huis ga" bijvoorbeeld de airco op m'n werk willen aanzetten. Dan heeft ie het wel koel tegen de tijd dat ik daar ben.
Dat kan ook mbv een shelly. Die heeft een ingebouwde web server en kan je dus bedienen via het web. Een speciale app is daarvoor niet nodig (al kan dat wel als je wilt).
Update:
Oh sorry, verkeerd begrepen.
Misschien heb je hier iets aan: https://harizanov.com/2012/02/control-daikin-air-conditioner-over-the-…
Die staat bij mij nog op de wensenlijst, ook al heeft mijn airco van zichzelf al WIFI. Ik wil het dan gebruiken als een betere thermostaat.
[Bericht gewijzigd door deKees op (12%)]
Op donderdag 23 juli 2026 11:46:34 schreef rew:
[...]Ehh.... Ben je bereid om het schema en code hiervan te delen? Ik zou hier "als ik van huis ga" bijvoorbeeld de airco op m'n werk willen aanzetten. Dan heeft ie het wel koel tegen de tijd dat ik daar ben.
Dat heb ik ook draaien, zowel ESPhome als tasmota hebben daar oplossingen voor
Als je een Mitsubishi heavy industries AC hebt kun je daar zelfs direct mee interfacen.
@allen Bedankt voor de complimenten.
De console is een besturing voor een xy tafeltje onder een, uit de kluiten gewassen, microscoop.
Eerste joystick. Tweede is voor de hoogte instelling van de microscoop en nog een fijn instelling.
Derde is ...euh... weet ik nog niet
Waarschijnlijk voor het verstellen van een iris en polarisatiefilters.
De led drivers zijn dan voor de belichting, ik zou er graag wat foto's/filmpjes mee willen maken van heel klein grut. Plantjes, beestjes...
Ik wou het eerst maken met "gewone" logica, heb hier genoeg liggen, maar dan dacht ik het ook computer gestuurd te willen hebben. En dan moet er ook weer een interface bij. Daarom overgestapt op een Arduino micro.
Schakelaars boven de joysticks dienen als enable/disable van de motordrivers, kan je deze makkelijk met de hand verdraaien moest er wat verkeerd gebeuren. En enabled staan ze ook "rotsvast". Snelheid van de motorpulsen gebeurd met de pot's.
Het pwm signaal van de led drivers word ook naar buiten gebracht zodat er nog wat ander spul mee kan gestuurd worden als de led's niet worden gebruikt. Deze hebben dan ook een enable/disable schakelaar.
Ik had nog een oude laptop voeding liggen, deze is gebruikt als power voor de led's. De 2 andere zijn "zwaar"genoeg om meerdere motoren te sturen. 1 zwaardere voeding ging niet lukken, fysiek te groot.
De afwerking van het kastje was weer zo'n afweging, beits of boenwas?
Gekozen voor boenwas, de kleur was uiteindelijk wat hetzelfde. Maar, en je mag dit in deze tijden waarschijnlijk niet meer zeggen, als je over het hout wrijft is het zo zacht als een babypoepeke.
Lucky Luke
Eluke.nl | handgetypt | I'm a poor, lonesome cowboy, with a long, long way to go.
Op donderdag 23 juli 2026 11:28:53 schreef fcapri:
[...]nee, ik heb de voeding moeten uittekenen en kwam uit dat de serie condensator voeding een 15V 40mA kan leveren. met een 2de voedingsdeel maken ze er dan een stabiele 5V uit. had het 24V 40mA geweest, had het me wel gelukt.
maar het was NET te weinig om zowel het display als de ESP nog te starten. ik heb het superzuinig proberen maken maar faalde.
ik zou de seriecondensator naar pakweg 100mA kunnen brengen en dan kom ik er wel (alles naar 3,3V brengen levert dan 500mA met een superzuinige DC/DC chip) maar ik koos er uiteindelijk voor de voeding te vervangen.de hlk-pm01 is klein genoeg om erin te bouwen en dan kan ook de 2de voedingstrap weg omdat je direct al een stabiele 5V hebt
Ah, dank je wel. Die modules gebruikt de MakerSpace ook veel. Goede oplossing, zo'n kleine switcher. lygte heeft er eentje grondig getest en goed bevonden.
Toepassingsvoorbeeld toont wel een extern netfilter, MOV, en zekering primair. En secundair extra afvlakking (al zit intern al een C-L-C). Dat erbij maakt het minder compact.
Op donderdag 23 juli 2026 12:14:32 schreef eSe:
De console is een besturing voor een xy tafeltje onder een, uit de kluiten gewassen, microscoop.
Eerste joystick. Tweede is voor de hoogte instelling van de microscoop en nog een fijn instelling.
Oké, dus toch voor een X-Y tafeltje. Wel een heel leuk idee om zo je microscoop te bedienen.
Als je zover bent moet je er eens een filmpje van maken. 
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Op donderdag 23 juli 2026 12:38:42 schreef Lucky Luke:
En secundair extra afvlakking (al zit intern al een C-L-C). Dat erbij maakt het minder compact.
Het datasheet zegt:
Filtering; adding this capacitor allows the user to adjust the output ripple voltage.
(formeel datasheet van een ander ding, volgens mij de opvolger van de PM01: de 3M05B).
nonius
set SCE to AUX.
ESe, ziet er mooi uit, met aandacht voor detail! Ik dacht eerst dat het een CNC-controller was, maar dan eentje met wel heel veel assen/vrijheidsgraden 
De afwerking van het kastje was weer zo'n afweging, beits of boenwas?
Andere optie is 'Deense olie', dit is makkelijk zelf te maken (1/3 deel vernis op oliebasis; 1/3 deel gekookte lijnolie; 1/3 deel terpentine) en dat met een doekje aanbrengen. 15 minuten laten intrekken, overtollige olie weer verwijderen met een pluisvrije doek een een dag of 2 laten drogen. Daarna lichtjes schuren met een dot staalwol en opnieuw Deense olie aanbrengen. Meestal is 3-4 lagen wel voldoende.
Daarna breng ik meestal boenwas aan. Laten drogen en even opboenen voor maximum resultaat.
Op donderdag 23 juli 2026 12:14:32 schreef eSe:
Ik wou het eerst maken met "gewone" logica, heb hier genoeg liggen, maar dan dacht ik het ook computer gestuurd te willen hebben. En dan moet er ook weer een interface bij. Daarom overgestapt op een Arduino micro.
Maar je gaat het niet via de PC doen?
In principe heb je al een interface, je kunt via je arduino zo met de PC kletsen via je seriële poort of via je USB poort.
Ik doe niet anders en op de PC draait dan Profilab-Exper4.0, werkt prima.
Het idee was om het tafeltje met de hand te bedienen, daarna dacht ik met stappenmotortjes en "plezierstokken", simpel, standaard 4xxx poorten.
Dan dacht ik, soms doe ik dat, misschien zou het wel interessant zijn als ik via een pc of andere automaat heel kleine stapjes kan maken en na iedere stap een foto nemen. En dit automatiseren.
Daarom ben ik overgestapt op een Arduino Micro, tafeltje en led's via USB te bedienen. En ook omdat ik er hier een paar heb liggen. Dan raakt die zooi ook weer een keer opgebruikt 
In de microscoop zit een RPI en die zou met de tafel en led's kunnen praten via een script of zoiets.
Is nog niet helemaal duidelijk in mijn hoofd. Zoals eerder gemeld, geen plan, gewoon op het moment een inval laten komen en daarmee verder werken.
Zoals het niet hoort als je dit "om den brode" zou doen.
Just having fun.
Op donderdag 23 juli 2026 11:46:34 schreef rew:
[...]Ehh.... Ben je bereid om het schema en code hiervan te delen? Ik zou hier "als ik van huis ga" bijvoorbeeld de airco op m'n werk willen aanzetten. Dan heeft ie het wel koel tegen de tijd dat ik daar ben.
het schema is bitter weinig.
een IR led, een BC547 en een 2tal weerstanden. voor IR uit te zenden moet je wel wat vermogen sturen, en dat lukte niet met de uitgang van een ESP. dus ik voed ze op 5V en de transistor stuurt de pulsen.
die groen/zwart/rode draad gaat naar een temperatuur sensor. het ding gaat namelijk ook automatisch
op minder dan 10°C springt die automatisch aan en boven 15°C slaat die weer af. de code hier is mijn pellet kachel.
ik heb er een hoop uit geknikkert, oa het verbinden met wifi, en de grote HTML files van de viewer. het belangrijkste is het verzenden van IR onderaan
en de code:
String version = "Pellet Temperature Control V2";
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <ESP8266WebServer.h> //example helloserver.ino
#include <OneWire.h>
#include <DallasTemperature.h>
#include "PinDefinitionsAndMore.h"
#include <IRremote.hpp> // include the library
#define DECODE_DISTANCE_WIDTH // Universal decoder for pulse distance width protocols
// GPIO where the DS18B20 is connected to
#define ONE_WIRE_BUS 2 //d4
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
// arrays to hold device address
DeviceAddress insideThermometer;
unsigned long lastTime = 0;
unsigned long boottime = 0;
unsigned long heattime = 0;
float temperatureC = 0;
float temperatureF = 0;
int hightemp = 15;
int lowtemp = 0;
int currenttemp;
int tempMinAvg = 0;
int mytemps[180];
int temps24[24];
int arrayindex = 1;
int index24 = 1;
int nrofminuts=0;
int hourtemp = 0;
int time3600 = 0;
String ptr;
// Replace with your network credentials
String wifi = "wifiloods";
const char* ssid = "******";
const char* password = "******";
long rssi;
#include <SPI.h>
#include <Wire.h>
WiFiClient client;
const int ledPin1 = 2; //onboard led
int relais = 5; //d1 //relais GPIO0
int relaisstatus;
int cHour;
int cMin;
int totalTime;
int P1time;
ESP8266WebServer server(80);
//String SendHTML(float TemperatureWeb, float HumidityWeb, String TimeWeb, String DateWeb);
void handle_OnConnect();
void handle_NotFound();
void handle_OnConnect() {
// showConfig();
server.send(200, "text/html", SendHTML());
}
void relaison() {
//digitalWrite(relais, LOW); //ON
PowerON();
time3600 = 10000;
relaisstatus = 1;
server.send(200, "text/html", SendUpdate());
}
void relais1h() {
//digitalWrite(relais, LOW); //ON
Time1H();
time3600 = 3600;
relaisstatus = 1;
server.send(200, "text/html", SendUpdate());
}
void relaisoff() {
//digitalWrite(relais, HIGH); //OFF
PowerOFF();
relaisstatus = 0;
server.send(200, "text/html", SendUpdate());
}
void lowup() {
lowtemp++;
server.send(200, "text/html", SendUpdate());
}
void lowdown() {
lowtemp--;
server.send(200, "text/html", SendUpdate());
}
void highup() {
hightemp++;
server.send(200, "text/html", SendUpdate());
}
void highdown() {
hightemp--;
server.send(200, "text/html", SendUpdate());
}
void reboot() {
server.send(200, "text/html", SendReboot());
delay(5000);
ESP.restart();
}
void handle_NotFound() {
server.send(404, "text/plain", "Not found");
}
void getP1() {
char server[] = "192.168.1.25";
int port = 80;
String sp;
char c;
if (client.connect(server, port)) {
client.print("GET /");
client.println(" HTTP/1.0");
client.println("Host: www.cwad.be");
client.println("User-Agent: Arduino");
//client.println("Connection: close");
client.println();
} else {
Serial.println("connection failed"); //error message if no client connect
Serial.println();
sp = "0000000000000000000000";
}
// Read response from server
int timer = 0;
while (client.connected() && !client.available() && (timer < 30000)) {
delay(1); //waits for data
timer++;
}
while (client.connected()) {
while (client.available()) { //connected or data available
char c = client.read(); //gets byte from ethernet buffer
sp = sp + c;
//Serial.print(c); //prints byte to serial monitor
}
}
// DECODE DATA
cHour = sp.substring(sp.indexOf(":1.0.0") + 13, sp.indexOf(":1.0.0") + 15).toInt(); //OK
cMin = sp.substring(sp.indexOf(":1.0.0") + 15, sp.indexOf(":1.0.0") + 17).toInt(); //OK
totalTime = (cHour * 60) + cMin;
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == DEVICE_DISCONNECTED_C)
{
Serial.println("Error: Could not read temperature data");
return;
}
Serial.print("Temp C: ");
Serial.print(tempC);
temperatureC = tempC;
currenttemp = int(temperatureC);
Serial.print(" Temp F: ");
Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit
temperatureF = DallasTemperature::toFahrenheit(tempC);
}
void readTemp(){
sensors.requestTemperatures();
temperatureC = sensors.getTempCByIndex(0);
temperatureF = sensors.getTempFByIndex(0);
if (temperatureC < -50){
currenttemp = random(25, 32);
Serial.print(currenttemp);
Serial.println("ºC");
}else {
currenttemp = int(temperatureC);
Serial.print(temperatureC);
Serial.print("ºC - ");
Serial.print(temperatureF);
Serial.println("ºF");
}
}
void connectWifi(){
....
}
void setup() {
for (int i = 0; i<180; i++){
mytemps[i]=0;
}
Serial.begin(115200);
Serial.println("Booting");
connectWifi();
String mac = WiFi.macAddress();
String hostnaam = "Pellet-temp-"+ mac.substring(9,11)+mac.substring(12,14)+mac.substring(15,17);
ArduinoOTA.setHostname(hostnaam.c_str());
ArduinoOTA.onStart([]() {
Serial.println("Start");
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
pinMode(relais, OUTPUT);
server.on("/", handle_OnConnect);
server.on("/ON", relaison);
server.on("/OFF", relaisoff);
server.on("/1hour", relais1h);
server.on("/setLup", lowup);
server.on("/setLdown", lowdown);
server.on("/setHup", highup);
server.on("/setHdown", highdown);
server.onNotFound(handle_NotFound);
server.begin();
pinMode(2, INPUT);
sensors.begin();
Serial.print("Found ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" devices.");
if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0");
sensors.setResolution(insideThermometer, 9);
getP1();
randomSeed(analogRead(0));
P1time = (60-cMin)*60;
initIR();
}
void loop() {
server.handleClient(); //default
ArduinoOTA.handle(); //default
if (millis() > lastTime + 10000){ //every 10 seconds read temp
P1time -= 10;
if (P1time < 10){
getP1(); //get P1 time
P1time = (60-cMin)*60; //wait 1hour to get new time
}
lastTime = millis();
if (time3600 > 10){
time3600-= 10;
}else{
relaisstatus = 0;
}
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
delay(1500);
printTemperature(insideThermometer); // Use a simple function to print out the data
tempMinAvg += currenttemp;
/* if ((temperatureC < lowtemp) && (time3600 == 0)){
Time1H();
time3600 = 3600;
relaisstatus = 1;
}
if (temperatureC > hightemp +5) {
PowerOFF();
time3600 = 0;
//digitalWrite(relais, HIGH); //OFF
relaisstatus = 0;
}*/
boottime += 10;
if (boottime%60 == 0) { //everyminut create array number
mytemps[arrayindex]=tempMinAvg/6; //average of 1minuut temps
tempMinAvg = 0;
arrayindex++;
if (arrayindex > 180){arrayindex = 0;} //reset index at end
nrofminuts++;
Serial.print("number of minuts: ");
Serial.println((nrofminuts));
hourtemp += currenttemp;
if (nrofminuts%60 == 0){ //every 30minuts, create hour array minut
Serial.print("loop complete: ");
Serial.println((hourtemp/60));
temps24[index24] = (hourtemp/60);
hourtemp = 0;
index24++;
if (index24 > 24){index24 = 0;} //reset index at end
}
}
if (relaisstatus){ heattime+= 10;}
}
}
//*************************************************HTML FORMS**********************************************************
String SendHTML() {
ptr = "<!DOCTYPE html> <html>\n";
....
return ptr;
}
String SendUpdate() {
ptr = "<!DOCTYPE html> <html>\n";
ptr += "<head>\n";
ptr += " <title>ESP Web Server</title>\n";
ptr += " <meta http-equiv='refresh' content='1; url=../'>\n";
ptr += " <meta name='viewport' content='width=device-width, initial-scale=1'>\n";
ptr += "</head>\n";
ptr += "<body>\n";
ptr += "<p>\n";
ptr += "Sending command to device ...\n";
ptr += "</body>\n";
ptr += "</html>\n";
return ptr;
}
void initIR(){
pinMode(LED_BUILTIN, OUTPUT);
// Just to know which program is running on my Arduino
Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));
Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));
Serial.print(F("Send IR signals at pin "));
Serial.println(IR_SEND_PIN);
// Start the receiver and if not 3. parameter specified, take LED_BUILTIN pin from the internal boards definition as default feedback LED
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
IrSender.begin(); // Start with IR_SEND_PIN -which is defined in PinDefinitionsAndMore.h- as send pin and enable feedback LED at default feedback LED pin
Serial.print(F("Ready to receive IR signals of protocols: "));
printActiveIRProtocols(&Serial);
Serial.println(F("at pin " STR(IR_RECEIVE_PIN)));
}
void PowerON() {
Serial.println("power ON command");
digitalWrite(LED_BUILTIN,HIGH);
delay(1000);
digitalWrite(LED_BUILTIN,LOW);
uint64_t tRawON[]={0x2CA815A1161930CB, 0x10};
IrSender.sendPulseDistanceWidthFromArray(38, 9000, 4450, 550, 1700, 550, 600, &tRawON[0], 72, PROTOCOL_IS_LSB_FIRST, 0,0);
}
void PowerOFF() {
Serial.println("power OFF command");
digitalWrite(LED_BUILTIN,HIGH);
delay(1000);
digitalWrite(LED_BUILTIN,LOW);
uint64_t tRawOFF[]={0xCCA815A1161930C3, 0x50};
IrSender.sendPulseDistanceWidthFromArray(38, 9050, 4400, 550, 1700, 550, 550, &tRawOFF[0], 72, PROTOCOL_IS_LSB_FIRST, 0,0);
}
void Time1H() {
}
dit is de commandos van mijn airco=
void initIR(){
pinMode(LED_BUILTIN, OUTPUT);
// Just to know which program is running on my Arduino
Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));
Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));
Serial.print(F("Send IR signals at pin "));
Serial.println(IR_SEND_PIN);
// Start the receiver and if not 3. parameter specified, take LED_BUILTIN pin from the internal boards definition as default feedback LED
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
IrSender.begin(); // Start with IR_SEND_PIN -which is defined in PinDefinitionsAndMore.h- as send pin and enable feedback LED at default feedback LED pin
Serial.print(F("Ready to receive IR signals of protocols: "));
printActiveIRProtocols(&Serial);
Serial.println(F("at pin " STR(IR_RECEIVE_PIN)));
}
void PowerOFF() {
Serial.println("power OFF command");
uint64_t tRawOFF[]={0x8000A000E05FC3, 0x2705000000};
IrSender.sendPulseDistanceWidthFromArray(38, 9100, 4400, 600, 1650, 600, 500, &tRawOFF[0], 104, PROTOCOL_IS_LSB_FIRST, 0,0);
delay(1000);
}
void PowerON() {
Serial.println("power ON command");
uint64_t tRawON[]={0x8000A000E05FC3, 0x5705003000};
IrSender.sendPulseDistanceWidthFromArray(38, 9000, 4450, 550, 1700, 550, 550, &tRawON[0], 104, PROTOCOL_IS_LSB_FIRST, 0,0);
delay(1000);
}
void Time1H() {
Serial.println("sending 1hour timer command");
uint64_t tRaw1H[]={0x8000A100E05FC3, 0xA00D007000};
IrSender.sendPulseDistanceWidthFromArray(38, 9100, 4400, 600, 1650, 600, 500, &tRaw1H[0], 104, PROTOCOL_IS_LSB_FIRST, 0,0);
delay(1000);
}
ik heb daarvoor ook een testprogramma die IR codes kan uitlezen.
dus eerst soldeer ik een IR ontvanger op een ESP of een NANO en die stuurt alles wat die ontvangt in serial monitor.
daar kopieer ik dan de codes uit om hierboven in te steken
nu heb ik geen idee waar die IR reader code ergens staat (mogelijk op de pc op het werk). het enige dat ik thuis vind is deze en dat zat op een arduino nano geprogrammeert
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
//decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode()) {
// Serial.println(results.value, HEX);
Serial.println(irrecv.decodedIRData.decodedRawData, HEX);
irrecv.resume(); // Receive the next value
}
}
//