Hallo
Heb een klein vraag over de 433MHz zenders, moet ik voor elke zender een ontvanger hebben??
Of kunnen er bijvoorbeeld 10 zenders op 1 ontvanger.
Wil namelijk zelf een Alarminstallatie voor thuis bouwen.
Alvast bedankt voor jullie antworden
Hallo
Heb een klein vraag over de 433MHz zenders, moet ik voor elke zender een ontvanger hebben??
Of kunnen er bijvoorbeeld 10 zenders op 1 ontvanger.
Wil namelijk zelf een Alarminstallatie voor thuis bouwen.
Alvast bedankt voor jullie antworden
In principe is het een open verbinding. Je zou 10 zenders naar 1 ontvanger kunnen laten zenden of vanuit 1 zender naar 10 ontvangers. Van belang is natuurlijk wel dat je niet met meerdere zenders tegelijkertijd zend.
Ik weet niet of het wel de beste manier is voor een alarmsysteem.
Persoonlijk zou ik liever een bedraad systeem hebben met 1 enkele bron die ik met een nood voeding kan voeden.
Dank voor je reactie,
Ik weet dat een bekabelt systeem veel beter is, helaas woon ik in een huis waar ik geen mogelijkheid heb om kabels weg te werken of ik moet alles in goot maken maar dat wil ik niet.
Nog een vraagje over de zenders.
Hebben deze allemaal een eigen code zoiets als MAC adres.
Sorry ik ben nog een leek op het Arduino gebiet
Ik denk niet dat deze dingen iets dergelijks als een MAC adres hebben, maar ik heb er geen ervaring mee.
Maar het is wel een goed idee om zoiets (dus adressering) in te bouwen.
Verder moet je dan een protocol gaan bedenken.
Het zou beter zijn als alle stations kunnen zenden en ontvangen.
Dan kan de centrale de devices pollen, dus opvragen of ze er nog zijn.
Wanneer je daar niet aan wil of kunt beginnen, moeten de devices allemaal regelmatig laten weten dat ze er nog zijn, en indien dat niet ontvangen wordt door je centrale, moet het alarm afgaan.
Daar ligt dus een risico, want hoe houd je bij welk device aan de beurt is om te zenden en welke niet zodat ze elkaar niet storen tijdens dat zenden.
Dat is ook onderdeel in een bedraad systeem; verbinding verbroken = alarm.
Want het is heel eenvoudig om zo'n draadloos systeem plat te leggen, en daar moet je dan wel rekening mee houden.
Ik zou eens kijken naar een esp32 en dan met name het esp NOW protocol.
Dank je wel.
Daar ga ik mij in verdiepen en met vragen kom ik hier weer terug.
Nee het zijn gewoon zenders.
Er zijn geloof ik wel wat libraries beschikbaar die packetjes kunnen zenden en ontvangen en er een CRC check op doen.
Het nadeel van WiFi is wel dat het zelfs als het 'verborgen nodes' betreft het wel zichtbaar is dat het aanwezig is. Bereik is vergelijkbaar. Grote voordeel is dat het veel eenvoudiger te programmeren is.
Dank je voor de uitleg
Nou, ik heb mij zoveel mogelijk erin verdiept in het esp NOW.
Het eerste waar in tegen aanloop is, dat er maar weinig te vinden is over een PIR met een wifi zender.
Het tweede is dat ik graag een Arduino wil met een website erop zodat ik gebeurtenissen kan uitlezen met een tablet.
Ik zal vast niet de enige zijn die een alarm wil maken voor thuis, wat ik veel vind is een PIR direct op een Arduino of een luchtdruk/luchtvochtigheids meter.
Of zoek ik nu verkeerd?
Zoek op
Arduino met PIR en wifi esp32
Arduino met rookmelder en wifi of esp32
Arduino met website met eigen IP range
ben ik nu echt verkeerd bezig?
Zoeken in het Nederlands is altijd een beperking.
ESP32 & ESP8266 zijn allebei ontwikkelingsborden (zoals een Arduino ook een ontwikkelingsbord is) die je met de Arduino IDE (Intergraded Development Environment) kan programmeren. Een soort Arduinos dus maar door een ander bedrijf gefabriceerd.
Beide van deze soort borden ondersteunen WiFi intern en kunnen zowel als een Station als een Access Point functioneren. Een Station kan zich verbinden met een aanwezig WiFi netwerk, een Access Point is een WiFi netwerk.
Er zijn wel wat beperkingen (bv alleen 2.4GHz) ESP32 is eigenlijk een nieuwere en verbeterde versie van een ESP8266 waarvan de productie in 2029 gestopt wordt. Maar ook meestal wat duurder.
Een PIR sensor kan op zowel een origineel Arduino bord als op een ESP bord aangesloten worden.
Op een ESP bord kan je een website 'hosten' die van alles laat zien of je kan verbinding maken met een website via een router. Je kan ESP borden rechtstreeks verbinding met elkaar laten maken (de ene als AP de andere als STA) of via een router. Er is een beperking van het aantal apparaten dat tegelijkertijd verbinding kan maken met een ESP als AP, namelijk 8, ik weet niet hoeveel ruimtes je wil beveiligen ?
ESP-NOW is een protocol wat specifiek 2 ESP borden met elkaar laat communiceren zonder dat daar HTML op webservers aan te pas komen, maar wel via een TCP verbinding, dus met bevestiging van ontvangst.
ESP borden worden meestal standaard met een AT-firmware geleverd en je zou een aparte Arduino kunnen gebruiken om deze daarmee aan te sturen, maar dat is wel het paard achter de wagen spannen. ESP borden zijn veel krachtiger dan de meeste populaire Arduinos (recentelijk zijn er wel krachtigere maar ook veel duurdere borden beschikbaar geworden)
Ik zou waarschijnlijk een ESP bordje op de kop tikken ergens en een PIR sensor en beginnen met experimenteren.
Dat hoeft allemaal niet zo veel te kosten. Hoe goed ben je in HTML ?
De esp familie is niet meer beperkt tot de 2.4 band,
Daarnaast kan het Now protocol een mesh netwerk.
Wat kleine opmerkingen naar het overigens duidelijke en goed verwoorde verhaal van Deva
Dank jullie voor de heldere uitleg,
Heb trouwens niet alleen in het Nederlands gezocht maar ook in het Engels en Duits.
ESP werkt toch hetzelfde als Arduino, allen krachtiger en meer rijkweite en je moet scripts gebruiken met ESP ervoor.
Het HTML, ik was daar redelijk in maar dan praat ik wel over 20 a 25 jaar geleden en dan nog waren het eenvoudige sites voor familie en bekenden.
Voor het project wat ik wil maken moet ik het nog kunnen, het moet tenslote een eenvoudig site worden misschien met een instellings site erachter Front end en Back end.
Heeft iemand een klein opzetje van een script die ik dan zelf kan uitbouwen
Pir1 stuur een alarm en low Battry naar de hoofdontvangener
De ontvanger ontvangt dan de melding van Pir1 geef deze een naam en laat deze dan zien met naam en melding.
Of is dit te veel gevraagd, als ik zo een script heb snap ik het beter en kan naar mijn mening er mee werken en vooral er veel van leren.
Als je al een ESP32 of ESP8266 hebt, heb ik wel een voorbeeld van een webserver waarmee je een ledje kan laten knipperen of aan of uit kan zetten.
#if defined(ARDUINO_ARCH_ESP8266)
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
ESP8266WebServer server(80);
#elif defined(ARDUINO_ARCH_ESP32)
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>
WebServer server(80);
#endif
#include <PatchDNSServer.h>
DNSServer dnsServer;
#define DNS_PORT 53
const char *ssid = "LAB";
const char *password = "Page22Air";
const char *apname = "ESPLed";
const char *appass = "password"; // minimum length 8 characters
const int ledpin = 2; // I'm running this on an ESP-01
// i have a led connected to this active LOW
// i can't use the internal (pin 1) for the use of Serial
uint8_t ledstatus = 0; // this is keeping track of the state (of our statemachine)
const char // like this these lines are statically declared and const, so we can't change them at all
*pageheader = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
*htmlhead = "<html><head><title>ESPwebserver</title><meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" ></head>",
*bodystyle = "<body style=\"color: wheat; background-color: teal; font-size: 12pt; font-family: sans-serif;\">",
*accessIP = "http://192.168.4.1",
*htmlclose = "</body></html>";
String webIP;
void setup() {
webIP.reserve(30); // prevent fragments
digitalWrite(ledpin, HIGH);
pinMode(ledpin, OUTPUT);
Serial.begin(115200);
WiFi.softAP(apname, appass); // start AP mode
webIP = accessIP;
Serial.print("Started Access Point \"");
Serial.print(apname);
Serial.println("\"");
Serial.print("With password \"");
Serial.print(appass);
Serial.println("\"");
WiFi.begin(ssid, password); // attempt starting STA mode
Serial.println("Attempting to start Station mode");
uint32_t moment = millis();
while ((WiFi.status() != WL_CONNECTED) && (millis() < moment + 8000)) {
delay(500);
Serial.print(".");
}
Serial.println("");
if (WiFi.status() == WL_CONNECTED) {
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("espled")) { // type esp8266.local/ in your browser
Serial.println("MDNS responder started, type espled.local/ in your browser");
}
webIP = "/"; //StationIP();
}
else if (WiFi.status() == WL_CONNECT_FAILED) {
Serial.print("Connecting to ");
Serial.print(ssid);
Serial.println(" Unsuccessful.");
}
else if (WiFi.status() == WL_NO_SSID_AVAIL) {
Serial.print("Network ");
Serial.print(ssid);
Serial.println(" not available.");
}
WiFi.reconnect(); // reconnect AP after attempting to connect STA
dnsServer.start(DNS_PORT, "lab.com", IPAddress(192, 168, 4, 1));
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
}
void loop() {
server.handleClient();
dnsServer.processNextRequest();
checkLedStatus();
}
void checkLedStatus() { // our statemachine
switch (ledstatus) {
case 0: {
digitalWrite(ledpin, HIGH);
return;
}
case 1: {
digitalWrite(ledpin, LOW);
return;
}
case 2: {
if (ledBlink(500)) ; // here the return value (of ledBlink() ) gets discarded
return;
}
case 3: {
modulateLed();
return;
}
}
}
void modulateLed() {
static uint16_t ms = 100;
static bool increase = true;
if (!ledBlink(ms)) return;
if (ms > 250) increase = false;
if (ms < 20) increase = true;
if (increase) ms = (ms * 10) / 9;
else ms = (ms * 9) / 10;
}
bool ledBlink(uint32_t wait) {
static bool pinstate = false;
static uint32_t moment = millis();
if (millis() > moment + wait) {
pinstate = !pinstate;
moment = millis();
if (pinstate) digitalWrite(ledpin, LOW);
else digitalWrite(ledpin, HIGH);
return pinstate; // if pinstate is true and the pinstate has changed, the modulator will change speed
}
return false;
}
void handleRoot() {
String ledstatusupdate;
if (server.hasArg("led")) {
if (server.arg("led") == "off") {
ledstatus = 0;
ledstatusupdate = "The LED has been turned Off<br>";
}
else if (server.arg("led") == "on") {
ledstatus = 1;
ledstatusupdate = "The LED has been turned On<br>";
}
else if (server.arg("led") == "blink") {
ledstatus = 2;
ledstatusupdate = "The LED has been set to Blink<br>";
}
else if (server.arg("led") == "modulate") {
ledstatus = 3;
ledstatusupdate = "The LED has been set to Modulate<br>";
}
}
String s = "";
s += pageheader;
s += htmlhead;
s += bodystyle;
s += "<h1>Welcome to ESP webserver</h1><p>From here you can control your LED making it blink or just turn on or off. ";
s += "</p>";
s += ledstatusupdate;
s += "<br>";
s += "<form action=\"";
s += webIP;
s += "\" method=\"get\" name=\"button\">";
s += "<input type=\"hidden\" name=\"led\" value=\"on\">"; // the hidden parameter gets included
s += "<input type=\"submit\" value=\" LED ON \"></form><br>"; // the button simply submits the form
s += "<form action=\"";
s += webIP;
s += "\" method=\"get\" name=\"button\">";
s += "<input type=\"hidden\" name=\"led\" value=\"off\">";
s += "<input type=\"submit\" value=\" LED OFF\"></form><br>";
s += "<form action=\"";
s += webIP;
s += "\" method=\"get\" name=\"button\">";
s += "<input type=\"hidden\" name=\"led\" value=\"blink\">";
s += "<input type=\"submit\" value=\" BLINK \"></form><br>";
s += "<form action=\"";
s += webIP;
s += "\" method=\"get\" name=\"button\">";
s += "<input type=\"hidden\" name=\"led\" value=\"modulate\">";
s += "<input type=\"submit\" value=\"MODULATE\"></form><br>";
s += htmlclose;
yield(); // not stricktly neccesary, though the String class can be slow
server.send(200, "text/html", s); //Send web page
}
String StationIP() {
String stationIP = "http://";
stationIP += WiFi.localIP().toString();
return stationIP;
}
Ze zijn op dezelfde manier programmeerbaar. Je zal wel eerst de 'additional boards URL in de preferences van de IDE moeten zetten en daarna via de boardsmanager de esp boards moeten installeren (voor IDE 2.x.x en de ESP32 hoeft de eerste stap niet)
Dat gaat zeker helpen.
Oh eh batterij voeding ? dat had je nog niet eerder gemeld. ESP bordjes verbruiken relatief gezien best wel wat stroom, alle WiFi verbindingen trouwens, je kan uitgaan van iets van 100mA gemiddeld, dat betekent dat je een beste batterij nodig hebt. Je kan de bordjes wel in slaapstand zetten om stroom te besparen, maar ik betwijfel of je een PIR sensor kan gebruiken om ze weer wakker te maken.
Nee dat kan ongeveer wel. Je kan een webpagina dynamische content geven.
Alles bij elkaar is het wel echt een vrij ingewikkeld project voor een beginner.
Best Deva_Rishi
Het een en ander is mij nu wel duidelijk geworden, ik ga mij nog meer in het arduino en ESP verdiepen zodat ik toch een alarm in elkaar kan prutsen.
Ik dank je voor de duidelijke antwoorden.