Aprire cancello elettrico con Arduino

lesto:

  1. Colleghi la RX all'arduino, che rimanda i codici letti via seriale al pc.
  2. Clicchi il pulsante del tuo telecomando
  3. Profit!

Grazie per la risposta. In sostanza mi copio il codice che leggo da seriale premendo il bottone dal telecomando e poi lo stesso codice, lo uso con Arduino con il TX, è corretto ? Quale codice mi consigli di usare ? Grazie e buona serata

Soluzione universale ? Futura GSM shield 900, arriva l'sms ed apre tutto.

Così se salta la cella vicino a casa tua, non apri il cancello. Idem se hai il cell scarico....
Ma si faceva tanto bene a mano, una volta... :wink:

Aveva chiesto una soluzione universale ! Certo, se poi manca l'eletteicita manco i santi lo aprono

Sì sì , ma non ce l'avevo con te. Era una constatazione fatta ad alta voce :wink:

Non me la sono presa :grin:

anerDev:
Soluzione universale ? Futura GSM shield 900, arriva l'sms ed apre tutto.

Grazie per la risposta. Questa idea non mi piace molto. Utilizzerei un'interfaccia web, potretta, in modo da gestire il tutto dai dispositivi anche a distanza. Qualcuno ha qualche codice per leggere il segnale dal telecomando che apre il garage ?

Dopo aver cercato sul web qualche soluzione, ho utilizzato il seguente programma:

// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@airspayce.com)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>

void setup()
{
    Serial.begin(9600);	// Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);	 // Bits per sec

    vw_rx_start();       // Start the receiver PLL running
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
	int i;

        digitalWrite(13, true); // Flash a light to show received good message
	// Message with a good checksum received, dump it.
	Serial.print("Got: ");
	
	for (i = 0; i < buflen; i++)
	{
	    Serial.print(buf[i], HEX);
	    Serial.print(" ");
	}
	Serial.println("");
        digitalWrite(13, false);
    }
}

Ho collegato il data al PIN 11, ma purtroppo non riesco a leggere nessun valore. Ho provato ad utilizzare il tester, per vedere se venisse il rilevato il segnale radio sul DATA e in effetti viene rilevato. Qual'è secondo voi il problema ? L'apparecchio che sto usando è YR-MK-5V. Grazie per il supporto.

lesto:

  1. Colleghi la RX all'arduino, che rimanda i codici letti via seriale al pc.
  2. Clicchi il pulsante del tuo telecomando
  3. Profit!

Ciao,
Ho fatto vari tentavi ma non mi legge niente sul seriale ! Utilizzo il programma presente nella libreria virtualwire. Secondo è possibile che non riesca a leggere niente perché la comunicazione è protetta ?

scuro che la libreria vada bene per il tuo chip? hai comprato sia TX che RX? se si provali assieme. Quei moduli supportano uno due tipi di protocolli di comunicazione, magari il tuo telecomando ne usauno differente?

prova con questa libreria

lesto:
scuro che la libreria vada bene per il tuo chip? hai comprato sia TX che RX? se si provali assieme. Quei moduli supportano uno due tipi di protocolli di comunicazione, magari il tuo telecomando ne usauno differente?

Ciao,
ho acquisto il seguente pacchetto di TX e RX http://www.ebay.it/itm/130935369861?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_2038wt_1414 (funzionano alla frequenza 433 MHz) e
utilizzo il seguente programma per leggere i dati:

#include <VirtualWire.h>

const int led_pin = 6;
const int transmit_pin = 12;
const int receive_pin = 7;
const int transmit_en_pin = 3;

void setup()
{
    delay(1000);
    Serial.begin(9600);	// Debugging only
    Serial.println("setup");

    // Initialise the IO and ISR
    vw_set_tx_pin(transmit_pin);
    vw_set_rx_pin(receive_pin);
    vw_set_ptt_pin(transmit_en_pin);
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000);	 // Bits per sec

    vw_rx_start();       // Start the receiver PLL running
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
	int i;

        digitalWrite(led_pin, HIGH); // Flash a light to show received good message
	// Message with a good checksum received, print it.
	Serial.print("Got: ");
	
	for (i = 0; i < buflen; i++)
	{
	    Serial.print(buf[i], HEX);
	    Serial.print(' ');
	}
	Serial.println();
        digitalWrite(led_pin, LOW);
    }
}

Purtroppo non riesco a leggere niente, anche se con il tester, si vede che il sensore rileva il segnale del telecomando.

bene, allora al posto che usare una libreria, metti una bella digitalRead e leggi la durata degli impuli alti/bassi.

Ecco la soluzione ... Redirecting

E' proprio una guida "antiscemo" ... dice pure che anche se si invertono le resistenze fa lo stesso :slight_smile: :slight_smile:

Quali resistenze ...... Quelle da 10.220 Ohm ?

Brunello:
Quali resistenze ...... Quelle da 10.220 Ohm ?

Ahahahahhaha non l'avevo visto!! sisi proprio quelle un fumetto in un'altra immagine dice che puoi anche invertirle :slight_smile: :slight_smile: