Je rencontre une difficulté que je ne parviens pas à surmonter.
Matériel : Arduino UNO avec 2 cellules photoélectriques (photorésistance + résistance 10Kohms) avec Shield Ethernet W5100.
Domoticz V2020.2 sur Raspberry 3B.
Sur Domoticz, dans la partie Matériels, je vois bien mon Noeud Light Sensor avec les 2 fils avec CHILD_ID 14 et 15. Les 2 remontent des valeurs identiques à celles vues dans le moniteur série de l'Arduino.
Mais dans la partie Dispositifs, je ne vois qu'une ligne Light Level correspondante, et en cliquant plusieurs fois sur Rafraîchir, il m'affiche tantôt la valeur de la sonde 1, tantôt la valeur de la sonde 2.
Je ne vois pas sur quoi agir pour faire apparaître dans les Dispositifs mes 2 sondes.
Ci-joint le code de l'Arduino.
Code : Tout sélectionner
// Enable debug prints to serial monitor
#define MY_DEBUG
// Enable gateway ethernet module type
#define MY_GATEWAY_W5100
// Enable Soft SPI for NRF radio (note different radio wiring is required)
// The W5100 ethernet module seems to have a hard time co-operate with
// radio on the same spi bus.
#if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD)
#define MY_SOFTSPI
#define MY_SOFT_SPI_SCK_PIN 14
#define MY_SOFT_SPI_MISO_PIN 16
#define MY_SOFT_SPI_MOSI_PIN 15
#endif
// Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
#define MY_IP_ADDRESS XXXX
// The port to keep open on node server mode / or port to contact in client mode
#define MY_PORT X
// The MAC address can be anything you want but should be unique on your network.
// Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use.
// Note that most of the Arduino examples use "DEAD BEEF FEED" for the MAC address.
#define MY_MAC_ADDRESS X,X,X,X
// Enable inclusion mode
#define MY_INCLUSION_MODE_FEATURE
// Enable Inclusion mode button on gateway
//#define MY_INCLUSION_BUTTON_FEATURE
// Set inclusion mode duration (in seconds)
#define MY_INCLUSION_MODE_DURATION 60
// Digital pin used for inclusion mode button
//#define MY_INCLUSION_MODE_BUTTON_PIN 3
// Set blinking period
#define MY_DEFAULT_LED_BLINK_PERIOD 300
#if defined(MY_USE_UDP)
#include <EthernetUdp.h>
#endif
#include <Ethernet.h>
#include <MySensors.h>
#include <SPI.h>
// Déclaration des variables
#define NB_CP 2 //<<<<<<<< indiquer ici le nombre de capteurs photo-électriques
byte CP_PIN[NB_CP] = {0,1}; //<<<<<<<< indiquer ici les numéros de pin analogiques des capteurs photo-électriques
#define ANALOG_PIN 14 //<<<<<<<< si ARDUINO UNO, indiquer 14 (nb de pins digitaux + 1). si ARDUINO MEGA, indiquer 54
uint32_t SLEEP_TIME_CP = 3000; //<<<<<< indiquer ici le temps de repos entre 2 lectures capteurs photo-électriques
MyMessage msg_CP(NB_CP, V_LIGHT_LEVEL);
int lastLightLevel[NB_CP];
int lightlevel[NB_CP];
void before()
{
}
void setup()
{
// Setup locally attached sensors
Serial.begin(9600);
}
void presentation()
{
// Present locally attached sensors here
// Send the sketch version information to the gateway and Controller
// Send the sketch version information to the gateway and Controller
sendSketchInfo("Light Sensor", "1.0");
// Register all sensors to gateway (they will be created as child devices)
for (int k = 0; k < NB_CP; k++){
int CHILD_ID_LIGHT = CP_PIN[k] + ANALOG_PIN;
present(CHILD_ID_LIGHT, S_LIGHT_LEVEL);
delay(250);
}
}
void loop()
{
// Send locally attached sensors data here
for (int k = 0; k < NB_CP; k++)
{
//int16_t lightLevel = (1023-analogRead(CP_PIN[k]))/10.23;
int lightLevel = (analogRead(CP_PIN[k]))/10.23;
Serial.print(F("Light"));
Serial.print(CP_PIN[k]);
Serial.print(F("= "));
Serial.println(lightLevel);
if (lightLevel != lastLightLevel[k]) {
send(msg_CP.setSensor(CP_PIN[k] + ANALOG_PIN).set(lightLevel));
lastLightLevel[k] = lightLevel;
}
sleep(SLEEP_TIME_CP);
}
}
void receive(const MyMessage &message)
{
// We only expect one type of message from controller. But we better check anyway.
}Avez-vous une idée pour que Domoticz m'affiche mes 2 sondes dans Dispositifs ?
Merci d'avance.
