Σελίδα 2 από 3 ΠρώτηΠρώτη 1 2 3 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 11 έως 20 από 27

Θέμα: Aπορίες σχετικά με arduino και VirtualWire παραδείγματα

  1. #11
    Μέλος Το avatar του χρήστη thanasis 1
    Όνομα
    Θανάσης
    Εγγραφή
    Jul 2010
    Περιοχή
    ΑΘΗΝΑ
    Μηνύματα
    1.382

    Προεπιλογή

    Α δοκιμαζεις το παραδειγμα της virtualwire,το ειχα δοκιμασει παλαιοτερα αλλα το εκανα ξανα δοκιμη και δουλευει ρολοι.
    Μαλλον εχεις θεμα με τα μοντουλακια.Βαλε στην θεση της κεραιας και στα δυο ενα καλωδιο,δεν νομιζω οτι φταιει αυτο
    γιατι αν τα εχεις κοντα και χωρις κεραια επικοινωνουν απλα κανε μια δοκιμη.

    0 Not allowed! Not allowed!

  2. #12
    Μέλος
    Όνομα
    Μάκης
    Εγγραφή
    Sep 2016
    Περιοχή
    Καλλιθέα
    Μηνύματα
    38

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από thanasis 1 Εμφάνιση μηνυμάτων
    Α δοκιμαζεις το παραδειγμα της virtualwire
    Δηλαδή; τι άλλο υπαρχει; Θελώ πχ να στείλω θερμοκρασία. Μαζί με το κωδικα της θερμοκρασίας ανεβάζω και ποιόν άλλον κώδικα για να λειτουργησει το ασυρματο;
    Είχα φορτώσει και το πχ: http://arduinobasics.blogspot.gr/201...-tutorial.html και λειτουργησε, οπότε πρόβλημα συνδεσιμότητας δεν υπαρχει.

    0 Not allowed! Not allowed!

  3. #13
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Σε δοκιμές παλιότερα που έκανα εγώ με τέτοια μοντουλάκια, είχα -περιέργως- πολύ καλά αποτελέσματα και ακόμα βέβαια δουλεύουν μια χαρά. Δοκίμασε απο τα συνημμένα αρχεία να παίξεις. Είναι βέβαια στημένο με δικά μου custom arduin-άκια, και τα δύο με οθόνες για να τα βλέπω αυτόνομα χωρίς υπολογιστή. Με πολύ μικρές μετατροπές παίζουν μια χαρά σε σειριακό τερματικό όπως έχεις στα παραδείγματά σου παραπάνω. Δεν είναι κάτι δύσκολο και είναι βασισμένο στη VirtualWire που λέει και ο Θανάσης.

    Δες και αυτό το link, απο το #98 μέχρι το #101:

    http://www.hlektronika.gr/forum/show...l=1#post645790

    Α, χρόνια πολλά κιόλας Θανάση!
    Συνημμένα Αρχεία Συνημμένα Αρχεία

    0 Not allowed! Not allowed!

  4. #14
    Μέλος Το avatar του χρήστη thanasis 1
    Όνομα
    Θανάσης
    Εγγραφή
    Jul 2010
    Περιοχή
    ΑΘΗΝΑ
    Μηνύματα
    1.382

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από manolena
    Α, χρόνια πολλά κιόλας Θανάση!
    Σε ευχαριστω πολυ μανο.

    0 Not allowed! Not allowed!

  5. #15
    Μέλος
    Όνομα
    Μάκης
    Εγγραφή
    Sep 2016
    Περιοχή
    Καλλιθέα
    Μηνύματα
    38

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από manolena Εμφάνιση μηνυμάτων
    Σε δοκιμές παλιότερα που έκανα εγώ με τέτοια μοντουλάκια, είχα -περιέργως- πολύ καλά αποτελέσματα και ακόμα βέβαια δουλεύουν μια χαρά. Δοκίμασε απο τα συνημμένα αρχεία να παίξεις. Είναι βέβαια στημένο με δικά μου custom arduin-άκια, και τα δύο με οθόνες για να τα βλέπω αυτόνομα χωρίς υπολογιστή. Με πολύ μικρές μετατροπές παίζουν μια χαρά σε σειριακό τερματικό όπως έχεις στα παραδείγματά σου παραπάνω. Δεν είναι κάτι δύσκολο και είναι βασισμένο στη VirtualWire που λέει και ο Θανάσης.

    Δες και αυτό το link, απο το #98 μέχρι το #101:

    http://www.hlektronika.gr/forum/show...l=1#post645790

    Α, χρόνια πολλά κιόλας Θανάση!
    Απ ότι καταλαβα δεν υπαρχουν ετοιμοι κωδικες που να κανουν πομπό και δεκτη να επικοινωνούν μεταξύ τους. Πρέπει μόνοι μας να τροποποιήσουμε τον κώδικα που εχουμε πχ για την υγρασία ωστε ο αισθητηρας (υγρασίας) να στελνει μεσω του ενός arduino και του πομπού τα δεδομενα στο δέκτη και το 2ο arduino και από κει ή στη σειριακή ή στη lcd ???

    manolena
    πρόχειρα λίγο τα είδα...θα τα δοκιμασω και αντί για lcd.print θα γραψω seirial.print. Θερμοκρασία στελνει;

    Χρόνια πολλά για χθες thanasis 1

    0 Not allowed! Not allowed!

  6. #16
    Μέλος Το avatar του χρήστη thanasis 1
    Όνομα
    Θανάσης
    Εγγραφή
    Jul 2010
    Περιοχή
    ΑΘΗΝΑ
    Μηνύματα
    1.382

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από maki Εμφάνιση μηνυμάτων
    Απ ότι καταλαβα δεν υπαρχουν ετοιμοι κωδικες που να κανουν πομπό και δεκτη να επικοινωνούν μεταξύ τους. Πρέπει μόνοι μας να τροποποιήσουμε τον κώδικα που εχουμε πχ για την υγρασία ωστε ο αισθητηρας (υγρασίας) να στελνει μεσω του ενός arduino και του πομπού τα δεδομενα στο δέκτη και το 2ο arduino και από κει ή στη σειριακή ή στη lcd ???

    manolena
    πρόχειρα λίγο τα είδα...θα τα δοκιμασω και αντί για lcd.print θα γραψω seirial.print. Θερμοκρασία στελνει;

    Χρόνια πολλά για χθες thanasis 1
    Ευχαριστω μακη,κοιτα ετοιμος κωδικας να επικοινωνει πομπος και δεκτης ειναι τα παραδειγματα που εχει η virtualwire(transmitter,receiver) απλα στο παραδειγμα αυτο στελνει ενα string και οχι καποιον αριθμο.
    Εσυ απλα πρεπει να τον αριθμο αυτον που δειχνει το αισθητηρια να το μετατρεψεις σε string ωστε να το λαβει ο δεκτης.

    0 Not allowed! Not allowed!

  7. #17
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από maki Εμφάνιση μηνυμάτων
    ...Θερμοκρασία στελνει;
    Το συγκεκριμένο όπως είναι στο βίντεο, μετράει απο ένα I2C M41T80 RTC και ένα LM75 ώρα και θερμοκρασία και τα στέλνει ασύρματα σε απόσταση 20 μέτρων (από την πίσω πρασιά στον δεύτερο όροφο). Η VirtualWire βιβλιοθήκη έχει και ενσωματωμένο έλεγχο CRC και για αυτή την απόσταση δεν έχει δώσει ποτέ λάθος πληροφορία.

    0 Not allowed! Not allowed!

  8. #18
    Μέλος Το avatar του χρήστη sotron1
    Όνομα
    Σωτήρης
    Εγγραφή
    Aug 2007
    Περιοχή
    Αθήνα, Περιστέρι.
    Μηνύματα
    950

    Προεπιλογή

    Πριν ξεκινήσω να φτιάξω αυτό. Πάντα με την βοήθεια του Θανάση thanasis 1 και του Στέφανου Fire Doger

    http://www.hlektronika.gr/forum/showthread.php?t=87923

    Έφτιαξα αυτό, το οποίο μετρά θερμοκρασία και υγρασία.

    Untitled-3.jpg rx.jpg lcd.jpg



    Το οποίο λέει ο κατασκευαστής του προγράμματος, ότι κολλάει λόγω των πομποδεκτών που δουλεύουν στα 443 Mhz, γιαυτό έχει βάλει και μια λέξη code πάνω αριστερά και ένα μετρητή από κάτω πού εάν σταματήσει να μετράει σημαίνει κόλλησε το πρόγραμμα λόγω παρασίτων - θορύβων μέσα στην συχνότητα των 433. Πρέπει μετά να κάνεις reset τον δέκτη. Το συγκεκριμένο άλλες φορές δούλευε 1 ώρα και κόλλαγε άλλες φορές καμιά μέρα χωρίς πρόβλημα. Αλλά δέν δουλεύει με σιγουριά.

    Ο πομπός και δέκτης είναι αυτά.

    https://www.cableworks.gr/ilektronik...t-for-arduino/

    Διαβάζοντας λένε πολλοί ότι τα 433 δε είναι για πολλά πράγματα. Οπότε τα εγκατέλειψα και ασχολήθηκα με αυτό nRF24L01+.

    Εάν ενδιαφέρεστε μπορώ να βάλω και τον κώδικα.





    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη sotron1 : 19-01-17 στις 16:09

  9. #19
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Με αυτό όταν είχα παίξει είχα δει πως όταν δεν υπήρχε σήμα (αν θυμάμαι καλά κάποιος εδώ μου είχε πει ότι ερχόταν σε κορεσμό κάτι) τότε έβγαζε μέχρι τα 5V παράσιτα, ενώ αν υπήρχε σήμα ερχόταν πεντακάθαρο. Ίσως τα παράσιτα δημιουργούσαν κάποια συνεχή λούπα στον δέκτη.
    Κάτι το οποίο διορθώνεται με το WatchDog timer αν ενδιαφέρεσαι να μάθεις πως τους προστατεύουν απ' το 1/1.000.000 να κολλήσει

    0 Not allowed! Not allowed!

  10. #20
    Μέλος Το avatar του χρήστη sotron1
    Όνομα
    Σωτήρης
    Εγγραφή
    Aug 2007
    Περιοχή
    Αθήνα, Περιστέρι.
    Μηνύματα
    950

    Προεπιλογή

    Ο κώδικας είναι αυτός.

    Δέκτης.

    Κώδικας:
    #include <Wire.h>
    #include <VirtualWire.h>
    #include <LiquidCrystal.h>
    const int numberOfAnalogPins = 4; // how many analog integer values to receive
    int data[numberOfAnalogPins]; // the data buffer
    int value[numberOfAnalogPins];// the number of bytes in the data buffer
    const int dataBytes = numberOfAnalogPins * sizeof(int);
    byte msgLength = dataBytes;
    // initialize the library with the numbers of the interface pins
    int i,count;
    char s1[8];
    float t;
    float h;
    int chk;
    LiquidCrystal lcd(3,4,5,6,7,8);
    void setup() {
      // set up the LCD's number of columns and rows: 
    Serial.begin(9600); // Debugging only
    lcd.begin(16, 2);
    vw_set_ptt_inverted(true); // Required for DR3100
    vw_setup(2000); // Bits per sec
    vw_set_rx_pin(2);
    vw_rx_start(); // Start the receiver
    lcd.setCursor(0,0);
    lcd.print("code  tmp  Hmdty");
    }
    int j=0;
    void loop() {
    //Serial.print("Begin:");
    if (vw_get_message((byte*)data, &msgLength))  {    // Non-blocking
    if(msgLength == dataBytes){
    //for (int i = 0; i < numberOfAnalogPins; i++) {
                h=data[1];
                h=h/100;
                t=data[2];
                t=t/100;
                chk=data[3];
                Serial.print("Begin:");
                Serial.print(data[0]);
                Serial.print(" ");
                Serial.print(t);
                Serial.print(" ");
                Serial.println(h);
                if(data[0]==7938) {
                lcd.setCursor(0,1);
                lcd.print("OK");
                lcd.print(chk);
                lcd.print(" ");
                lcd.print(t);
                lcd.print(" ");
                lcd.print(h);
                }
                
      }
                
    }  
    }
    Πομπός

    Κώδικας:
    #include "DHT.h"
    #include <VirtualWire.h>
    const int numberOfAnalogPins = 4; 
    int data[numberOfAnalogPins];
    const int dataBytes = numberOfAnalogPins * sizeof(int); 
    #define DHTPIN 3     // what pin we're connected to
    #define DHTTYPE DHT22   // DHT 22  (AM2302)
    int id1=7938;
    int chk=0;
    DHT dht(DHTPIN, DHTTYPE);
     
    
    void setup() {
      // start serial port
      Serial.begin(9600);
      Serial.println("DHTxx test!");
     
      dht.begin();
      vw_setup(2000); // Bits per sec
    }
    void loop(void) { 
      delay(2000);
      // Reading temperature or humidity takes about 250 milliseconds!
      // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
      float h = dht.readHumidity();
      // Read temperature as Celsius
      float t = dht.readTemperature();
      // Read temperature as Fahrenheit
      float f = dht.readTemperature(true);
      
      // Check if any reads failed and exit early (to try again).
      if (isnan(h) || isnan(t) || isnan(f)) {
        Serial.println("Failed to read from DHT sensor!");
        return;
      }
      data[0]=id1;
      data[1]=h*100;
      data[2]=t*100;
      data[3]=chk;
      send((byte*)data, dataBytes);
      chk=chk+2;
      if(chk>59) chk=0;
    }
    void send (byte *data, int nbrOfBytes) {
    //vw_setup(2000); // Bits per sec
    vw_send(data, nbrOfBytes);
    vw_wait_tx(); // Wait until the whole message is gone
    }

    0 Not allowed! Not allowed!

Σελίδα 2 από 3 ΠρώτηΠρώτη 1 2 3 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Απορίες σχετικά με κυκλωμα
    By Skywaker in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 20-03-15, 18:12
  2. Απορίες σχετικά με το arduino
    By xl_31 in forum Μικροελεγκτές
    Απαντήσεις: 2
    Τελευταίο Μήνυμα: 09-07-11, 01:29
  3. Απορίες σχετικά με CB
    By kanibalfase in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 28-05-11, 23:30
  4. Απορίες σχετικά με το ARDUINO
    By val_mike in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 12
    Τελευταίο Μήνυμα: 16-05-11, 09:27

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας