聆听 发表于 2016-5-7 23:14:09

求大神帮忙写一下程序注释

小弟做一个毕业设计 要用到的代码在下面 求大神帮忙写一下注释谢谢

数据采集端



#include <Wire.h>
#include <LiquidCrystal_I2CT.h>
#include <DHT22.h>

//--------------------------------------------------
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define DHT22_PIN 7

// Setup a DHT22 instance
DHT22 myDHT22(DHT22_PIN);
float HUM = 0;
float TEMP = 0;


//read dth senor data
void readData() {
DHT22_ERROR_t errorCode;
errorCode = myDHT22.readData();
switch (errorCode)
{
    case DHT_ERROR_NONE:
      TEMP = myDHT22.getTemperatureC();
      HUM = myDHT22.getHumidity();
      //      Serial.print("Got Data ");
      //      Serial.print(TEMP);
      //      Serial.print("C ");
      //      Serial.print(HUM);
      //      Serial.println("%");
      // Alternately, with integer formatting which is clumsier but more compact to store and
      // can be compared reliably for equality:
      //
      //      char buf;
      //      sprintf(buf, "Integer-only reading: Temperature %hi.%01hi C, Humidity %i.%01i %% RH",
      //            myDHT22.getTemperatureCInt() / 10, abs(myDHT22.getTemperatureCInt() % 10),
      //            myDHT22.getHumidityInt() / 10, myDHT22.getHumidityInt() % 10);
      //      Serial.println(buf);
      lcd.setCursor(0, 1); //newline
      lcd.print(TEMP);
      lcd.print("C");
      lcd.print(HUM);
      lcd.print("% ");

      break;
    case DHT_ERROR_CHECKSUM:
      TEMP = myDHT22.getTemperatureC();
      HUM = myDHT22.getHumidity();
      //      Serial.print("check sum error ");
      //      Serial.print(TEMP);
      //      Serial.print("C ");
      //      Serial.print(HUM);
      //      Serial.println("%");
      break;
    case DHT_BUS_HUNG:
      Serial.println("BUS Hung ");
      break;
    case DHT_ERROR_NOT_PRESENT:
      Serial.println("Not Present ");
      break;
    case DHT_ERROR_ACK_TOO_LONG:
      Serial.println("ACK time out ");
      break;
    case DHT_ERROR_SYNC_TIMEOUT:
      Serial.println("Sync Timeout ");
      break;
    case DHT_ERROR_DATA_TIMEOUT:
      Serial.println("Data Timeout ");
      break;
    case DHT_ERROR_TOOQUICK:
      Serial.println("Polled to quick ");
      break;
}
}
// 取得测量值
float Get_AD() {
//return random(295, 305);
return HUM;
}
// 消抖滤波法
#define FILTER_N 12
float Value;
int i = 0;
float Filter() {
float new_value;
new_value = Get_AD();
if (Value != new_value) {
    i++;
    if (i > FILTER_N) {
      i = 0;
      Value = new_value;
    }
}
else
    i = 0;
return Value;
}


void setup() {

//开启传感器电
pinMode(8, OUTPUT);
digitalWrite(8, HIGH);

// pinMode(11, OUTPUT);   //该端口需要选择有#号标识的数字口
// put your setup code here, to run once:
Serial.begin(9600);
Serial1.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight(); //Open the backlight
//lcd.print("Light Reader:"); // Print a message to the LCD.
lcd.blink();

}

unsigned long lastConnectionTime = 0;          // last time you connected to the server, in milliseconds
boolean lastConnected = false;               // state of the connection last time through the main loop
const unsigned long postingInterval = 8 * 1000; // delay between updates, in milliseconds

void loop() {

DHT22_ERROR_t errorCode;


Serial.println("");
Serial1.println("");
readData();
floatFilter_Value = Filter();


Serial.print(Filter_Value);
Serial.print(",");
Serial.print(TEMP);
Serial.print("|");

Serial1.print(Filter_Value);
Serial1.print(",");
Serial1.print(TEMP);
Serial1.print("|");
delay(1000);
}

接收端
#include <Wire.h>
#include <LiquidCrystal_I2CT.h>

//--------------------------------------------------
LiquidCrystal_I2C lcd(0x27, 16, 2);

String comdata = "";
char buffer;
int numdata = {0};
int outPin=11;
intmark = 0;
void setup() {

   pinMode(outPin, OUTPUT);//define out pwm
// put your setup code here, to run once:
Serial.begin(9600);
Serial1.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight(); //Open the backlight
lcd.print("Remote Data:"); // Print a message to the LCD.
lcd.blink();
}

void loop() {
int j = 0;
// put your main code here, to run repeatedly:
while (Serial1.available() > 0)
{
    char cc = char(Serial1.read());

    if (cc == '|') {
      mark = 1;
    } else {
      comdata += cc;
      delay(2);
    }

}
if (mark == 1)
{
    mark = 0;

    Serial.println(comdata);
    Serial.println(comdata.length());
   //string token,将data按照空格或者,进行分割并截取
    Serial.print("***");
    //    Serial.println(parameter);
    int position = comdata.indexOf(',');
    String hum = comdata.substring(2, position);
    String temp = comdata.substring(position + 1, comdata.length() - 1);
    lcd.setCursor(0, 1); //newline

    lcd.print(hum);
    lcd.print("%");
    lcd.print(temp);
    lcd.print("C");
   
    int hum_int= atoi(hum.c_str());
    analogWrite(outPin, 150+hum_int);
    comdata = String("");

}
}


原野动力 发表于 2016-5-9 17:00:54

:lol:lol:lol:lol:lol
页: [1]
查看完整版本: 求大神帮忙写一下程序注释