Hello Good day. I am doing a project that would send a message to a receiver when the soil moisture sensor detects water. When the soil moisture sensor detects the water the servo rotates and will send "water detected " to the serial monitor of the receiver. The problem is the receiver cant receive the message when there is a servo. I am using 433mhz transmitter and receiver.
Here is my code. Please help me.
#include<Servo.h>
#include <DallasTemperature.h>
#include<OneWire.h>
#include <RH_ASK.h>
#include <SPI.h>
#define ONE_WIRE_BUS 11
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
RH_ASK rf_driver;
''
Servo myservo;
const int analogpin = A1;
int limitS =300;
int pos=180;
int smokeA0=A0;
int limitG= 230;
int limitT= 50;
void setup() {
Serial.begin(9600);
pinMode(smokeA0,INPUT);
pinMode(analogpin,INPUT);
myservo.attach(4);
rf_driver.init();
}
void loop() {
float sensorValue=analogRead(smokeA0);
float sensor=analogRead(analogpin);
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
if(sensor>limitS){
Serial.println(" | water detected!: ");
Serial.println (sensor);
myservo.write(pos);
delay(500);
const char *msg = "1";
rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
exit(0);}
if (sensorValue>limitG && tempC>limitT) {
Serial.print("SUNOG\n");
Serial.println(" | Smoke detected:");
Serial.println (sensorValue);
delay(100);
myservo.write(pos);
delay(500);
const char *msg = "1";
rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
exit(0);
}
else{
myservo.write(0);
}
}
''