fix: RM-all-todo #49
@ -3,4 +3,6 @@
|
||||
|
||||
## setup :
|
||||
|
||||
rename `secrets.ini.example` to `secrets.ini`
|
||||
renomé `secrets.ini.example` to `secrets.ini` et le remplir
|
||||
|
||||
compiler avec Platform.io
|
@ -45,7 +45,9 @@ build_flags =
|
||||
-D API_HOST=\"iot.epi.cb85.software\"
|
||||
|
||||
;---CAPTEUR FULL CONFIG---
|
||||
|
||||
-D ULTRA_SOUND_FULL=\"10\"
|
||||
;valFull/valReset
|
||||
-D ULTRA_SOUND_FULL=\"5/10\"
|
||||
;tempmin:tempmax/hummin:humax
|
||||
-D DHT_FULL=\"20:30/60:80\"
|
||||
;poid max
|
||||
-D POID_FULL=\"100\"
|
@ -41,7 +41,7 @@ class Balance{
|
||||
+ tar(val: int = 0): bool
|
||||
}
|
||||
|
||||
class Ultrason{
|
||||
class HumiTemp{
|
||||
- capteur: DHT*
|
||||
+ HumiTemp(pin: int, type: String, fullVal: String)
|
||||
+ read(): String
|
||||
@ -53,6 +53,15 @@ class Ultrason{
|
||||
+ read(): String
|
||||
}
|
||||
|
||||
class OledScreen{
|
||||
- display: Adafruit_SSD1306*
|
||||
+ OledScreen(screenWidth: int, screenHeight: int, oledResetPin: int = -1)
|
||||
+ welcome(): void
|
||||
+ clear(): void
|
||||
+ wifiWaiting(): void
|
||||
+ printVal(distance: String, poid: String, humitemp: String): void
|
||||
}
|
||||
|
||||
Balance --|> Capteur
|
||||
Ultrason --|> Capteur
|
||||
HumiTemp --|> Capteur
|
||||
@ -62,5 +71,8 @@ Program <-- Balance
|
||||
Program <-- Ultrason
|
||||
Program <-- HumiTemp
|
||||
|
||||
Program <- API
|
||||
|
||||
OledScreen -> Program
|
||||
|
||||
@enduml
|
@ -49,8 +49,6 @@ public:
|
||||
*/
|
||||
bool connect();
|
||||
|
||||
//TODO :: Check wifibegin avant
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@ -89,7 +87,11 @@ private:
|
||||
*/
|
||||
String token;
|
||||
|
||||
|
||||
/**
|
||||
* @brief wifi démmaré
|
||||
*
|
||||
*/
|
||||
bool init;
|
||||
|
||||
};
|
||||
|
||||
|
@ -8,15 +8,16 @@ API::API(String user, String password, String host, bool https){
|
||||
this->https = https;
|
||||
this->token = "";
|
||||
this->client = new WiFiEspClient();
|
||||
this->init = false;
|
||||
}
|
||||
|
||||
|
||||
bool API::wifiBegin(String wifiId, String wifiPass, Stream* espSerial){
|
||||
WiFi.init(espSerial);
|
||||
this->init = true;
|
||||
|
||||
// check for the presence of the shield
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present"); // FIXME: rm debug
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -28,6 +29,7 @@ bool API::wifiBegin(String wifiId, String wifiPass, Stream* espSerial){
|
||||
return true;
|
||||
}
|
||||
bool API::connect(){
|
||||
if(!this->init)return false;
|
||||
this->client->stop();
|
||||
bool sortie = false;
|
||||
|
||||
@ -119,6 +121,5 @@ bool API::sendValue(String val, String poubelleID, String valUnit, bool full){
|
||||
this->client->println("Connection: close");
|
||||
this->client->println();
|
||||
|
||||
this->token = "";//XXX: on rm le token a chaque fois car on sais pas si la requet a bien aboutie et donc si il y est encore bon
|
||||
return true;
|
||||
}
|
@ -11,8 +11,16 @@ String HumiTemp::read(){
|
||||
int hum = this->capteur->readHumidity(true);
|
||||
int temp = this->capteur->readTemperature(false,true);
|
||||
|
||||
String stemp = this->fullVall.substring(0, this->fullVall.indexOf("/"));
|
||||
String shum = this->fullVall.substring(this->fullVall.indexOf("/")+1, this->fullVall.length());
|
||||
|
||||
int mintemp = stemp.substring(0, stemp.indexOf(":")).toInt();
|
||||
int maxtemp = stemp.substring(stemp.indexOf(":")+1, stemp.length()).toInt();
|
||||
int minhum = shum.substring(0, shum.indexOf(":")).toInt();
|
||||
int maxhum = shum.substring(shum.indexOf(":")+1, shum.length()).toInt();
|
||||
|
||||
//valeur pour un élevage d'astico de pèche selon chatGPT
|
||||
if((temp > 20 && temp < 30) && (hum > 60 && hum < 80)){//TODO: passer les valeurs en config
|
||||
if((temp > mintemp && temp < maxtemp) && (hum > minhum && hum < maxhum)){
|
||||
this->full = true;
|
||||
}else{
|
||||
this->full = false;
|
||||
|
@ -9,11 +9,11 @@ Ultrason::Ultrason(int trigeur, int echo, String fullVall):
|
||||
|
||||
String Ultrason::read(){
|
||||
int sortie = this->capteur->read();
|
||||
if (sortie < this->fullVall.toInt())
|
||||
if (sortie < this->fullVall.substring(0, this->fullVall.indexOf("/")).toInt())
|
||||
{
|
||||
this->full = true;
|
||||
}else{
|
||||
}else if (sortie > this->fullVall.substring(this->fullVall.indexOf("/")+1, this->fullVall.length()).toInt()){
|
||||
this->full = false;
|
||||
}
|
||||
return String(sortie);
|
||||
}//TODO: faire en sorte que full se reset avec une autre val
|
||||
}
|
@ -21,13 +21,6 @@ public:
|
||||
*/
|
||||
void welcome();
|
||||
|
||||
/**
|
||||
* @brief print the total amount on the screen
|
||||
*
|
||||
* @param amount The total amount to print in centimes
|
||||
*/
|
||||
void printAmount(int amount);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Clear the screen
|
||||
|
@ -40,26 +40,6 @@ void OledScreen::printVal(String distance, String poid, String humitemp){
|
||||
|
||||
|
||||
|
||||
void OledScreen::printAmount(int amount) {
|
||||
this->display->clearDisplay();
|
||||
this->display->setCursor(0, 0);
|
||||
this->display->setTextSize(2);
|
||||
this->display->setTextColor(WHITE);
|
||||
this->display->println(F(" Total: "));
|
||||
this->display->println();
|
||||
|
||||
this->display->print(amount / 100);
|
||||
this->display->print(F(","));
|
||||
int centimes = amount % 100;
|
||||
if (centimes < 10) {
|
||||
this->display->print(F("0"));
|
||||
}
|
||||
this->display->println(centimes);
|
||||
this->display->print(F(" EUR"));
|
||||
this->display->display();
|
||||
}
|
||||
|
||||
|
||||
void OledScreen::wifiWaiting() {
|
||||
this->clear();
|
||||
this->display->setCursor(0, 0);
|
||||
|
@ -33,18 +33,16 @@ void Program::loop(){
|
||||
this->screen->printVal(distance, poid, humitemp);
|
||||
|
||||
this->api->sendValue(distance, TRASHCAN_ONE, this->ultrasonic->getValType(), this->ultrasonic->isFull());
|
||||
Serial.print("Distance in CM = " + distance);
|
||||
Serial.println(this->ultrasonic->isFull()?" true":" false");
|
||||
|
||||
Serial.println("humiTemp = " + humitemp);
|
||||
this->api->sendValue(humitemp, TRASHCAN_TWO, this->dht->getValType(), this->dht->isFull());
|
||||
Serial.print("humiTemp = " + humitemp);
|
||||
Serial.println(this->dht->isFull()?" true":" false");
|
||||
|
||||
Serial.println("poid = " + poid);
|
||||
this->api->sendValue(poid, TRASHCAN_THREE, this->balance->getValType(), this->balance->isFull());
|
||||
Serial.print("poid = " + poid);
|
||||
Serial.println(this->balance->isFull()?" true":" false");
|
||||
|
||||
Serial.println();
|
||||
|
||||
delay(1000);
|
||||
}
|
@ -1,12 +1,10 @@
|
||||
# Depot IOT VR
|
||||
|
||||
Lien du Gitea : (depot principale + gestion de projet)
|
||||
https://gitea.cb85.software/Epitech-T-DEV-811/T-DEV-811
|
||||
|
||||
https://git.lab-ouest.org/Epitech-T-DEV-811/T-DEV-811
|
||||
|
||||
Lien de la CAO : https://cad.onshape.com/documents/d370ee863400195afb23d026/w/1a94981b6a6f71d70b075e30/e/d0feb75fc5a122c54598349b?renderMode=0&uiState=6422993bab4d903a51186392
|
||||
|
||||
|
||||
### Mobile/Unity
|
||||
|
||||
Pour gérer l'AR, nous avons décider d'utiliser Unity et pour résoudre le souci de multi target en AR, nous avons utilisé Vuforia.
|
||||
@ -21,7 +19,7 @@ coté IoT, les valeurs de chaque capteurs sont envoyé à l'API puis ensuite, l'
|
||||
le champ 'unit' dans la collection trash correspond au type de capteur que l'IoT va envoyer a l'api. Le mapping suivant a été conventionner:
|
||||
|
||||
| Capteur | Unit | Valeur |
|
||||
|----------------------|:----:|--------------------------------------|
|
||||
| -------------------- |:----:| ------------------------------------ |
|
||||
| Temperature/Humidité | T/H | 10.0;50 (10 degré et 50% d'humidité) |
|
||||
| Poids | W | 200 (200 gram) |
|
||||
| Distance | D | 40 (40 cm) |
|
Loading…
x
Reference in New Issue
Block a user