Kippenproject verbinden aan app

Hallo,
Ik ben bezig met een kippenproject.
Ik heb een esp 8266 01S die verbonden is aan een arduino uno board.
Ik wil graag dat de kippen automatisch eten krijgen met een vijs zonder einde.
Dat werkt al.
Ik wil nu graag enkele variabelen kunnen veranderen via een app op mijn Iphone.
Ik dacht aan arduino cloud of blynk IOT maar als er nog andere goede apps daarvoor zijn is dat ook goed.

Kan iemand me helpen met een goede app hiervoor te vinden en me helpen met het programmeren en instellen?

Ik heb al is geprobeerd met blynk IOT met deze code:

#define BLYNK_TEMPLATE_ID "TMPL5bSUQRMa4"
#define BLYNK_TEMPLATE_NAME "Chicken feeder"

#define BLYNK_PRINT Serial
#include <SoftwareSerial.h>
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <RtcDS1302.h>
#include <ThreeWire.h>

// WiFi gegevens (vervang deze met jouw gegevens)
char auth[] = "XIX3PH6U8a-FE8c_G3bI_lJVIun4G-Ak";  
char ssid[] = "wifi SSID";   
char pass[] = "wifi wachtwoor";  

// ESP-01S instellingen
SoftwareSerial espSerial(2, 3);  // RX, TX voor ESP-01S
ESP8266 wifi(&espSerial);

// RTC module DS1302
const int buzzPin = 12;
const int relPin = 8;
const int clk = 10;
const int dat = 11;
const int rst = 9;

int Hour = 13, Minute = 58, Second = 10;
int Hour2 = 14, Minute2 = 0, Second2 = 0;
int Hour3 = 15, Minute3 = 30, Second3 = 0;
int Count = 1;  // Standaard in seconden

ThreeWire myWire(dat, clk, rst);
RtcDS1302<ThreeWire> Rtc(myWire);

WidgetTerminal terminal(V12);  // Terminal widget op Virtuele Pin V12

void setup() {
  Serial.begin(115200);  // Debugging naar de seriële monitor in de IDE
  espSerial.begin(115200);
  Blynk.begin(auth, wifi, ssid, pass);

  pinMode(buzzPin, OUTPUT);
  pinMode(relPin, OUTPUT);

  Rtc.Begin();

  // Stel de tijd in als deze niet correct is
  if (!Rtc.IsDateTimeValid()) {
    Serial.println("RTC lost confidence in the DateTime!");  // Weergeven in de IDE
    terminal.println("RTC lost confidence in the DateTime!"); // Weergeven in Blynk
    RtcDateTime currentTime = RtcDateTime(__DATE__, __TIME__);
    Rtc.SetDateTime(currentTime);
  }

  if (!Rtc.GetIsRunning()) {
    Serial.println("RTC was not actively running, starting now"); // Weergeven in de IDE
    terminal.println("RTC was not actively running, starting now"); // Weergeven in Blynk
    Rtc.SetIsRunning(true);
  }

  Serial.println("Blynk Terminal gestart!");  // Weergeven in de IDE
  terminal.println("Blynk Terminal gestart!"); // Weergeven in Blynk
  terminal.flush();  // Zorgt ervoor dat de tekst direct wordt weergegeven
}

// Blynk handlers om de variabelen aan te passen
BLYNK_WRITE(V1) { 
  Hour = param.asInt(); 
  Serial.println("Uur 1 aangepast: " + String(Hour));  // Print naar de seriële monitor
  terminal.println("Uur 1 aangepast: " + String(Hour));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V2) { 
  Minute = param.asInt(); 
  Serial.println("Minuut 1 aangepast: " + String(Minute));  // Print naar de seriële monitor
  terminal.println("Minuut 1 aangepast: " + String(Minute));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V3) { 
  Second = param.asInt(); 
  Serial.println("Seconde 1 aangepast: " + String(Second));  // Print naar de seriële monitor
  terminal.println("Seconde 1 aangepast: " + String(Second));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V5) { 
  Hour2 = param.asInt(); 
  Serial.println("Uur 2 aangepast: " + String(Hour2));  // Print naar de seriële monitor
  terminal.println("Uur 2 aangepast: " + String(Hour2));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V6) { 
  Minute2 = param.asInt(); 
  Serial.println("Minuut 2 aangepast: " + String(Minute2));  // Print naar de seriële monitor
  terminal.println("Minuut 2 aangepast: " + String(Minute2));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V7) { 
  Second2 = param.asInt(); 
  Serial.println("Seconde 2 aangepast: " + String(Second2));  // Print naar de seriële monitor
  terminal.println("Seconde 2 aangepast: " + String(Second2));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V8) { 
  Hour3 = param.asInt(); 
  Serial.println("Uur 3 aangepast: " + String(Hour3));  // Print naar de seriële monitor
  terminal.println("Uur 3 aangepast: " + String(Hour3));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V9) { 
  Minute3 = param.asInt(); 
  Serial.println("Minuut 3 aangepast: " + String(Minute3));  // Print naar de seriële monitor
  terminal.println("Minuut 3 aangepast: " + String(Minute3));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V10) { 
  Second3 = param.asInt(); 
  Serial.println("Seconde 3 aangepast: " + String(Second3));  // Print naar de seriële monitor
  terminal.println("Seconde 3 aangepast: " + String(Second3));  // Print naar de Blynk app
  terminal.flush();
}

