shrooms-server/humdifier_controller/humdifier_controller.ino

110 lines
2.0 KiB
C++

/*
modified on Apr 10, 2021
Modified by MehranMaleki from Arduino Examples
Home
*/
// this is using the HiLetgo 5V 4 Channel Relay Shield
// pinout is apparently 7,6,5,4
#define USE_SHT30
#ifdef USE_SHT30
#include "SHT85.h"
#define SHT85_ADDRESS 0x44
SHT85 sht30;
#else
#include <Wire.h>
#include "DFRobot_SHT20.h"
TwoWire twowire;
DFRobot_SHT20 sht20(&twowire);
#endif
void fanOn() {
digitalWrite(7, HIGH);
}
void fanOff() {
digitalWrite(7, LOW);
}
void setup()
{
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
Serial.begin(115200);
#ifdef USE_SHT30
Wire.begin();
sht30.begin(SHT85_ADDRESS);
Wire.setClock(10000);
#else
twowire.setClock(10000);
sht20.initSHT20(); // Init SHT20 Sensor
#endif
delay(100);
//sht20.checkSHT20(); // Check SHT20 Sensor
}
// relay 4
void toggle() {
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
}
// relay 3
void toggle2() {
digitalWrite(5, HIGH);
delay(100);
digitalWrite(5, LOW);
}
void toggle_test(int p) {
digitalWrite(p, HIGH);
delay(100);
digitalWrite(p, LOW);
}
void loop()
{
while (Serial.available()) {
const int c = Serial.read();
if (c == 's') {
// TODO dump the current status
#ifdef USE_SHT30
sht30.read();
float humd = sht30.getHumidity();
float temp = sht30.getTemperature();
#else
float humd = sht20.readHumidity(); // Read Humidity
float temp = sht20.readTemperature(); // Read Temperature
#endif
float volts = (5.0f/1024.0f)*analogRead(A2);
float volts2 = (5.0f/1024.0f)*analogRead(A0);
Serial.print(humd);
Serial.print(",");
Serial.print(temp);
Serial.print(",");
Serial.print(volts);
Serial.print(",");
Serial.println(volts2);
} else if (c == 'h') {
toggle();
} else if (c == 'i') {
toggle2();
} else if (c >= 'A' && c <= 'Z') {
toggle_test(c - 'A');
}
}
delay(1);
}