نمایش نتایج: از 1 به 1 از 1
Like Tree1 لایک
  • 1 Post By feri

موضوع: Am2301+eeprom

  1. #1
    Junior Member
    تاریخ عضویت
    Aug 2016
    نوشته ها
    5

    Question Am2301+eeprom

    برنامه ماژول دما و رطوبت am2301 و eeprom , Millis است
    دما و رطوبت داخل eeprom ذخیره میشه , max دما و رطوبت مشخص میکنه و همچنین در بازه زمانی مورد نظر(مثلا 5 دقیقه)
    کد به صورت زیر است

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

    #include "DHT.h"
    #include <EEPROM.h>
    #include <elapsedMillis.h>
    elapsedMillis timeElapsed;
    unsigned int interval = 10;
    int address = 0;
    int address1 = 1;

    byte value;

    #define DHTPIN 3 // 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
    // 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

    DHT dht(DHTPIN, DHTTYPE);

    void setup() {
    Serial.begin(9600);
    Serial.println("DHTxx test!");
    dht.begin();
    EEPROM.write(address,0);
    EEPROM.write(address1,0);
    while (!Serial) {
    }
    }

    void loop() {
    // Reading temperature or humidity takes about 250 milliseconds!
    // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
    int h = dht.readHumidity();
    int t = dht.readTemperature();

    // check if returns are valid, if they are NaN (not a number) then something went wrong!
    if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
    } else {
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: ");
    Serial.print(t);
    Serial.println(" *C");
    int x=EEPROM.read(address);
    if (h>x)
    {
    EEPROM.write(address,h);
    }

    int y=EEPROM.read(address1);

    if (t>y)
    {
    EEPROM.write(address1,t);
    }
    Serial.print("tem: ");
    Serial.println(y);
    Serial.print("hu: ");
    Serial.println(x);
    if (timeElapsed > interval)
    {
    timeElapsed = 0; // reset the counter to 0 so the counting starts over...
    }



    }
    }
    ویرایش توسط feri : 08-28-2016 در ساعت 09:41 AM دلیل: فهمیدن سوال
    لایک کردن

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO