working soil sensor
This commit is contained in:
parent
42830e1200
commit
50dff40902
|
|
@ -14,7 +14,7 @@
|
||||||
#if defined(USE_ARDUINO)
|
#if defined(USE_ARDUINO)
|
||||||
#define RH_RX_PIN 11
|
#define RH_RX_PIN 11
|
||||||
#elif defined(USE_ESPRESSIF)
|
#elif defined(USE_ESPRESSIF)
|
||||||
#define RH_RX_PIN 12
|
#define RH_RX_PIN D8
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define RH_BUF_LEN 5
|
#define RH_BUF_LEN 5
|
||||||
|
|
@ -22,6 +22,9 @@ uint8_t rh_buf[RH_BUF_LEN];
|
||||||
|
|
||||||
#define RH_ASK_MAX_MESSAGE_LEN RH_BUF_LEN
|
#define RH_ASK_MAX_MESSAGE_LEN RH_BUF_LEN
|
||||||
|
|
||||||
|
const int AirValue = 800; //replace the value with value when placed in air
|
||||||
|
const int WaterValue = 345; //replace the value with value when placed in water
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
RH_ASK driver(RH_SPEED, RH_RX_PIN);
|
RH_ASK driver(RH_SPEED, RH_RX_PIN);
|
||||||
|
|
@ -29,6 +32,7 @@ RH_ASK driver(RH_SPEED, RH_RX_PIN);
|
||||||
float t = 0;
|
float t = 0;
|
||||||
float h = 0;
|
float h = 0;
|
||||||
long bat = 0;
|
long bat = 0;
|
||||||
|
int soil = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Message identifier constants:
|
* Message identifier constants:
|
||||||
|
|
@ -37,6 +41,7 @@ long bat = 0;
|
||||||
#define MSG_TEMP 0x01
|
#define MSG_TEMP 0x01
|
||||||
#define MSG_HUMID 0x02
|
#define MSG_HUMID 0x02
|
||||||
#define MSG_BAT 0x03
|
#define MSG_BAT 0x03
|
||||||
|
#define MSG_SOIL 0x04
|
||||||
#define MSG_ERR 0xee
|
#define MSG_ERR 0xee
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
|
@ -71,6 +76,14 @@ void loop() {
|
||||||
Serial.print(t);
|
Serial.print(t);
|
||||||
Serial.println(" %");
|
Serial.println(" %");
|
||||||
break;
|
break;
|
||||||
|
case MSG_SOIL:
|
||||||
|
// Soil Humidity:
|
||||||
|
Serial.println("0x04 Soil Humidity");
|
||||||
|
|
||||||
|
memcpy(&soil, &rh_buf[1], 2);
|
||||||
|
Serial.println(soil);
|
||||||
|
Serial.println(map(soil, AirValue, WaterValue, 0, 100));
|
||||||
|
break;
|
||||||
case MSG_BAT:
|
case MSG_BAT:
|
||||||
// battery data
|
// battery data
|
||||||
Serial.println("0x03 Battery");
|
Serial.println("0x03 Battery");
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,9 @@
|
||||||
// pin of the DHT22 sensor
|
// pin of the DHT22 sensor
|
||||||
#define DHT_PIN 1
|
#define DHT_PIN 1
|
||||||
|
|
||||||
|
// pin of the soil sensor
|
||||||
|
#define SOIL_PIN A1
|
||||||
|
|
||||||
// the own RadioHead address
|
// the own RadioHead address
|
||||||
#define RH_OWN_ADDR 0xca // 202
|
#define RH_OWN_ADDR 0xca // 202
|
||||||
|
|
||||||
|
|
@ -29,9 +32,9 @@
|
||||||
#define RH_SPEED 1000
|
#define RH_SPEED 1000
|
||||||
|
|
||||||
// pins for the radio hardware
|
// pins for the radio hardware
|
||||||
#define RH_RX_PIN 5 // not used, set to a non-existent pin
|
#define RH_RX_PIN 6 // not used, set to a non-existent pin
|
||||||
#define RH_TX_PIN 3
|
#define RH_TX_PIN 3
|
||||||
#define RH_PTT_PIN 5 // not used, set to a non-existent pin
|
#define RH_PTT_PIN 6 // not used, set to a non-existent pin
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <avr/sleep.h>
|
#include <avr/sleep.h>
|
||||||
|
|
@ -68,6 +71,7 @@ uint8_t rh_buf[RH_BUF_LEN] = { 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||||
#define MSG_TEMP 0x01
|
#define MSG_TEMP 0x01
|
||||||
#define MSG_HUMID 0x02
|
#define MSG_HUMID 0x02
|
||||||
#define MSG_BAT 0x03
|
#define MSG_BAT 0x03
|
||||||
|
#define MSG_SOIL 0x04
|
||||||
#define MSG_ERR 0xee
|
#define MSG_ERR 0xee
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -95,6 +99,8 @@ void setup() {
|
||||||
// setup the LED pin
|
// setup the LED pin
|
||||||
pinMode(LED_PIN, OUTPUT);
|
pinMode(LED_PIN, OUTPUT);
|
||||||
|
|
||||||
|
pinMode(SOIL_PIN, INPUT);
|
||||||
|
|
||||||
// init the DHT22
|
// init the DHT22
|
||||||
dht_init(&dht, DHT_PIN);
|
dht_init(&dht, DHT_PIN);
|
||||||
|
|
||||||
|
|
@ -132,6 +138,7 @@ void loop() {
|
||||||
// temperature and humidity
|
// temperature and humidity
|
||||||
float t = 0;//float is 32bit = 1byte
|
float t = 0;//float is 32bit = 1byte
|
||||||
float h = 0;
|
float h = 0;
|
||||||
|
int soil = 0;
|
||||||
long battery = 0;
|
long battery = 0;
|
||||||
|
|
||||||
if (counter % 4 == 0) {
|
if (counter % 4 == 0) {
|
||||||
|
|
@ -140,12 +147,16 @@ void loop() {
|
||||||
memcpy(&rh_buf[1], &battery, 4);
|
memcpy(&rh_buf[1], &battery, 4);
|
||||||
rh_send(RH_BUF_LEN);
|
rh_send(RH_BUF_LEN);
|
||||||
}else if (dht_read_data(&dht, &t, &h) == 1) {
|
}else if (dht_read_data(&dht, &t, &h) == 1) {
|
||||||
if (counter % 2 == 0) {
|
if (counter % 3 == 0) {
|
||||||
rh_buf[0] = MSG_TEMP;
|
rh_buf[0] = MSG_TEMP;
|
||||||
memcpy(&rh_buf[1], &t, 4);
|
memcpy(&rh_buf[1], &t, 4);
|
||||||
} else if (counter % 2 == 1) {
|
} else if (counter % 3 == 1) {
|
||||||
rh_buf[0] = MSG_HUMID;
|
rh_buf[0] = MSG_HUMID;
|
||||||
memcpy(&rh_buf[1], &h, 4);
|
memcpy(&rh_buf[1], &h, 4);
|
||||||
|
} else if (counter % 3 == 2) {
|
||||||
|
rh_buf[0] = MSG_SOIL;
|
||||||
|
soil = analogRead(SOIL_PIN);
|
||||||
|
memcpy(&rh_buf[1], &soil, 2);
|
||||||
}
|
}
|
||||||
rh_send(RH_BUF_LEN);
|
rh_send(RH_BUF_LEN);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue