Stránka 1 z 2

Ovládanie relé na dialku

Napsal: 10 pro 2019, 21:25
od bauer224
Dobrý deň potreboval by som ovládať relé pomocou NFR24L01 a YL-105... ďakujem

Re: Ovládanie relé na dialku

Napsal: 11 pro 2019, 07:12
od KamilV
A v čem je problém? Jaké je schema zapojení, kde je kód, který chybuje?

Jak to má fungovat? YL-105 je IR ovladač, chceš mít 1 arduino s IR přijímačem, které data přepošle přes 2.4 Ghz do druhého arduina, které ovládá relé? Proč jsou dvě?

Re: Ovládanie relé na dialku

Napsal: 11 pro 2019, 10:47
od pavel1tu
YL-105 - tím myslíte kompletní alarm YL-105 ?
NFR24L01 - to je 2,4GHz vysílač/přijímač který se neumí připojit k žádnému AP, prakticky se používá pro komunikaci mezi sebou, na větší vzdálenosti (100m) dost nespolehlivě i při nižžších rychlostech.

1) rozmyslet si co chci aby to umělo, ne co za HW použiji.
2) podle toho co chci pohledat podobný projekt na internetu

10) zde pomůžeme až s problémy s realizací, nikdo to za Vás nevyrobí, když ani nevíte co chcete

Re: Ovládanie relé na dialku

Napsal: 11 pro 2019, 14:09
od ArduXPP
NFR24L01 je možné použít pro posílání dat do bluetooth :)

Re: Ovládanie relé na dialku

Napsal: 11 pro 2019, 22:42
od martinius96
Tu máš príklad pre vysielač a prijímač, komunikujú obojsmerne (dá sa využiť aj len jednosmerný prenos), t.j. v tomto prípade: Prijímač ti odpovie, čo od teba obdržal - od vysielača. Vysielač vysiela "vždy", prijímač až po prijatí dát raz.
Vysielač posiela hodnoty 0 až 10 dookola. Každých 50ms jednu hodnotu. Verím, že je zrejmé, ako program funguje, pomôže ti aj dokumentácia a upravíš si program pre svoj účel s ovládaním relé: https://maniacbug.github.io/RF24/

V programoch môžeš modifikovať aj vysielací výkon vo funkcii nRF.setPALevel, momentálne je LOW, môžeš použiť MIN, HIGH. MAX používaj iba ak napájaš modul cez 5V pin skrz YL-105!
Knižnica RF24: https://github.com/nRF24/RF24, importuj do Arduino IDE, respektíve do libraries.
Program pre vysielač:

Kód: Vybrat vše

// nRF24L01 vysielac
#include <SPI.h>
#include "RF24.h"
#define CE 4
#define CS 3
RF24 nRF(CE, CS);
int odozva = 0;
int prijem = 0;
byte adresaPrijimac[] = "prijimac00";
byte adresaVysielac[] = "vysielac00";

void setup() {
  Serial.begin(9600);
  nRF.begin();
  nRF.setDataRate( RF24_250KBPS );
  nRF.setPALevel(RF24_PA_LOW);
  nRF.openWritingPipe(adresaVysielac);
  nRF.openReadingPipe(1, adresaPrijimac);
  nRF.startListening();
}

void loop() {
  if (odozva >= 10) {
    odozva = 0;
  }
  nRF.stopListening();
  nRF.write( &odozva, sizeof(odozva) );
  nRF.startListening();
  while (nRF.available()) {
    nRF.read( &prijem, sizeof(prijem) );
  }
  Serial.println("Prijate data: ");
  Serial.println(prijem);
  Serial.println("Odozva: ");
  Serial.println(odozva);
  delay(50);
  odozva++;
}
Program pre prijímač:

Kód: Vybrat vše

// nRF24L01 prijimac
#include <SPI.h>
#include "RF24.h"
#define CE 4
#define CS 3
RF24 nRF(CE, CS);
int odozva = 0;
int prijem = 0;
byte adresaPrijimac[] = "prijimac00"; //adresa prijimac
byte adresaVysielac[] = "vysielac00"; //adresa vysielac

void setup() {
  Serial.begin(9600);
  nRF.begin();
  nRF.setDataRate( RF24_250KBPS );
  nRF.setPALevel(RF24_PA_LOW);
  nRF.openWritingPipe(adresaPrijimac);
  nRF.openReadingPipe(1, adresaVysielac);
  nRF.startListening();
}

