mirror of
https://gitlab.fdmci.hva.nl/technische-informatica-sm3/ti-projectten/rooziinuubii79.git
synced 2025-08-05 12:54:57 +00:00
Compare commits
5 Commits
661fdb9d26
...
ef52dbefe4
Author | SHA1 | Date | |
---|---|---|---|
|
ef52dbefe4 | ||
|
f24b88bd68 | ||
|
f9767965a1 | ||
|
a6b1b3bd1e | ||
|
c9efba62d4 |
@@ -1,22 +1,21 @@
|
||||
# **Projectplan - robot voor Gevaarlijke Omgevingen**
|
||||
|
||||
### Projectbescrhijving
|
||||
### Projectbeschrijving
|
||||
|
||||
Het project betreft de ontwikkeling van een robot voor gevaarlijke omgevingen. De robot is bedoeld om gevaarlijke situaties te verkennen en in kaart te brengen. De robot is uitgerust met verschillende sensoren en daar gaan we zelf nog een camera en andere sensoren op zetten om de omgeving te verkennen. De data wordt verzameld en geanalyseerd om een beeld te krijgen van de situatie. De robot kan worden ingezet in verschillende situaties, zoals branden, instortingen en andere gevaarlijke situaties.
|
||||
|
||||
|
||||
### 1. Organisatorische Context
|
||||
|
||||
Bij de ontwikkeling van de robot zijn verschillende factoren van belang. Maatschappelijke veranderingen zoals duurzaamheid en de toenemende vraag naar technologische oplossingen voor gevaarlijke werkomgevingen spelen een grote rol. De robot kan worden ingezet voor gevaarlijke situaties waar bijvoorbeeld geen mensen naar binnen kunnen.
|
||||
|
||||
**Vervolgstappen:**
|
||||
|
||||
- Focus op duurzaamheid en herbruikbaarheid.
|
||||
- Focus op duurzaamheid en herbruikbaarheid.
|
||||
- Inzetten op veiligheid en efficiëntie.
|
||||
|
||||
### 2. Ethiek
|
||||
|
||||
Ethische vragen staan centraal bij de ontwikkeling van de robot. Er moet rekening gehouden worden met de veiligheid van de gegevens van gebruiker. Het minimaliseren van de milieu-impact door duurzame materialen te gebruiken zoals hout en metaal. Privacy speelt ook een belangrijke rol. De verzamelde data moet veilig worden gebruikt en opgeslagen en het moet de EU privacy richtlijnen volgen.
|
||||
Ethische vragen staan centraal bij de ontwikkeling van de robot. Er moet rekening gehouden worden met de veiligheid van de gegevens van gebruiker. Het minimaliseren van de milieu-impact door duurzame materialen te gebruiken zoals hout en metaal. Privacy speelt ook een belangrijke rol. De verzamelde data moet veilig worden gebruikt en opgeslagen en het moet de EU privacy richtlijnen volgen.
|
||||
|
||||
**Punten waar we rekening mee moeten houden:**
|
||||
|
||||
@@ -27,7 +26,6 @@ Ethische vragen staan centraal bij de ontwikkeling van de robot. Er moet rekenin
|
||||
|
||||
Het project wordt uitgevoerd vanuit een duidelijk plan waar elke sprint een deel van het project centraal staat. Driver bouwen, testen en verbindingen leggen tussen elk gedeelte van het project. We gebruiken de Agile methodiek dus alles kan nog veranderen. Hierbij moeten wij dus ook rekening houden met de etische en organisatorische aspecten, zoals duurzaamheid en veiligheid.
|
||||
|
||||
|
||||
### Aanpak
|
||||
|
||||
**Werk methode:** Gebruik van Agile projectmanagement voor flexibiliteit.
|
||||
@@ -36,4 +34,4 @@ Het project wordt uitgevoerd vanuit een duidelijk plan waar elke sprint een deel
|
||||
|
||||
**Duurzaamheid & Verbetering:** Zorgen dat we duurzame materialen kunnen gebruiken en dat we de robot kunnen blijven verbeteren.
|
||||
|
||||
Deze aanpak zorgt ervoor dat het project niet alleen technisch succesvol is, maar ook voldoet aan ethische en organisatorische normen.
|
||||
Deze aanpak zorgt ervoor dat het project niet alleen technisch succesvol is, maar ook voldoet aan ethische en organisatorische normen.
|
||||
|
@@ -1,6 +1,7 @@
|
||||
# Wat gaan we maken
|
||||
|
||||
## Sensoren
|
||||
|
||||
* Camera
|
||||
* GPS module
|
||||
* Temparatuur sensor
|
||||
@@ -12,21 +13,27 @@
|
||||
## Wat gaan we met de sensoren doen?
|
||||
|
||||
### Camera
|
||||
|
||||
De camera word gebruikt om foto's te maken in de omgeving in het geval van informatie verkrijgen voor als de robot bijvoorbeeld vast zit, geeft ook optie om informatie te krijgen zonder op de plek zelf te zijn.
|
||||
|
||||
### GPS module
|
||||
|
||||
De GPS module word gebruikt om de locatie van de robot te bepalen en aan te geven waar bijzonderheden bevinden.
|
||||
|
||||
### Temparatuur, TVOC en ECO2 sensor
|
||||
|
||||
Deze sensoren zijn bedoeld om de omgeving te meten en te kijken of de omgeving veilig is voor mensen om in te gaan.
|
||||
|
||||
### LDR sensor
|
||||
|
||||
De LDR sensor word gebruikt om de lichtsterkte te meten en te kijken of er een lamp op de robot aan moet gaan voor de camera.
|
||||
|
||||
### Time of Flight sensor
|
||||
|
||||
De Time of Flight sensor word gebruikt om de afstand te meten tussen de robot en de muur, zodat de robot niet tegen de muur aan botst.
|
||||
|
||||
## Het project
|
||||
|
||||
Bij brand of op fabrieksterreinen met gevaarlijke stoffen kan het nodig zijn om een verkenning te
|
||||
doen van een verdachte omgeving. Het is dan niet verstandig om mensen naar binnen te sturen, in
|
||||
die gevallen vallen de hulpdiensten terug om een verkenningsrobot. Het doel van het project is het
|
||||
|
@@ -1,56 +1,64 @@
|
||||
#include <iostream>
|
||||
#include <mqtt/async_client.h>
|
||||
#include <thread> // Voor std::this_thread::sleep_for
|
||||
#include <chrono> // Voor std::chrono::seconds
|
||||
#include <thread> // For std::this_thread::sleep_for
|
||||
#include <chrono> // For std::chrono::seconds
|
||||
|
||||
const std::string ADDRESS("mqtt://localhost:1883"); // Aanpassen indien nodig
|
||||
// Define the address of the MQTT broker, the client ID, and the topic to subscribe to.
|
||||
const std::string ADDRESS("mqtt://localhost:1883"); // Broker address (Raspberry Pi)
|
||||
const std::string CLIENT_ID("raspberry_pi_client");
|
||||
const std::string TOPIC("home/commands");
|
||||
|
||||
// Define a callback class that handles incoming messages and connection events.
|
||||
class callback : public virtual mqtt::callback {
|
||||
// Called when a message arrives on a subscribed topic.
|
||||
void message_arrived(mqtt::const_message_ptr msg) override {
|
||||
std::cout << "Ontvangen bericht: '" << msg->get_topic()
|
||||
<< "' : " << msg->to_string() << std::endl;
|
||||
// Doe iets met het bericht, bijvoorbeeld een GP.IO-activering
|
||||
std::cout << "Received message: '" << msg->get_topic()<< "' : " << msg->to_string() << std::endl;
|
||||
}
|
||||
|
||||
// Called when the connection to the broker is lost.
|
||||
void connection_lost(const std::string& cause) override {
|
||||
std::cerr << "Verbinding verloren. Oorzaak: " << cause << std::endl;
|
||||
std::cerr << "Connection lost. Reason: " << cause << std::endl;
|
||||
}
|
||||
|
||||
// Called when a message delivery is complete.
|
||||
void delivery_complete(mqtt::delivery_token_ptr token) override {
|
||||
std::cout << "Bericht afgeleverd!" << std::endl;
|
||||
std::cout << "Message delivered!" << std::endl;
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
// Create an MQTT async client and set up the callback class.
|
||||
mqtt::async_client client(ADDRESS, CLIENT_ID);
|
||||
callback cb;
|
||||
client.set_callback(cb);
|
||||
|
||||
// Set up the connection options (such as username and password).
|
||||
mqtt::connect_options connOpts;
|
||||
connOpts.set_clean_session(true);
|
||||
connOpts.set_user_name("ishak");
|
||||
connOpts.set_password("kobuki");
|
||||
connOpts.set_mqtt_version(MQTTVERSION_3_1_1); // Voor MQTT 3.1.1
|
||||
connOpts.set_mqtt_version(MQTTVERSION_3_1_1);
|
||||
|
||||
try {
|
||||
std::cout << "Verbinden met broker..." << std::endl;
|
||||
client.connect(connOpts)->wait();
|
||||
std::cout << "Verbonden!" << std::endl;
|
||||
// Try to connect to the broker and wait until successful.
|
||||
std::cout << "Connecting to broker..." << std::endl;
|
||||
client.connect(connOpts)->wait(); // Connect with the provided options
|
||||
std::cout << "Connected!" << std::endl;
|
||||
|
||||
std::cout << "Abonneren op topic: " << TOPIC << std::endl;
|
||||
client.subscribe(TOPIC, 1)->wait();
|
||||
// Subscribe to the specified topic and wait for confirmation.
|
||||
std::cout << "Subscribing to topic: " << TOPIC << std::endl;
|
||||
client.subscribe(TOPIC, 1)->wait(); // Subscribe with QoS level 1
|
||||
|
||||
// Houd de client draaiende om berichten te blijven ontvangen
|
||||
// Keep the program running to continue receiving messages from the broker.
|
||||
while (true) {
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1)); // Wacht om CPU-gebruik te verminderen
|
||||
std::this_thread::sleep_for(std::chrono::seconds(1)); // Sleep to reduce CPU usage
|
||||
}
|
||||
|
||||
} catch (const mqtt::exception &exc) {
|
||||
std::cerr << "Fout: " << exc.what() << std::endl;
|
||||
// Catch any MQTT exceptions and display the error message.
|
||||
std::cerr << "Error: " << exc.what() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0; // Return 0 to indicate successful execution
|
||||
}
|
||||
|
Reference in New Issue
Block a user