NOT PRINTING TO SERIAL

hi i have been making this code to calculate the wetbulb temperature and print it to serial.

it prints its first "DHT22 Test" but then noting prints in serial monitor, and then the lcd i have attached turns off the backlight.

here is the my code

const int critical = -3; //critcal plant freezing temp in degree C
const int led = 10; //soleniod relay
float wetbulb = 0;
#include "DHT.h"

#define DHTPIN 3     // what digital pin we're connected to

// Uncomment whatever type you're using!
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#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("DHT22 test!");
  pinMode(led, OUTPUT);
  dht.begin();
}

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)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  wetbulb = (t * atan(.151977 * pow(h + 8.313659, 0.5))) + atan(t + h) - atan(h - 1.676331) + (.391838 * pow(h, 1.5)) * atan(.023101 * h) - 4.686035

            ; if (wetbulb <= critical) {
    digitalWrite (led, HIGH);   //wetbulb below critical trips led

    // 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");

      Serial.print("Wetbulb");
      Serial.print(wetbulb);
      Serial.print("*C");
      Serial.print("Critical");
      Serial.print(critical);
      Serial.print("*C");
    }
  }
}

The closing brace of your if statement is in the wrong place.
In the IDE you can double-click the opening brace to see the code block high-lighted. Find the closing brace and move it thus:

  if (wetbulb <= critical) 
  {
    digitalWrite (led, HIGH);   //wetbulb below critical trips led
  }  // <--   it wants to be here

I've ignored your LCD problem as you didn't show any code for it.

thanks martin fixed the serial print problem but going back to the LCD problem i am having some problems with the LCD and some of the code to make stuff show up on the LCD.

i am getting the error listed below on the lines of code that are in BOLD
ERROR: expected primary-expression before '.' token


void dht22()
{
// READ DATA
int chk = DHT.read22(DHT22_PIN);
// DISPLAY DATA
lcd.setCursor(0, 1); // Position the LCD cursor (col 0, row 1)
lcd.write(1); // Print the new character labeled 1
lcd.print(" ");
lcd.print(DHT.temperature, 1); // Print a message to the lcd.
lcd.print((char)223);
lcd.print("C ");
lcd.write(2); // Print the new character labeled 2
lcd.print(" ");
lcd.print(DHT.humidity, 1);
lcd.print("%");
}


and here is my whole code, please find the error that is making the lcd backlight to turn off after a few seconds

const int critical = -3; //critcal plant freezing temp in degree C
const int led = 10; //soleniod relay
float wetbulb = 0;
#include "DHT.h"
#include <LiquidCrystal.h>

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


#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
byte temp[8] =             //icon for thermometer
{
    B00100,
    B01011,
    B01010,
    B01111,
    B01110,
    B11111,
    B11111,
    B01110
};

byte drop[8] =             //icon for water droplet
{
    B00100,
    B00100,
    B01110,
    B01110,
    B11111,
    B11111,
    B11111,
    B01110,
};
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

byte bcdToDec(byte val)
{
  return( (val/16*10) + (val%16) );
}

void dht22()
{

 int chk = DHT.read22(DHT22_PIN);  

 lcd.setCursor(0, 1);         // Position the LCD cursor (col 0, row 1)
 lcd.write(1);            // Print the new character labeled 1
 lcd.print(" ");
 lcd.print(DHT.temperature, 1);       // Print a message to the lcd.
 lcd.print((char)223);
 lcd.print("C ");
 lcd.write(2);            // Print the new character labeled 2
 lcd.print(" ");
 lcd.print(DHT.humidity, 1);
 lcd.print("%");
}




void setup() {
  Serial.begin(9600);
  Serial.println("DHT22 test!");
  pinMode(led, OUTPUT);
  dht.begin();
  lcd.createChar(1,temp);        // create a new character labeled 1
  lcd.createChar(2,drop);       // create a new character labeled 2
  lcd.begin(16, 2);         // set up the LCD's number of columns and rows

}

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)
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  wetbulb = (t * atan(.151977 * pow(h + 8.313659, 0.5))) + atan(t + h) - atan(h - 1.676331) + (.391838 * pow(h, 2/3)) * atan(.023101 * h) - 4.686035

            ; if (wetbulb <= critical) {
    digitalWrite (led, HIGH);   //wetbulb below critical trips led
            }
    // 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(" ");
      Serial.print(t);
      Serial.println(" *C");
      Serial.print(" ");

      Serial.print("Wetbulb");
      Serial.print(" ");
      Serial.print(wetbulb);
      Serial.print("*C");
      Serial.print(" ");
      Serial.print("Freeze");
      Serial.print(" ");
      Serial.print(critical);
      Serial.print("*C");
      Serial.print(" ");

      lcd.setCursor (0,0);
      lcd.print("Wetbulb");
      lcd.print(" ");
      lcd.print(wetbulb);
      lcd.print((char)223); // Prints degrees symbol
      lcd.print("C");
      
      
      delay (1000);
    }
  }

Regards
Toby

  wetbulb = (t * atan(.151977 * pow(h + 8.313659, 0.5))) + atan(t + h) - atan(h - 1.676331) + (.391838 * pow(h, 2/3)) * atan(.023101 * h) - 4.686035

            ; if (wetbulb <= critical) {

Put the semicolon where it belongs - at the end of the statement, not two lines later at the beginning of another statement.

Put the { on a new line, where it belongs.

Use Tools + Auto Format to properly indent that mess.

pow(h, 2/3)

2/3 = 0. It is pointless to raise h to the 0 power.

There's not much point in trying to work out why the back-light goes off if the code doesn't compile. I've only had a quick scan of your code, and these are the bits I've noticed:

DHT is the class name, whereas dht is your instance name. So change the DHTs to dht

 lcd.print(dht.temperature, 1);       // note the lower-case instance name

The compiler might also complain about the extra comma at the end of your drop array.

And a hint:
You'll get better help from the serious C/C++ forum members with properly formatted code.