void loop() {
  if ( nRF.available()) {
    while (nRF.available()) {
      nRF.read( &prijem, sizeof(prijem) );
    }
    Serial.println("Prijata volba: ");
    Serial.println(prijem);
    Serial.println("Odozva: ");
    Serial.println(odozva);
    nRF.stopListening();
    nRF.write( &odozva, sizeof(odozva) );
    switch (prijem) {
      case 0:
        //PRE HODNOTU STATE 0
        Serial.println("ZAPNEM RELE");
        break;
      case 1:
        //PRE HODNOTU STATE 1
        Serial.println("VYPINAM RELE");
        break;
      default:
        //PRE HODNOTU STATE 2 alebo inu
        Serial.print("HODNOTA Z ROZSAHU 2-10 --> nepridelena akcia");
        break;
    }
    nRF.startListening();
  }
}
Schéma zapojenia (použi zapojenie pre nRF24L01, je to schéma k inému projektu, pinout sedí):
Obrázek

Re: Ovládanie relé na dialku

Napsal: 13 pro 2019, 06:43
od pavel1tu
ArduXPP píše:
11 pro 2019, 14:09
NFR24L01 je možné použít pro posílání dat do bluetooth :)
SUPER, proti mobilu ověřeno ?
To jsem netušil, objednal jsem jich 20 a přišlo mi jich 50, tak zásoby jsou ;)

Re: Ovládanie relé na dialku

Napsal: 15 pro 2019, 11:28
od bauer224
Ďakujem všetkým za odpovede :)
Takže potrebujem to spraviť tak že:

- pozostaval z Arduino nano + YL-105 a v tom NRF24L01+PA+LNA
- ďalej potrebujem ovládať tri tlačítka tlačítka a na primači aby tieto tri tlačítka spínali relé každé osobitne
- a potrebujem prepínač jeden a to keď prepnem do jednej polohy tak spinaci kontakt aby zopol rele na druhej strane, a druhu polohu mam rozpínaciu a aby zase rozpinaci zopol rele na druhej strane.
- a ešte ak sa dá pri strate signálu aby zoplo dalšie samostatné rele.

Ďakujem za pomoc :)

Re: Ovládanie relé na dialku

Napsal: 15 pro 2019, 13:24
od martinius96
Čo si už vyskúšal? Čo ti funguje, nefunguje?
Môžeš použiť daný program vyššie,ktorý som ti vypracoval. Obsahuje 3/4 z toho, čo potrebuješ.
Ďalej použiješ ešte debounce pre správne načítanie tlačidla po jeho stlačení bez zákmitov: https://www.arduino.cc/en/tutorial/debounce
Ak sa nemýlim, prijímač nemá ako určiť, či stratil spojenie, nakoľko nevysiela vždy, ale iba ako odpoveď vysielaču po prijatej informácii.

Môžeš tak odmerať čas od poslednej prijatej informácie funkciou millis(). Do premennej typu unsigned long načítaš čas posledného prijatia informácie. Ak do niekoľkých sekúnd (milisekúnd) nedostaneš odpoveď, urobíš danú akciu. Ak je rozdiel millis - tvoj_odmerany_millis viac ako xy milisekúnd. https://www.arduino.cc/reference/en/lan ... me/millis/
Všetko máš vopred pripravené, už len logicky použiť.

Re: Ovládanie relé na dialku

Napsal: 15 pro 2019, 20:53
od bauer224
Zdravím, ale ja som začiatočník a hladám niekoho kto by mi to spravil.

Re: Ovládanie relé na dialku

Napsal: 15 pro 2019, 21:53
od gilhad
bauer224 píše:
15 pro 2019, 20:53
Zdravím, ale ja som začiatočník a hladám niekoho kto by mi to spravil.
No to mas v podstate dve moznosti
1) zacit se ucit a zkouset a experimentovat, jit po jednotlivych malych krocich, kazdy dotahnout do funkcniho stavu a pak je pospojovat dohromady
2) mame tady subforum Nabidka prace https://www.arduino-forum.cz/viewforum.php?f=30 kde ti to nejspis nekdo za rozumnou cenu udela a nebudes potrebovat vedet skoro nic, staci si zaplatit