#include <WiFi.h> // Inclure la bibliothèque WiFi
#include <HTTPClient.h> // Inclure la bibliothèque HTTPClient
#include <ArduinoJson.h> // Inclure la bibliothèque ArduinoJson
#include <PubSubClient.h> // Inclure la bibliothèque PubSubClient
#include <HCSR04.h>
#include "pitches.h" // une biblioth que personnalis e pour les notes musicales
#include "themes.h" // une biblioth que personnalis e pour
const char* ssid = "Wokwi-GUEST"; // Nom du réseau WiFi
const char* password = ""; // Mot de passe du réseau WiFi
String payload; // Contenu de la charge utile
// Jeton du canal secret sur Beebotte (https://beebotte.com/)
const char channelToken[] = "votre_token";
// Nom du canal sur Beebotte
const char *channel = "Distance";
// Nom de la ressource pour l'humidité sur Beebotte
const char *resource = "distance";
// Identifiant du client
const char clientID[] = "votre_id";
// Adresse du serveur Beebotte
const char host[] = "mqtt.beebotte.com";
#define TRIG_PIN 13
#define ECHO_PIN 12
#define BUZZER_PIN 4
#define THRESHOLD 10
float distance;
// Creation d’un objet pour le capteur de distance
UltraSonicDistanceSensor DistanceSensor(TRIG_PIN,ECHO_PIN);
WiFiClient Clientwifi; // Objet Client pour le WiFi
PubSubClient clientmqtt(host,1883,Clientwifi); // Objet client pour MQTT
// Cette fonction joue la melodie "Pirates" sur le buzzer..
void Play_Pirates ()
{
for (int thisNote = 0; thisNote < (sizeof(Pirates_note)/sizeof(int)); thisNote++)
{
int noteDuration = 1000 / Pirates_duration [ thisNote ];// convert duration to time delay
tone(BUZZER_PIN, Pirates_note [ thisNote ] , noteDuration ) ;
//Here 1.05 is tempo, increase to play itslower
int pauseBetweenNotes = noteDuration * 1.05;
delay( pauseBetweenNotes ) ;
noTone(BUZZER_PIN) ; //stop music on pin 4 }
}
}
// Fonction pour publier une donnée sur Beebotte
void publish(const char* resource, float data, bool persist)
{
StaticJsonDocument<128> root; // Créer un objet JSON statique
root["channel"] = channel; // Ajouter le nom du canal
root["resource"] = resource; // Ajouter le nom de la ressource
if (persist)
root["write"] = true; // Ajouter un indicateur de persistance
root["data"] = data; // Ajouter la donnée
// Imprimer le document JSON dans un tampon de caractères
char buffer[128];
serializeJson(root, buffer, sizeof(buffer));
// Créer le sujet de publication sur Beebotte
char topic[64];
sprintf(topic, "%s/%s", channel, resource);
// Publier le tampon de caractères sur Beebotte
clientmqtt.publish(topic, buffer);
}
// Fonction pour publier les données distance
void publishdata(float distance)
{
publish( resource,distance, true); // Publier les distance
}
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT) ;
pinMode (ECHO_PIN, INPUT) ;
pinMode (BUZZER_PIN,OUTPUT) ;
}
void loop() {
}