zoukankan      html  css  js  c++  java
  • 温控 开关

    double Fahrenheit(double celsius)
    {
    return 1.8 * celsius + 32;
    } //摄氏温度度转化为华氏温度

    double Kelvin(double celsius)
    {
    return celsius + 273.15;
    } //摄氏温度转化为开氏温度

    // 露点(点在此温度时,空气饱和并产生露珠)
    // 参考: [url=http://wahiduddin.net/calc/density_algorithms.htm]http://wahiduddin.net/calc/density_algorithms.htm[/url]
    double dewPoint(double celsius, double humidity)
    {
    double A0 = 373.15 / (273.15 + celsius);
    double SUM = -7.90298 * (A0 - 1);
    SUM += 5.02808 * log10(A0);
    SUM += -1.3816e-7 * (pow(10, (11.344 * (1 - 1 / A0))) - 1) ;
    SUM += 8.1328e-3 * (pow(10, (-3.49149 * (A0 - 1))) - 1) ;
    SUM += log10(1013.246);
    double VP = pow(10, SUM - 3) * humidity;
    double T = log(VP / 0.61078); // temp var
    return (241.88 * T) / (17.558 - T);
    }

    // 快速计算露点,速度是5倍dewPoint()
    // 参考: [url=http://en.wikipedia.org/wiki/Dew_point]http://en.wikipedia.org/wiki/Dew_point[/url]
    double dewPointFast(double celsius, double humidity)
    {
    double a = 17.271;
    double b = 237.7;
    double temp = (a * celsius) / (b + celsius) + log(humidity / 100);
    double Td = (b * temp) / (a - temp);
    return Td;
    }
    #include <Gizwits.h>
    #include <Wire.h>
    #include <SoftwareSerial.h>
    #include <dht11.h>
    SoftwareSerial mySerial(A2, A3); // A2 -> RX, A3 -> TX
    dht11 DHT11;

    #define DHT11PIN A0
    Gizwits myGizwits;
    double d=1;
    #define KEY1 6
    #define KEY2 7
    #define KEY1_SHORT_PRESS 1
    #define KEY1_LONG_PRESS 2
    #define KEY2_SHORT_PRESS 4
    #define KEY2_LONG_PRESS 8
    #define NO_KEY 0
    #define KEY_LONG_TIMER 3
    unsigned long Last_KeyTime = 0;

    unsigned long gokit_time_s(void)
    {
    return millis() / 1000;
    }

    char gokit_key1down(void)
    {
    unsigned long keep_time = 0;
    if (digitalRead(KEY1) == LOW)
    {
    delay(100);
    if (digitalRead(KEY1) == LOW)
    {
    keep_time = gokit_time_s();
    while (digitalRead(KEY1) == LOW)
    {
    if ((gokit_time_s() - keep_time) > KEY_LONG_TIMER)
    {
    Last_KeyTime = gokit_time_s();
    return KEY1_LONG_PRESS;
    }
    } //until open the key

    if ((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)
    {
    return KEY1_SHORT_PRESS;
    }
    return 0;
    }
    return 0;
    }
    return 0;
    }

    char gokit_key2down(void)
    {
    unsigned long keep_time = 0;
    if (digitalRead(KEY2) == LOW)
    {
    delay(100);
    if (digitalRead(KEY2) == LOW)
    {
    keep_time = gokit_time_s();
    while (digitalRead(KEY2) == LOW) //until open the key
    {

    if ((gokit_time_s() - keep_time) > KEY_LONG_TIMER)
    {
    Last_KeyTime = gokit_time_s();
    return KEY2_LONG_PRESS;
    }
    }

    if ((gokit_time_s() - Last_KeyTime) > KEY_LONG_TIMER)
    {
    return KEY2_SHORT_PRESS;
    }
    return 0;
    }
    return 0;
    }
    return 0;
    }

    char gokit_keydown(void)
    {
    char ret = 0;
    ret |= gokit_key2down();
    ret |= gokit_key1down();
    return ret;

    }

    /**
    * KEY_Handle
    * @param none
    * @return none
    */
    void KEY_Handle(void)
    {
    /* Press for over than 3 second is Long Press */
    switch (gokit_keydown())
    {
    case KEY1_SHORT_PRESS:
    mySerial.println(F("KEY1_SHORT_PRESS , Production Test Mode "));
    myGizwits.setBindMode(WIFI_PRODUCTION_TEST);
    break;
    case KEY1_LONG_PRESS:
    mySerial.println(F("KEY1_LONG_PRESS ,Wifi Reset"));
    myGizwits.setBindMode(WIFI_RESET_MODE);
    break;
    case KEY2_SHORT_PRESS:
    mySerial.println(F("KEY2_SHORT_PRESS Soft AP mode"));
    myGizwits.setBindMode(WIFI_SOFTAP_MODE);
    //Soft AP mode
    break;
    case KEY2_LONG_PRESS:
    mySerial.println(F("KEY2_LONG_PRESS ,AirLink mode"));
    myGizwits.setBindMode(WIFI_AIRLINK_MODE);
    digitalWrite(4,HIGH);
    delay(1000);
    digitalWrite(4,LOW);
    break;
    default:
    break;
    }
    }


    void setup() {
    // put your setup code here, to run once:

    mySerial.begin(115200);
    pinMode(KEY1, INPUT_PULLUP);
    pinMode(KEY2, INPUT_PULLUP);
    pinMode(4,OUTPUT);//beeWIFI_AIRLINK成功报警提示这里是配网提示
    pinMode(A0,INPUT);//温湿度传感器
    pinMode(2,OUTPUT);//开关4
    pinMode(3,OUTPUT);//开关5
    Serial.begin(9600);
    myGizwits.begin();


    }
    void wifiStatusHandle()
    {
    if (myGizwits.wifiHasBeenSet(WIFI_SOFTAP))
    {
    mySerial.println(F("WIFI_SOFTAP!"));
    }

    if (myGizwits.wifiHasBeenSet(WIFI_AIRLINK))
    {
    mySerial.println(F("WIFI_AIRLINK!"));
    }

    if (myGizwits.wifiHasBeenSet(WIFI_STATION))
    {
    mySerial.println(F("WIFI_STATION!"));
    }

    if (myGizwits.wifiHasBeenSet(WIFI_CON_ROUTER))
    {
    mySerial.println(F("WIFI_CON_ROUTER!"));
    }

    if (myGizwits.wifiHasBeenSet(WIFI_DISCON_ROUTER))
    {
    mySerial.println(F("WIFI_DISCON_ROUTER!"));
    }

    if (myGizwits.wifiHasBeenSet(WIFI_CON_M2M))
    {
    mySerial.println(F("WIFI_CON_M2M!"));
    }

    if (myGizwits.wifiHasBeenSet(WIFI_DISCON_M2M))
    {
    mySerial.println(F("WIFI_DISCON_M2M!"));
    }
    }
    void loop() {
    KEY_Handle();//key handle , network configure
    wifiStatusHandle();//WIFI Status Handle
    int chk = DHT11.read(DHT11PIN);

    unsigned long varW_t = (float)DHT11.temperature;//Add Sensor Data Collection
    myGizwits.write(VALUE_t, varW_t);
    unsigned long varW_s = (float)DHT11.humidity ;//Add Sensor Data Collection
    myGizwits.write(VALUE_s, varW_s);


    bool varR_W = 0;
    if(myGizwits.hasBeenSet(EVENT_W))
    {
    myGizwits.read(EVENT_W,&varR_W);//Address for storing data

    if(varR_W==1)
    {
    digitalWrite(2,HIGH);

    }
    else{
    digitalWrite(2,LOW);

    }
    }
    unsigned long varR_pwm = 0;
    if(myGizwits.hasBeenSet(EVENT_pwm))
    {
    myGizwits.read(EVENT_pwm,&varR_pwm);//Address for storing data
    d=varR_pwm*(varR_pwm-14.8);
    analogWrite(3,d);

    }



    myGizwits.process();
    }

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181104120309701.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzIzMzE4OQ==,size_16,color_FFFFFF,t_70)

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 传染病控制
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    Java实现 蓝桥杯VIP 算法提高 企业奖金发放
    让程序后台隐藏运行
    只要你喜欢,并且可以养家糊口,就是好的
  • 原文地址:https://www.cnblogs.com/zdh6/p/9903494.html
Copyright © 2011-2022 走看看