Merge remote-tracking branch 'origin/master' into feat/balance

This commit is contained in:
2023-04-25 10:59:11 +02:00
270 changed files with 24664 additions and 10 deletions

18
IOT/config.cppcheck Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="1">
<builddir>.cppcheck-build</builddir>
<platform>Unspecified</platform>
<analyze-all-vs-configs>true</analyze-all-vs-configs>
<check-headers>true</check-headers>
<check-unused-templates>false</check-unused-templates>
<max-ctu-depth>10</max-ctu-depth>
<exclude>
<path name="./.pio/" />
</exclude>
<suppressions>
<suppression>noCopyConstructor</suppression>
<suppression>noExplicitConstructor</suppression>
<suppression>unusedFunction</suppression>
<suppression>noOperatorEq</suppression>
</suppressions>
</project>

View File

@ -16,6 +16,12 @@ build_flags =
-D API_HOST=\"iot.epi.cb85.software\"
-D ULTRA_SOUND_TRIGD=12
-D ULTRA_SOUND_ECHO=13
-D MOYENNE_CALIBRATION=20
-D TRASHCAN_ONE=\"gdnuxl0wlgurtj3\"

View File

@ -1,4 +1,10 @@
; Add additionnal environments in this file
; Debug environemnt
[env:test]
test_build_src = true
build_type = debug
build_flags = ${env.build_flags}
-D TESTING
; Default production environment
[env:prod]

View File

@ -1,6 +1,10 @@
#ifndef PROGRAM_H
#define PROGRAM_H
#include <Arduino.h>
#include <Ultrasonic.h>
#include "API.h"
class Program{
public:
/**
@ -17,5 +21,17 @@ public:
private:
/* data */
/**
* @brief capteur ultra son pour le niveau de remplissage de la poubelle
*
*/
Ultrasonic *ultrasonic;
/**
* @brief Réference de l'API pour les calls
*
*/
API *api;
};
#endif

View File

@ -40,9 +40,7 @@ public:
* @return false il y a une erreur durran l'envoie
*/
bool sendValue(String val, String poubelleID, String unit, bool full);
private:
/**
* @brief connect l'utilisateur a l'api et met a jour le token
*
@ -51,6 +49,11 @@ private:
*/
bool connect();
//TODO :: Check wifibegin avant
private:
/**
* @brief ID de l'utilisateur
*

View File

@ -59,7 +59,8 @@ bool API::connect(){
this->client->println();
while (!client->available()) {}
while (!client->available()) {
}
String responce = "";
while (client->available()) {
@ -77,7 +78,10 @@ bool API::connect(){
this->client->stop();
sortie = true;
if (JSONVar::stringify(JSONVar::parse(str)["code"]) == "400") {
Serial.println("Failed to authenticate");
return false;
}
return sortie;
}

View File

@ -38,6 +38,7 @@ monitor_flags =
lib_deps =
bportaluri/WiFiEsp@^2.2.2 ; gestion des commande 'AT' de l'esp01
arduino-libraries/Arduino_JSON@^0.2.0 ; gestion des json
ericksimoes/Ultrasonic@^3.0.0 ; lib capteur ultra son
bogde/HX711@0.7.5 ; lib pour la balance
; example:
; erropix/ESP32 AnalogWrite@^0.2

View File

@ -1,10 +1,22 @@
#include "Program.h"
int distance;
Program::Program(){
this->api = new API(USER_NAME, USER_PASSWORD, API_HOST);
Serial1.begin(MONITOR_SPEED);
this->api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial1);
Serial.begin(MONITOR_SPEED);
this->ultrasonic = new Ultrasonic(ULTRA_SOUND_TRIGD, ULTRA_SOUND_ECHO);
}
void Program::loop(){
distance = this->ultrasonic->read();
this->api->sendValue(JSONVar::stringify(distance), TRASHCAN_ONE, "W", false);
Serial.print("Distance in CM: ");
Serial.println(distance);
delay(10000);
}

View File

@ -1,3 +1,5 @@
#ifndef TESTING
#include <Arduino.h>
// #include "Program.h"
@ -33,9 +35,13 @@ void setup(){
balance->setCalibrationFact(1077);
void setup() {
program = new Program();
}
void loop(){
// delay(500);
Serial.println(balance->getValue());
}
}
#endif

23
IOT/test/main.cpp Normal file
View File

@ -0,0 +1,23 @@
#include <Arduino.h>
#include <unity.h>
#include "test.h"
void setup() {
delay(2000);
// start unit tests engine
UNITY_BEGIN();
Serial.begin(115200);
RUN_TEST(TestWifiBeginConnected);
RUN_TEST(TestWifiBeginNotConnected);
RUN_TEST(TestConnectAPI);
// RUN_TEST(TestConnectAPIFailed);
RUN_TEST(TestSendValue);
UNITY_END();
}
void loop() {
}

10
IOT/test/test.h Normal file
View File

@ -0,0 +1,10 @@
#ifndef TEST_H
#define TEST_H
void TestWifiBeginConnected();
void TestWifiBeginNotConnected();
void TestConnectAPI();
void TestConnectAPIFailed();
void TestSendValue();
#endif

48
IOT/test/test_api.cpp Normal file
View File

@ -0,0 +1,48 @@
#include "test.h"
#include <unity.h>
#include "API.h"
//Testing WifiBegin function
void TestWifiBeginConnected() {
API* api = new API(USER_NAME, USER_PASSWORD, API_HOST);
Serial1.begin(MONITOR_SPEED);
TEST_ASSERT_EQUAL_MESSAGE(true, api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial1), "Wifi not connected");
}
void TestWifiBeginNotConnected() {
API* api = new API(USER_NAME, USER_PASSWORD, API_HOST);
Serial2.begin(MONITOR_SPEED);
TEST_ASSERT_EQUAL_MESSAGE(false, api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial2), "Wifi connected");
}
//Testing Connect function
void TestConnectAPI() {
API* api = new API(USER_NAME, USER_PASSWORD, API_HOST);
Serial1.begin(MONITOR_SPEED);
api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial1);
TEST_ASSERT_EQUAL_MESSAGE(true, api->connect(), "Not Connected");
}
//FIXME: boucle inf when connection failed
void TestConnectAPIFailed() {
API* api = new API("Carl", "toto", API_HOST);
Serial1.begin(MONITOR_SPEED);
api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial1);
TEST_ASSERT_EQUAL_MESSAGE(false, api->connect(), "Connected");
}
//Testing SendValue function
void TestSendValue() {
API* api = new API(USER_NAME, USER_PASSWORD, API_HOST);
Serial1.begin(MONITOR_SPEED);
api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial1);
TEST_ASSERT_EQUAL_MESSAGE(true, api->sendValue("30", "gdnuxl0wlgurtj3", "W", true), "Not Connected to server");
}