BLYNK_WRITE(V4) { 
  Count = param.asInt(); 
  Serial.println("Count aangepast (seconden): " + String(Count));  // Print naar de seriële monitor
  terminal.println("Count aangepast (seconden): " + String(Count));  // Print naar de Blynk app
  terminal.flush();
}

void loop() {
  Blynk.run();  // Houd de verbinding met Blynk actief
  RtcDateTime now = Rtc.GetDateTime();

  String currentTime = String(now.Hour()) + ":" + String(now.Minute()) + ":" + String(now.Second());
  
  // Print huidige tijd naar beide (IDE en Blynk)
  Serial.println("Huidige tijd: " + currentTime);  // Print naar de seriële monitor
  terminal.println("Huidige tijd: " + currentTime);  // Print naar de Blynk app
  terminal.flush();  // Zorgt ervoor dat de tekst direct wordt weergegeven

  // Check of huidige tijd overeenkomt met een van de ingestelde tijden
  if (
    (now.Hour() == Hour && now.Minute() == Minute && now.Second() == Second) ||
    (now.Hour() == Hour2 && now.Minute() == Minute2 && now.Second() == Second2) ||
    (now.Hour() == Hour3 && now.Minute() == Minute3 && now.Second() == Second3)
  ) {
    Serial.println("Relay AAN");  // Print naar de seriële monitor
    terminal.println("Relay AAN");  // Print naar de Blynk app
    terminal.flush();

    digitalWrite(relPin, HIGH);  
    Blynk.virtualWrite(V11, 1); // Relay is AAN in Blynk
    delay(Count * 1000); // Omgerekend naar milliseconden
    digitalWrite(relPin, LOW);
    Blynk.virtualWrite(V11, 0); // Relay is UIT in Blynk
    
    Serial.println("Relay UIT");  // Print naar de seriële monitor
    terminal.println("Relay UIT");  // Print naar de Blynk app
    terminal.flush();

    // Speel melodie af
    tone(buzzPin, 130.81); delay(600);
    tone(buzzPin, 146.83); delay(600);
    tone(buzzPin, 164.81); delay(600);
    tone(buzzPin, 174.61); delay(600);
    tone(buzzPin, 196); delay(600);
    tone(buzzPin, 220); delay(600);
    tone(buzzPin, 246.94); delay(600);

    noTone(buzzPin);  // Stop de buzzer
  }

  delay(1000);  // Kleine vertraging voor de volgende iteratie
}

Maar ik krijg dit terug:

[512] Connecting to Orange-140f2

[1523] ESP is not responding



mijn ESP 8266 01S is zo verbonden:

ESP 8266 Arduino UNO
3V3 3.3V
RX pin 3 (via spanningsdeler 2K ohm)
EN 3.3V
TX pin 2 (via spanningsdeler 2K ohm)
GND GND

Alvast bedankt

Noé

Ik adviseer je WiFi gegevens te wijzigen als je je programma op het forum neerzet.

Die spanningsdeler is niet nodig; misschien dat deze het niveau te ver omlaag brengt en de Uno het daarom niet ziet.

Wat is die spanningsdeler precies? 1k en 1k? Of ...?

Ik denk niet dat ik je verder kan helpen.


Je poging met betrekking tot het gebruik van code tags gaf niet helemaal het gewenste resultaat; ik heb je bericht aangepast.

Dankjewel om mijn bericht aan te passen.

Het is eigenlijk een resistor van 2K ohm.

Het zou er zo uit moeten zien

Links aansluiten op de Arduino Tx, rechts aansluiten op de ESP Rx.