#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <RF24.h>
#define SOIL_MOISTURE_PIN A0
#define ONE_WIRE_BUS 4 // DS18B20 data pin
#define RF_CE_PIN 9
#define RF_CSN_PIN 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
RF24 radio(RF_CE_PIN, RF_CSN_PIN);
void setup() {
Serial.begin(9600);
sensors.begin();
radio.begin();
radio.openWritingPipe(0xF0F0F0F0E1LL); // Set the pipe address
radio.setPALevel(RF24_PA_LOW); // Set the power level
}
void loop() {
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
int soilMoisture = analogRead(SOIL_MOISTURE_PIN);
// Format data as JSON
String data = "{\"temperature\":" + String(temperature) + ",\"soil_moisture\":" + String(soilMoisture) + "}";
// Send data via NRF24L01
radio.write(data.c_str(), data.length());
delay(10000); // Transmit data every 10 seconds
}