Εμφάνιση αποτελεσμάτων : 1 έως 6 από 6

Θέμα: Arduino σύνδεση για δημιουργία Κλωσσομηχανής

  1. #1
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή Arduino σύνδεση για δημιουργία Κλωσσομηχανής

    Θέλω να φτιάξω το παρακάτω project για το κλείσιμο στις λάμπες στην καλτσομηχανή μου. .

    arduinoBulb.png

    Ως αισθητήρα θερμοκρασίας υγρασίας χρησιμοποιώ τον RHT03
    10167-04.png

    χρειάζομαι βοήθεια ως προς τον κώδικα αλλά και την σύνδεση του κυκλώματος , δηλαδή
    η θερμοκρασία στόχος είναι οι 37.8 βαθμοί Κελσίου και η ενεργοποίηση στις λάμπες να γίνεται στους -0.3 βαθμούς κελσίου απο την θερμοκρασία στόχο (δηλαδή στους 37.5 Κελσίου). . και κόψιμο στους 38 . .

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.775

    Προεπιλογή

    γιατι οχι με λμ35

    0 Not allowed! Not allowed!

  3. #3
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από finos Εμφάνιση μηνυμάτων
    γιατι οχι με λμ35
    Γιατί στο μαγαζί που πήγα δεν είχε lm35 διαθέσιμο.. Οπότε πήρα αυτόν!

    0 Not allowed! Not allowed!

  4. Ένα μέλος ευχαρίστησε τον hackertom για αυτό το χρήσιμο μήνυμα:

    finos (21-07-15)

  5. #4
    Μέλος Το avatar του χρήστη finos
    Όνομα
    Βαγγελης
    Εγγραφή
    Feb 2013
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    1.775

    Προεπιλογή

    Κώδικας:
    include <dht.h>dht DHT;
    
    #define DHT22_PIN 5
    void setup()
    {
        Serial.begin(9600);
        Serial.println("DHT TEST PROGRAM ");
        Serial.print("LIBRARY VERSION: ");
        Serial.println(DHT_LIB_VERSION);
        Serial.println();
        Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
    }
    void loop()
    {
        // READ DATA
        Serial.print("DHT22, \t");
        int chk = DHT.read22(DHT22_PIN);
        switch (chk)
        {
            case DHTLIB_OK: 
                Serial.print("OK,\t"); 
                break;
            case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
            case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
            default: 
                Serial.print("Unknown error,\t"); 
                break;
        }
        // DISPLAY DATA
        Serial.print(DHT.humidity, 1);
        Serial.print(",\t");
        Serial.println(DHT.temperature, 1);
        delay(1000);

    0 Not allowed! Not allowed!

  6. #5
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από finos Εμφάνιση μηνυμάτων
    Κώδικας:
    include <dht.h>dht DHT;
    
    #define DHT22_PIN 5
    void setup()
    {
        Serial.begin(9600);
        Serial.println("DHT TEST PROGRAM ");
        Serial.print("LIBRARY VERSION: ");
        Serial.println(DHT_LIB_VERSION);
        Serial.println();
        Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
    }
    void loop()
    {
        // READ DATA
        Serial.print("DHT22, \t");
        int chk = DHT.read22(DHT22_PIN);
        switch (chk)
        {
            case DHTLIB_OK: 
                Serial.print("OK,\t"); 
                break;
            case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
            case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
            default: 
                Serial.print("Unknown error,\t"); 
                break;
        }
        // DISPLAY DATA
        Serial.print(DHT.humidity, 1);
        Serial.print(",\t");
        Serial.println(DHT.temperature, 1);
        delay(1000);
    Βγάζει πάρα πολλά λάθη στο compile και επίσης δεν καταλαβαίνω τι ακριβώς κάνεις.. Για το διάβαζα του sensor χρησιμοποιώ τον παρακάτω κώδικα :


    // Example testing sketch for various DHT humidity/temperature sensors
    // Written by ladyada, public domain

    #include "DHT.h"

    #define DHTPIN 2 // what pin we're connected to

    // Uncomment whatever type you're using!
    //#define DHTTYPE DHT11 // DHT 11
    #define DHTTYPE DHT22 // DHT 22 (AM2302)
    //#define DHTTYPE DHT21 // DHT 21 (AM2301)

    // Connect pin 1 (on the left) of the sensor to +5V
    // NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
    // to 3.3V instead of 5V!
    // Connect pin 2 of the sensor to whatever your DHTPIN is
    // Connect pin 4 (on the right) of the sensor to GROUND
    // Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

    // Initialize DHT sensor.
    // Note that older versions of this library took an optional third parameter to
    // tweak the timings for faster processors. This parameter is no longer needed
    // as the current DHT reading algorithm adjusts itself to work on faster procs.
    DHT dht(DHTPIN, DHTTYPE);

    void setup() {
    Serial.begin(9600);
    Serial.println("DHTxx test!");

    dht.begin();
    }

    void loop() {
    // Wait a few seconds between measurements.
    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 (the default)
    float t = dht.readTemperature();
    // Read temperature as Fahrenheit (isFahrenheit = true)
    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;
    }

    // Compute heat index in Fahrenheit (the default)
    float hif = dht.computeHeatIndex(f, h);
    // Compute heat index in Celsius (isFahreheit = false)
    float hic = dht.computeHeatIndex(t, h, false);

    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(f);
    Serial.print(" *F\t");
    Serial.print("Heat index: ");
    Serial.print(hic);
    Serial.print(" *C ");
    Serial.print(hif);
    Serial.println(" *F");
    }
    Δουλεύει χωρίς πρόβλημα αυτός που παρέθεσα και προβάλει την θερμοκρασία + την υγρασία στο serial monitor,
    Τώρα..
    Λογικά κάπου μέσα στον κώδικα πρέπει να βάλω ένα If / else για τον έλεγχο θερμοκρασίας αν είναι < = 27.5 C κλείσε το ssr (πρέπει να οριστούν και τα pin που θα κλείνουν το ssr λογικά έτσι όπως το σκέφτομαι) και έτσι θα ανοίγει η λάμπα, διαφορετικά αν η θερμοκρασία είναι > = 38 C κλείσε τα pin 9 παράδειγμα αφού το gnd - θα δείνει συνέχεια . . .

    0 Not allowed! Not allowed!

  7. #6
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή

    Δεύτερη μέρα ασχολίας μου με το arduino και το μόνο που έχω να πω είναι λίγο! Με ελάχιστες γνώσεις προγραμματισμού μπορείς να κάνεις θαύματα!!! Ιδού η λύση!!!


    // Example testing sketch for various DHT humidity/temperature sensors
    // Written by ladyada, public domain

    #include "DHT.h"

    #define DHTPIN 2 // what pin we're connected to

    #define DHTTYPE DHT22 // DHT 22 (AM2302)

    DHT dht(DHTPIN, DHTTYPE);
    int motorPin1 = 13;
    void setup() {
    Serial.begin(9600);
    Serial.println("DHTxx test!");
    pinMode(motorPin1, OUTPUT);

    dht.begin();
    }

    void loop() {
    // Wait a few seconds between measurements.
    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 (the default)
    float t = dht.readTemperature();
    // Read temperature as Fahrenheit (isFahrenheit = true)
    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;
    }

    // Compute heat index in Fahrenheit (the default)
    float hif = dht.computeHeatIndex(f, h);
    // Compute heat index in Celsius (isFahreheit = false)
    float hic = dht.computeHeatIndex(t, h, false);

    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(f);
    Serial.print(" *F\t");
    Serial.print("Heat index: ");
    Serial.print(hic);
    Serial.print(" *C ");
    Serial.print(hif);
    Serial.println(" *F");



    if (hic <= 37.5){
    digitalWrite(motorPin1, HIGH);
    }
    else{
    digitalWrite(motorPin1, LOW);
    delay(10);


    }

    GND και Pin 13 ενεργοποιούν το ρελέ ! Η ενεργοποίηση γίνεται 0.3 βαθμούς πριν τον στόχο δηλαδή 37.5 C!

    1 Not allowed! Not allowed!

  8. Ένα μέλος ευχαρίστησε τον hackertom για αυτό το χρήσιμο μήνυμα:

    finos (21-07-15)

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

  1. Pid σύνδεση σε κλωσσομηχανή!
    By hackertom in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 12
    Τελευταίο Μήνυμα: 20-07-15, 08:35
  2. Απαντήσεις: 4
    Τελευταίο Μήνυμα: 25-04-15, 16:52
  3. Κατασκευη κλωσσομηχανής
    By kwstasym in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 8
    Τελευταίο Μήνυμα: 13-02-13, 21:54
  4. Κατασκευη κλωσσομηχανής
    By Diogenis29 in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 11
    Τελευταίο Μήνυμα: 17-10-12, 23:26

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

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