Go Down

Topic: viriual Wire mit ESP ? Abgeschlossen (Read 790 times) previous topic - next topic

Rentner

Feb 17, 2019, 09:18 pm Last Edit: Feb 18, 2019, 12:41 pm by Rentner
Hallo,

habe vor ein paar Tagen die bestellten 433Mhz Module bekommen, und heute etwas damit rumgespielt. Zunächst hab ich die RCSwitch lib verwendet und damit zunächst einen UNO und eine ESP Wemos D1 mini anhand der Beispiele miteinander verbunden. Soweit so gut.
Irgendwann bin ich dann auf die "Viritual Wire" Lib gekommen, um mehrere Variabel mit einem ESP über 433Mhz senden zu können. Allerdings scheint die nicht auf einem ESP zu laufen. Nun gibt es anscheinend auch mehrere modifizierte Versionen davon. Versucht habe ich das Beispiel Transmitter ond den Transmit-Pin auf D1 gelegt. Der Compiler meldet mehrere Fehler.

Kennt jemand eine Quelle für eine lauffähige Version.
Ich weiß, das macht vermutlich keinen Sinn , und mir fällt im Moment auch keine Anwendung ein

Danke schon mal.
Heinz  


Code: [Select]

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

#include <VirtualWire.h>

const int led_pin =D4;
const int transmit_pin = D1;

void 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
    pinMode(led_pin, OUTPUT);
}

byte count = 1;

void loop()
{
  char msg[7] = {'h','e','l','l','o',' ','#'};

  msg[6] = count;
  digitalWrite(led_pin, HIGH); // Flash a light to show transmitting
  vw_send((uint8_t *)msg, 7);
  vw_wait_tx(); // Wait until the whole message is gone
  digitalWrite(led_pin, LOW);
  delay(1000);
  count = count + 1;
}




Code: [Select]



C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp: In function 'void vw_setup(uint16_t)':

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:390:5: error: 'TCCR1A' was not declared in this scope

     TCCR1A = 0; // Output Compare pins disconnected

     ^

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:391:5: error: 'TCCR1B' was not declared in this scope

     TCCR1B = _BV(WGM12); // Turn on CTC mode

     ^

In file included from C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.h:146:0,

                 from C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:31:

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:391:18: error: 'WGM12' was not declared in this scope

     TCCR1B = _BV(WGM12); // Turn on CTC mode

                  ^

C:\Users\Heinz\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:188:25: note: in definition of macro '_BV'

 #define _BV(b) (1UL << (b))

                         ^

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:398:5: error: 'OCR1A' was not declared in this scope

     OCR1A = nticks;

     ^

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:405:5: error: 'TIMSK' was not declared in this scope

     TIMSK |= _BV(OCIE1A);

     ^

In file included from C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.h:146:0,

                 from C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:31:

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:405:18: error: 'OCIE1A' was not declared in this scope

     TIMSK |= _BV(OCIE1A);

                  ^

C:\Users\Heinz\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:188:25: note: in definition of macro '_BV'

 #define _BV(b) (1UL << (b))

                         ^

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp: At global scope:

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:588:7: error: expected constructor, destructor, or type conversion before '(' token

 SIGNAL(TIMER1_COMPA_vect)

       ^

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:668:1: error: expected '}' at end of input

 }

 ^

C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master\VirtualWire.cpp:54:17: warning: 'vw_tx_msg_count' defined but not used [-Wunused-variable]

 static uint16_t vw_tx_msg_count = 0;

                 ^

Bibliothek VirtualWire-master im Ordner: C:\Users\Heinz\Documents\Arduino\libraries\VirtualWire-master (legacy) wird verwendet
exit status 1
Fehler beim Kompilieren für das Board LOLIN(WEMOS) D1 R2 & mini.

Tommy56

Die Lib greift direkt auf Register der AVR zu, die es beim ESP8266 nicht gibt.
Da dürfte es keine Variante für den ESP8266 geben, höchstens eine quasi Neuentwicklung.

Die Endung pde sagt auch schon aus, dass da lange nichts mehr daran getan wurde.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

ardubu

versuch es mal mit der RadioHead Lib

Rentner

versuch es mal mit der RadioHead Lib
Hallo,

hab ich mir gerade mal angesehen , das sieht erst mal gut aus.  :smiley:

Danke Heinz

Rentner

Hallo,

hab ich mir gerade mal angesehen , das sieht erst mal gut aus.  :smiley:

Danke Heinz
nach zwei Anläufen hab ich einen Radio Head Lib gefunden die lauffähig ist. Hier der Link dazu
RadioHead Lib

Folgende Beispiele aus der Lib  ausprobiert und ein wenig angepasst , beide liefen dann sofort.

ask_transmitter auf einem ESP Wemos D1 TX_pin = D1

ask_receiver auf einem UNO als RX_pin = 8

Übertragen lassen sich anscheinend 60 Zeichen.

der Compiler gibt zwar für beide Systeme Warnungen aus, aber es läuft.

Gruß Heinz


Go Up