Chciałbym zrobić system automatycznego załączania lamp przy wyspie.
Wyspa ma 4 hookery i 4 lampy, chciałbym zrobić system, który będzie załączał lampę dla danego hookera jeśli ktoś na nim usiądzie i zwróci się w stronę wyspy.
Co np. 5 minut będzie sprawdzał czy ktoś trzyma jeszcze nogi na hookerze pod wyspą.
Jakie sensory polecacie dla takiego systemu aby było w miarę skuteczny.
Chyba zbyt dużo branżowej terminologii i mało kto wie o co chodzi. Domyślam się, że chodzi o bar. Jeśli tak pewnie bez paru fotek przedstawiających szczegóły techniczne tego sprzętu nic się nie da poradzić.
Do tego nie potrzebujesz mikrokotrolera. Wystarczy Ci czujnik ruchu mikrofalowy umieszczony od strony baru, za deska frontowa. Ustawiasz minimalny zasięg i wykrywa obecność człowieka. Złącza Ci oświetlenie. Człowiek znika wyłącza po jakimś tam czasie.
Samo załączanie lamp chce zrobić na ESP01S, a sterowanie czujkami na NodeMCU.
Chodzi o to, że chciałbym mieć 2 tryby pracy auto (na czujnikach) i manual (gdzie sam przesyłam sygnał do ESP) z innego źródła czyli z panelu sterowania.
Tylko czujka mikrofalowa umieszczona pod blatem zaraz przy samym brzegu, zareaguje na przesuwanie hookera a jeśli ktoś go przez przypadek potrąci to zaświeci się lampa.
Czy nie lepszym rozwiązaniem będzie PIR, nie zareaguje wtedy na przesuwanie hookera, tak?
Ewentualnie może na froncie blatu zastosować Ultradźwiękowy czujnik odległości HC-SR04 czy to nie będzie najlepszym rozwiązaniem?
No to Ci podałem wyżej najlepsze rozwiązanie, tzn najprostsze. A załączać możesz sobie ręcznie odpowiednio podłączając wyłącznik równolegle z każdym z czujników. Po co pakujesz do tak prostego układu aż ESP. Wiem że chcesz ale to jak strzelanie z armaty do muchy.
(30-06-2024, 12:03)ewemarkam napisał(a): [ -> ]No to Ci podałem wyżej najlepsze rozwiązanie, tzn najprostsze. A załączać możesz sobie ręcznie odpowiednio podłączając wyłącznik równolegle z każdym z czujników. Po co pakujesz do tak prostego układu aż ESP. Wiem że chcesz ale to jak strzelanie z armaty do muchy.
kupiłem 4 szt HC-SR04 do tego przekaźnik 4 kanałowy ale brakuje na NodeMcu pinów, wykorzystanie S2 lub S3 czyli GPIO10 lub GPIO09 po skompilowaniu płytka nie staruje w konsoli są krzaki, max 3 czyjniki odległości się uruchamiają ale na czarty czujnik brakuje 1 pinu.
Jak mogę to obejść?
Na razie prosty testowy program.
Kod:
#define TRIG1 14
#define ECHO1 2
#define TRIG2 12
#define ECHO2 13
#define TRIG3 15
#define ECHO3 3
#define TRIG4 10
#define ECHO4 1
#define RELAY1 16
#define RELAY2 5
#define RELAY3 4
#define RELAY4 0
long duration;
int distance;
void setup() {
Serial.begin(115200);
pinMode(TRIG1, OUTPUT);
pinMode(ECHO1, INPUT);
pinMode(TRIG2, OUTPUT);
pinMode(ECHO2, INPUT);
pinMode(TRIG3, OUTPUT);
pinMode(ECHO3, INPUT);
pinMode(TRIG4, OUTPUT);
pinMode(ECHO4, INPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
digitalWrite(RELAY1, HIGH);
digitalWrite(RELAY2, HIGH);
digitalWrite(RELAY3, HIGH);
digitalWrite(RELAY4, HIGH);
}
void loop() {
checkSensor(TRIG1, ECHO1, RELAY1);
checkSensor(TRIG2, ECHO2, RELAY2);
checkSensor(TRIG3, ECHO3, RELAY3);
checkSensor(TRIG4, ECHO4, RELAY4);
delay(1000); // Dla stabilności
}
void checkSensor(int trigPin, int echoPin, int relayPin) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.println("Distance Pin: " + String(relayPin) + " : " + String(distance));
if (distance < 50) {
digitalWrite(relayPin, LOW); // Włącza światło
Serial.println("Lights ON: " + String(relayPin));
} else {
digitalWrite(relayPin, HIGH); // Wyłącza światło
Serial.println("Lights OFF: " + String(relayPin));
}
}