#define PIN_TRIG 13 // define de la pin
#define PIN_ECHO 12 // define de la pin
struct sensor { // declaration de la structure sensor{
int deviceId; // deviceId, measurementType de type int
int measurementType;
};
float readDistanceCM() { // permet de la distance
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
int duration = pulseIn(PIN_ECHO, HIGH);
return duration * 0.034 / 2;
}
QueueHandle_t queue;
void setup() {
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT); // serial config
pinMode(PIN_TRIG, INPUT); // pinMode
queue = xQueueCreate( 10, sizeof( struct sensor ) ); // https://greenwaves-technologies.com/manuals/BUILD/FREERTOS/html/group__xQueueCreate.html
if(queue == NULL){
Serial.println("Error creating the queue");
}
}
void loop() {
// Start a new measurement:
if(queue == NULL){
Serial.println("Queue was not created");
return;
}
for(int i= 0;i<10;i++) // lire 10 fois les données de la structure
{
struct sensor mySensor;
mySensor.deviceId = i;
mySensor.measurementType = rand()%10 +1; // mettre une valeur aléatoire en 0 et 10, utilisation de rand;
xQueueSend(queue,&mySensor, portMax_DELAY); // https://greenwaves-technologies.com/manuals/BUILD/FREERTOS/html/group__xQueueSend.html
}
struct sensor element;
for(int i = 0; i<10; i++){
xQueueReceive(queue, &element, portMax_DELAY); // https://greenwaves-technologies.com/manuals/BUILD/FREERTOS/html/group__xQueueReceive.html
float distance = readDistanceCM(); // resultat du traitement de readDistanceCM dans "distance"
Serial.print("Device ID: ");
Serial.println(element.deviceId);
Serial.print("Measurement type: ");
Serial.println(element.measurementType);
Serial.print("Valeur en cm: ");
Serial.println(distance); // afficher les 3 valeurs "Device ID:","Measurement type: ", "Valeur en cm: "
Serial.println('\n');
vTaskDelay(1000 / portTICK_PERIOD_MS); // période de 1 s
}
Serial.println();
delay(4000);
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23