Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
KC868-A4S ESP32 I/O pin define
#8
Good morning . I have a problem with the definition of the pins that you sent on the KC868-A4S can I have some clarification with an example of code using two ds18b20 two between digital switches and I use a current sensor and another sensor power outage detection


#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <PCF8574.h>  // Pour le contrôle des relais via I2C (adresse 0x24)
// Pin DS18B20
#define ONE_WIRE_BUS_1 5  // DS18B20 - 1er capteur (bande de DEL - 1)
#define ONE_WIRE_BUS_2 14 // DS18B20 - 2ème capteur (bande de DEL - 2)
OneWire oneWire1(ONE_WIRE_BUS_1);
OneWire oneWire2(ONE_WIRE_BUS_2);
DallasTemperature sensors1(&oneWire1);
DallasTemperature sensors2(&oneWire2);
// Relais I2C Adresse 0x24
PCF8574 pcf8574(0x24);
// Entrées de détection (interrupteurs)
#define INTERRUPT_PIN1 2  // Interrupteur 1
#define INTERRUPT_PIN2 3  // Interrupteur 2
// Capteur de courant (ACS712)
#define CURRENT_SENSOR_PIN A0
// Capteur de coupure de courant
#define POWER_FAILURE_PIN 7
// Variables pour stocker les températures
float temp1 = 0.0;
float temp2 = 0.0;
void setup() {
  // Initialisation de la communication série
  Serial.begin(115200);
  // Initialisation du bus I2C
  Wire.begin();
  // Initialisation des capteurs de température DS18B20
  sensors1.begin();
  sensors2.begin();
  // Initialisation des relais via I2C
  pcf8574.begin();
  pcf8574.pinMode(P0, OUTPUT);
  pcf8574.pinMode(P1, OUTPUT);
  pcf8574.pinMode(P2, OUTPUT);
  pcf8574.pinMode(P3, OUTPUT);
  // Initialisation des interrupteurs
  pinMode(INTERRUPT_PIN1, INPUT_PULLUP);  // Interrupteur 1
  pinMode(INTERRUPT_PIN2, INPUT_PULLUP);  // Interrupteur 2
  // Initialisation du capteur de courant (ACS712)
  pinMode(CURRENT_SENSOR_PIN, INPUT);
  // Initialisation du capteur de coupure de courant
  pinMode(POWER_FAILURE_PIN, INPUT_PULLUP);
  // Attacher les interruptions aux pins des interrupteurs
  attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN1), handleInterrupt1, FALLING);  // Déclenchement sur INT1
  attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN2), handleInterrupt2, FALLING);  // Déclenchement sur INT2
}
void loop() {
  // Lire les températures des capteurs DS18B20
  sensors1.requestTemperatures();
  sensors2.requestTemperatures();
  temp1 = sensors1.getTempCByIndex(0);  // Température du premier DS18B20
  temp2 = sensors2.getTempCByIndex(0);  // Température du deuxième DS18B20
  // Lire le capteur de courant (ACS712)
  int sensorValue = analogRead(CURRENT_SENSOR_PIN);
  float voltage = sensorValue * (5.0 / 1023.0);  // Conversion de la valeur analogique en tension
  float current = (voltage - 2.5) / 0.185;  // Conversion de la tension en courant (en fonction de votre capteur)
  // Vérifier si une coupure de courant a été détectée
  bool powerFailure = digitalRead(POWER_FAILURE_PIN) == LOW;  // Si le pin est bas, coupure de courant détectée
  // Affichage des résultats sur le moniteur série
  Serial.print("Température 1 : ");
  Serial.print(temp1);
  Serial.print(" °C, Température 2 : ");
  Serial.print(temp2);
  Serial.print(" °C, Courant : ");
  Serial.print(current);
  Serial.print(" A, Coupure de courant : ");
  if (powerFailure) {
    Serial.println("Oui");
  } else {
    Serial.println("Non");
  }
  // Activation des relais (P0 à P3 sur I2C via PCF8574)
  // Exemple d'activation des relais 1 à 4
  pcf8574.digitalWrite(P0, HIGH);  // Relais 1 ON
  delay(1000);  // Délai d'une seconde
  pcf8574.digitalWrite(P1, HIGH);  // Relais 2 ON
  delay(1000);
  pcf8574.digitalWrite(P2, HIGH);  // Relais 3 ON
  delay(1000);
  pcf8574.digitalWrite(P3, HIGH);  // Relais 4 ON
  delay(1000);
  // Désactivation des relais
  pcf8574.digitalWrite(P0, LOW);  // Relais 1 OFF
  pcf8574.digitalWrite(P1, LOW);  // Relais 2 OFF
  pcf8574.digitalWrite(P2, LOW);  // Relais 3 OFF
  pcf8574.digitalWrite(P3, LOW);  // Relais 4 OFF
  delay(1000);  // Délai de 1 seconde
}
// Fonction pour gérer l'interruption 1
void handleInterrupt1() {
  Serial.println("Interrupteur 1 activé!");
  // Ajoutez ici votre logique pour réagir à l'interruption
}
// Fonction pour gérer l'interruption 2
void handleInterrupt2() {
  Serial.println("Interrupteur 2 activé!");
  // Ajoutez ici votre logique pour réagir à l'interruption
}
Reply


Messages In This Thread
KC868-A4S ESP32 I/O pin define - by admin - 03-01-2023, 04:52 AM
RE: KC868-A4S ESP32 I/O pin define - by admin - 10-11-2023, 10:30 PM
RE: KC868-A4S ESP32 I/O pin define - by admin - 10-11-2023, 11:54 PM
RE: KC868-A4S ESP32 I/O pin define - by Denilson - 01-04-2025, 08:25 PM
RE: KC868-A4S ESP32 I/O pin define - by admin - 01-05-2025, 01:09 AM
RE: KC868-A4S ESP32 I/O pin define - by Denilson - 01-05-2025, 02:36 PM
RE: KC868-A4S ESP32 I/O pin define - by admin - 01-05-2025, 10:18 PM
RE: KC868-A4S ESP32 I/O pin define - by Denilson - 01-06-2025, 12:26 AM
RE: KC868-A4S ESP32 I/O pin define - by admin - 01-06-2025, 01:09 AM

Forum Jump:


Users browsing this thread:
1 Guest(s)