Compare commits
75 Commits
AR_Michel
...
docs/kicad
Author | SHA1 | Date | |
---|---|---|---|
5f057c2278 | |||
29e1c1b73a | |||
b9b6d71ba0 | |||
b0c90360b8 | |||
f2bd530d4e | |||
d814d16733 | |||
ddefd7e15f | |||
b62d0d74c6 | |||
79d5ecde9e | |||
e4cf250092 | |||
fa43f37279 | |||
2708df56a6 | |||
19b716aaf2 | |||
95aabd8903 | |||
a34b4acbc0 | |||
3a45e8e9b5 | |||
107ca935b8 | |||
922d6e85f0 | |||
2b4e0fd9ea | |||
d69dc54f48 | |||
36dd744da5 | |||
e939ee757d | |||
2b318c00f9 | |||
8477942be8 | |||
493e571e32 | |||
84cd9912c9 | |||
6744680a1f | |||
19ae3cf10f | |||
cd677468ae | |||
7574061bec | |||
edfdc6107f | |||
4fe37fdf22 | |||
4f18142cc6 | |||
d8ed35483f | |||
c89b6d1479 | |||
d67e4a9da8 | |||
cc583d0947 | |||
60ec85a572 | |||
b26a27dc5b | |||
fa6662e885 | |||
a47ec78e1c | |||
7b0d866d6f | |||
db3ce5025b | |||
f01844bed8 | |||
e002adacdd | |||
a533973e9c | |||
aed8706921 | |||
e8b420f3f7 | |||
5b7f0f3d3e | |||
4cafc40d61 | |||
69bd4f57e3 | |||
c40be321fb | |||
90b9ca279c | |||
17b344732f | |||
9b0b5bedd8 | |||
e088b4e304 | |||
b3da67f31e | |||
884169e745 | |||
36bdb86343 | |||
5784e38fbb | |||
9811022b76 | |||
a150d1c17f | |||
96ebd89dd3 | |||
370a16441b | |||
71a07cc552 | |||
b1787886c6 | |||
8928ab9922 | |||
9b6c1beb8d | |||
2fefc9f96d | |||
d63eff681e | |||
ca61a66ca6 | |||
3a37f93ef7 | |||
7b5d4a071b | |||
2e4b24df10 | |||
b1728b0509 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -78,4 +78,4 @@ crashlytics-build.properties
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/unity
|
||||
|
||||
IOT/docs/doxygen output/*
|
||||
IOT/docs/doxygen output/*
|
||||
|
18
IOT/config.cppcheck
Normal file
18
IOT/config.cppcheck
Normal 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>
|
@ -14,7 +14,38 @@ build_flags =
|
||||
-D MONITOR_SPEED=${config.monitor_speed}
|
||||
; DO NOT TOUCH --- END
|
||||
|
||||
; taille ecran oled
|
||||
; 3,3v
|
||||
-D OLED_WIDTH=128
|
||||
-D OLED_HEIGHT=64
|
||||
; pin de reset de l'ecran oled
|
||||
-D OLED_RESET=-1
|
||||
|
||||
|
||||
; DHT pin and type
|
||||
; 5v
|
||||
-D DHTTYPE=\"DHT11\"
|
||||
-D DHTPIN=2
|
||||
|
||||
; ULTRASON pin
|
||||
; 5v
|
||||
-D ULTRA_SOUND_TRIGD=12
|
||||
-D ULTRA_SOUND_ECHO=13
|
||||
|
||||
; Capteur poids
|
||||
; 3,3v
|
||||
-D POID_DOUT=14
|
||||
-D POID_SCK=15
|
||||
|
||||
; trash can ID
|
||||
-D TRASHCAN_ONE=\"gdnuxl0wlgurtj3\"
|
||||
-D TRASHCAN_TWO=\"4brip5fwm001bs9\"
|
||||
-D TRASHCAN_THREE=\"n4il9ckl5016aqi\"
|
||||
|
||||
-D API_HOST=\"iot.epi.cb85.software\"
|
||||
|
||||
-D EXAMPLE_NUMBER=69
|
||||
;---CAPTEUR FULL CONFIG---
|
||||
|
||||
-D ULTRA_SOUND_FULL=\"10\"
|
||||
-D DHT_FULL=\"20:30/60:80\"
|
||||
-D POID_FULL=\"100\"
|
@ -18,7 +18,50 @@ Class Program {
|
||||
+ setup()
|
||||
}
|
||||
|
||||
abstract Class Capteur {
|
||||
# full: bool
|
||||
# type: String
|
||||
# fullVall: String
|
||||
+ Capteur(type: String, fullVal: String)
|
||||
+ {abstract} tar(val: int): bool
|
||||
+ {abstract} read(): String = 0
|
||||
+ isFull(): bool
|
||||
+ getValType(): String
|
||||
}
|
||||
|
||||
class Balance{
|
||||
- capteur: HX711*
|
||||
- initialized: bool
|
||||
- calibrationFact: int
|
||||
- initialVal: long
|
||||
+ Balance(doutPin: int, sck: int, fullVal:String)
|
||||
+ read(): String
|
||||
+ initCalibration(): bool
|
||||
+ calibration(poidsRef: int, moyenneCalibration: int): bool
|
||||
+ tar(val: int = 0): bool
|
||||
}
|
||||
|
||||
class Ultrason{
|
||||
- capteur: DHT*
|
||||
+ HumiTemp(pin: int, type: String, fullVal: String)
|
||||
+ read(): String
|
||||
}
|
||||
|
||||
class Ultrason{
|
||||
- capteur: Ultrasonic*
|
||||
+ Ultrason(triguer: int, echo: int, fullVal: String)
|
||||
+ read(): String
|
||||
}
|
||||
|
||||
Balance --|> Capteur
|
||||
Ultrason --|> Capteur
|
||||
HumiTemp --|> Capteur
|
||||
|
||||
|
||||
API -> Program
|
||||
Program <-- Balance
|
||||
Program <-- Ultrason
|
||||
Program <-- HumiTemp
|
||||
|
||||
|
||||
@enduml
|
1
IOT/docs/schéma/shéma poubelle/#auto_saved_files#
Normal file
1
IOT/docs/schéma/shéma poubelle/#auto_saved_files#
Normal file
@ -0,0 +1 @@
|
||||
/run/media/clement/Data/Mes_Docmument/Documents/Epitech/T-DEV-811/projet/project/IOT/docs/schéma/shéma poubelle/_autosave-shéma poubelle.kicad_sch
|
1267
IOT/docs/schéma/shéma poubelle/_autosave-shéma poubelle.kicad_sch
Normal file
1267
IOT/docs/schéma/shéma poubelle/_autosave-shéma poubelle.kicad_sch
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
2
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_pcb
Normal file
2
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_pcb
Normal file
@ -0,0 +1,2 @@
|
||||
(kicad_pcb (version 20221018) (generator pcbnew)
|
||||
)
|
77
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_prl
Normal file
77
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_prl
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
39,
|
||||
40
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"meta": {
|
||||
"filename": "shéma poubelle.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
327
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_pro
Normal file
327
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_pro
Normal file
@ -0,0 +1,327 @@
|
||||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.1,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"other_line_width": 0.15,
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.15
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"rules": {
|
||||
"min_copper_edge_clearance": 0.0,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0
|
||||
},
|
||||
"track_widths": [],
|
||||
"via_dimensions": []
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "warning",
|
||||
"power_pin_not_driven": "error",
|
||||
"similar_labels": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "shéma poubelle.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.25,
|
||||
"via_diameter": 0.8,
|
||||
"via_drill": 0.4,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [],
|
||||
"text_variables": {}
|
||||
}
|
5
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_sch
Normal file
5
IOT/docs/schéma/shéma poubelle/shéma poubelle.kicad_sch
Normal file
@ -0,0 +1,5 @@
|
||||
(kicad_sch (version 20230121) (generator eeschema)
|
||||
(paper "A4")
|
||||
(lib_symbols)
|
||||
(symbol_instances)
|
||||
)
|
20
IOT/docs/schéma/ultrasound.lib
Normal file
20
IOT/docs/schéma/ultrasound.lib
Normal file
@ -0,0 +1,20 @@
|
||||
EESchema-LIBRARY Version 2.3
|
||||
#encoding utf-8
|
||||
#
|
||||
# HC-SR04
|
||||
#
|
||||
DEF HC-SR04 U 0 40 Y Y 1 F N
|
||||
F0 "U" -250 -300 60 H V C CNN
|
||||
F1 "HC-SR04" -100 300 60 H V C CNN
|
||||
F2 "" 0 0 60 H V C CNN
|
||||
F3 "" 0 0 60 H V C CNN
|
||||
DRAW
|
||||
S 0 250 -300 -250 0 1 0 N
|
||||
X VCC 1 200 150 200 L 50 50 1 1 I
|
||||
X TRIG 2 200 50 200 L 50 50 1 1 I
|
||||
X ECHO 3 200 -50 200 L 50 50 1 1 I
|
||||
X GND 4 200 -150 200 L 50 50 1 1 I
|
||||
ENDDRAW
|
||||
ENDDEF
|
||||
#
|
||||
#End Library
|
@ -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]
|
||||
|
@ -1,6 +1,17 @@
|
||||
#ifndef PROGRAM_H
|
||||
#define PROGRAM_H
|
||||
|
||||
#include <DHT.h>
|
||||
#include <Arduino.h>
|
||||
#include <Ultrasonic.h>
|
||||
|
||||
#include "API.h"
|
||||
#include "Capteur.h"
|
||||
#include "Ultrason.h"
|
||||
#include "HumiTemp.h"
|
||||
#include "Balance.h"
|
||||
#include "OledScreen.h"
|
||||
|
||||
class Program{
|
||||
public:
|
||||
/**
|
||||
@ -17,5 +28,35 @@ public:
|
||||
|
||||
private:
|
||||
/* data */
|
||||
|
||||
/**
|
||||
* @brief capteur humi/temp
|
||||
*
|
||||
*/
|
||||
Capteur *dht;
|
||||
|
||||
/**
|
||||
* @brief capteur ultra son pour le niveau de remplissage de la poubelle
|
||||
*
|
||||
*/
|
||||
Capteur *ultrasonic;
|
||||
|
||||
/**
|
||||
* @brief capteur poid pour le niveau de remplissage de la poubelle
|
||||
*
|
||||
*/
|
||||
Capteur *balance;
|
||||
|
||||
/**
|
||||
* @brief OledScreen
|
||||
*
|
||||
*/
|
||||
OledScreen* screen;
|
||||
|
||||
/**
|
||||
* @brief Réference de l'API pour les calls
|
||||
*
|
||||
*/
|
||||
API *api;
|
||||
};
|
||||
#endif
|
@ -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
|
||||
*
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
76
IOT/lib/Capteur/include/Balance.h
Normal file
76
IOT/lib/Capteur/include/Balance.h
Normal file
@ -0,0 +1,76 @@
|
||||
#ifndef BALANCE_H
|
||||
#define BALANCE_H
|
||||
#include <Arduino.h>
|
||||
#include <HX711.h>
|
||||
|
||||
#include "Capteur.h"
|
||||
|
||||
class Balance: public Capteur{
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief constructeur
|
||||
*
|
||||
* @param[in] doutPin : pin DOUT du module HX711
|
||||
* @param[in] sckPin : pin horloge du module HX711
|
||||
* @param[in] fullVall : valeur a la quel la poubelle est pleine
|
||||
*/
|
||||
Balance(int doutPin, int sckPin, String fullVall);
|
||||
|
||||
/**
|
||||
* @brief lit la valeur du capteur de poid
|
||||
*
|
||||
* @return String retour la valeur
|
||||
*/
|
||||
String read();
|
||||
|
||||
/**
|
||||
* @brief tare et scale a 0, et recuperation de la valeur brut du plateau
|
||||
*/
|
||||
bool initCalibration();
|
||||
|
||||
/**
|
||||
* @brief initialisation du calibrage
|
||||
*
|
||||
* @param[in] poidsRef : poid de reférence pour la calibration
|
||||
* @param[in] moyenne_calibration : nombre de valeurs a lire pour une mesure
|
||||
*
|
||||
* @return renvoi un true si calibration bien effectue
|
||||
*/
|
||||
bool calibration(int poidsRef,int moyenne_calibration);
|
||||
|
||||
/**
|
||||
* @brief tar le capteur de poids
|
||||
*
|
||||
* @param[in] val valeur de référence du capteur
|
||||
* @return true si la tarre a bien réussi (ou si il n'a pas besoins de tarre)
|
||||
* @return false erreur durrant la tar
|
||||
*/
|
||||
bool tar(int val = 0);
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief Variable issue de la librairie HX711 qui permet d'utiliser les fonctions de celle-ci
|
||||
*/
|
||||
HX711* capteur;
|
||||
|
||||
/**
|
||||
* @brief true = calibration et false = erreur
|
||||
*/
|
||||
bool initialized;
|
||||
|
||||
/**
|
||||
* @brief Facteur de calibration obtenu par : (val brute poids ref - val brute poids plexiglas)/ poids ref
|
||||
*/
|
||||
int calibrationFact;
|
||||
|
||||
/**
|
||||
* @brief Valeur moyenne brute du poids sans rien sur la balance juste le plexiglas
|
||||
*/
|
||||
long initialVal;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
67
IOT/lib/Capteur/include/Capteur.h
Normal file
67
IOT/lib/Capteur/include/Capteur.h
Normal file
@ -0,0 +1,67 @@
|
||||
#ifndef CAPTEUR_H
|
||||
#define CAPTEUR_H
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
class Capteur{
|
||||
public:
|
||||
|
||||
|
||||
/**
|
||||
* @brief Construct a new Capteur object
|
||||
*
|
||||
* @param[in] type type de mesure lue (T/H, W, D,...)
|
||||
* @param[in] fullVal valeur a la quel la poubelle est considéré comme pleine
|
||||
*/
|
||||
Capteur(String type, String fullVal);
|
||||
|
||||
/**
|
||||
* @brief tar le capteur si il a besoins d'être tarré
|
||||
*
|
||||
* @param[in] val *opt* si le capteur a besoins d'une valeur de ref pour être tarré
|
||||
* @return true si la tarre a bien réussi (ou si il n'a pas besoins de tarre)
|
||||
* @return false erreur durrant la tar
|
||||
*/
|
||||
virtual bool tar(int val = 0);
|
||||
|
||||
/**
|
||||
* @brief lit la valeur du capteur
|
||||
*
|
||||
* @return String retour la valeur
|
||||
*/
|
||||
virtual String read() = 0;
|
||||
|
||||
/**
|
||||
* @brief revoie la valeur full
|
||||
*
|
||||
* @return true la poubelle est pleine
|
||||
* @return false la poubelle n'est pas pleine
|
||||
*/
|
||||
bool isFull();
|
||||
|
||||
String getValType();
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* @brief la poubelle est pleinne
|
||||
* est mis a jours par read()
|
||||
*/
|
||||
bool full;
|
||||
|
||||
/**
|
||||
* @brief type de mesure lue (T/H, W, D,...)
|
||||
*
|
||||
*/
|
||||
String type;
|
||||
|
||||
/**
|
||||
* @brief valeur a la quel la poubelle est considéré comme pleine
|
||||
*
|
||||
*/
|
||||
String fullVall;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // CAPTEUR_H
|
35
IOT/lib/Capteur/include/HumiTemp.h
Normal file
35
IOT/lib/Capteur/include/HumiTemp.h
Normal file
@ -0,0 +1,35 @@
|
||||
#ifndef HUMI_TEMP_H
|
||||
#define HUMI_TEMP_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <DHT.h>
|
||||
#include "Capteur.h"
|
||||
|
||||
class HumiTemp : public Capteur{
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Construct a new Humi Temp object
|
||||
*
|
||||
* @param pin pin du capteur dht
|
||||
* @param type type de capteur dht (11,22,...)
|
||||
* @param fullVal valeur au quel la poubelle est considéré comme pleinne
|
||||
*/
|
||||
HumiTemp(int pin, String type, String fullVall);
|
||||
|
||||
/**
|
||||
* @brief lit le capteur d'humi/temp
|
||||
*
|
||||
* @return String valeur format "XX/YY" X% et Y°C
|
||||
*/
|
||||
String read();
|
||||
|
||||
private:
|
||||
|
||||
DHT* capteur;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif //HUMI_TEMP_H
|
38
IOT/lib/Capteur/include/Ultrason.h
Normal file
38
IOT/lib/Capteur/include/Ultrason.h
Normal file
@ -0,0 +1,38 @@
|
||||
#ifndef ULTRASON_H
|
||||
#define ULTRASON_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Ultrasonic.h>
|
||||
|
||||
#include "Capteur.h"
|
||||
|
||||
class Ultrason: public Capteur{
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Construct a new Ultrason object
|
||||
*
|
||||
* @param trigeur pin trigeur du capteur ultra son
|
||||
* @param echo pin echo du capteur ultra son
|
||||
* @param fullVall valeur a la quel la poubelle est pleine
|
||||
*/
|
||||
Ultrason(int trigeur, int echo, String fullVall);
|
||||
|
||||
/**
|
||||
* @brief lit la valeur du capteur ultra son
|
||||
*
|
||||
* @return String retour la valeur
|
||||
*/
|
||||
String read();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief capteur utiliser ultrason utiliser pour la mesure
|
||||
*
|
||||
*/
|
||||
Ultrasonic* capteur;
|
||||
};
|
||||
|
||||
|
||||
#endif // ULTRASON_H
|
58
IOT/lib/Capteur/src/Balance.cpp
Normal file
58
IOT/lib/Capteur/src/Balance.cpp
Normal file
@ -0,0 +1,58 @@
|
||||
#include "../include/Balance.h"
|
||||
|
||||
Balance::Balance(int doutPin, int sckPin, String fullVall):
|
||||
Capteur("W", fullVall){
|
||||
|
||||
this->capteur = new HX711();
|
||||
this->capteur->begin(doutPin, sckPin);
|
||||
this->initialized = false;
|
||||
this->capteur->set_scale();
|
||||
this->capteur->tare();
|
||||
this->initialVal = 0;
|
||||
this->calibrationFact = 0;
|
||||
this->initCalibration();
|
||||
}
|
||||
|
||||
boolean Balance::initCalibration() {
|
||||
|
||||
this->capteur->set_scale();
|
||||
this->capteur->tare();
|
||||
this->initialVal = this->capteur->read_average(20);
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean Balance::calibration(int poidsRef,int moyenne_calibration) {
|
||||
|
||||
int rawValref = 0; // Valeur brute de plexiglas et poids réf
|
||||
int tempPoids = 0; // C'est la valeur du poids en grammes calculée grâce au facteur de calibration
|
||||
|
||||
rawValref = this->capteur->read_average(moyenne_calibration);
|
||||
this->calibrationFact = (rawValref - this->initialVal) / poidsRef;
|
||||
do {
|
||||
this->capteur->set_scale(calibrationFact);
|
||||
tempPoids = this->capteur->get_units(5);
|
||||
if (tempPoids < poidsRef) {
|
||||
calibrationFact -= 1;
|
||||
} else if (tempPoids > poidsRef) {
|
||||
calibrationFact += 1;
|
||||
}
|
||||
} while (tempPoids != poidsRef);
|
||||
return initialized = true;
|
||||
}
|
||||
|
||||
String Balance::read() {
|
||||
int sortie = (int)this->capteur->get_units();
|
||||
this->full = sortie > this->fullVall.toInt();
|
||||
if (this->initialized == true) {
|
||||
return String(sortie);
|
||||
} else {
|
||||
return "0";
|
||||
}
|
||||
}
|
||||
|
||||
bool Balance::tar(int val){
|
||||
this->initialized = true;
|
||||
this->calibrationFact = val;
|
||||
this->capteur->set_scale(val);
|
||||
return this->initialized;
|
||||
}
|
22
IOT/lib/Capteur/src/Capteur.cpp
Normal file
22
IOT/lib/Capteur/src/Capteur.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
#include "../include/Capteur.h"
|
||||
|
||||
|
||||
|
||||
Capteur::Capteur(String type, String fullVall){
|
||||
this->type = type;
|
||||
this->fullVall = fullVall;
|
||||
}
|
||||
|
||||
bool Capteur::tar(int val){
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Capteur::isFull(){
|
||||
return this->full;
|
||||
}
|
||||
|
||||
|
||||
String Capteur::getValType(){
|
||||
return this->type;
|
||||
}
|
26
IOT/lib/Capteur/src/HumiTemp.cpp
Normal file
26
IOT/lib/Capteur/src/HumiTemp.cpp
Normal file
@ -0,0 +1,26 @@
|
||||
#include "../include/HumiTemp.h"
|
||||
|
||||
HumiTemp::HumiTemp(int pin, String type, String fullVall):
|
||||
Capteur("H/T",fullVall){
|
||||
this->capteur = new DHT(pin, type.c_str());
|
||||
this->capteur->begin();
|
||||
}
|
||||
|
||||
String HumiTemp::read(){
|
||||
String sortie = "";
|
||||
int hum = this->capteur->readHumidity(true);
|
||||
int temp = this->capteur->readTemperature(false,true);
|
||||
|
||||
//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
|
||||
this->full = true;
|
||||
}else{
|
||||
this->full = false;
|
||||
}
|
||||
|
||||
sortie += String(hum);
|
||||
sortie += "/";
|
||||
sortie += String(temp);
|
||||
return sortie;
|
||||
}
|
||||
//TODO: faire en soirte qu'il y ai un nombre de cycle pour l'aparition d'asticots (entre 1 et 3 jours)
|
19
IOT/lib/Capteur/src/Ultrason.cpp
Normal file
19
IOT/lib/Capteur/src/Ultrason.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
#include "../include/Ultrason.h"
|
||||
|
||||
|
||||
|
||||
Ultrason::Ultrason(int trigeur, int echo, String fullVall):
|
||||
Capteur("D",fullVall){
|
||||
this->capteur = new Ultrasonic(trigeur, echo);
|
||||
}
|
||||
|
||||
String Ultrason::read(){
|
||||
int sortie = this->capteur->read();
|
||||
if (sortie < this->fullVall.toInt())
|
||||
{
|
||||
this->full = true;
|
||||
}else{
|
||||
this->full = false;
|
||||
}
|
||||
return String(sortie);
|
||||
}//TODO: faire en sorte que full se reset avec une autre val
|
59
IOT/lib/OledScreen/include/OledScreen.h
Normal file
59
IOT/lib/OledScreen/include/OledScreen.h
Normal file
@ -0,0 +1,59 @@
|
||||
#ifndef OLED_SCREEN_H
|
||||
#define OLED_SCREEN_H
|
||||
|
||||
#include <Adafruit_SSD1306.h>
|
||||
|
||||
|
||||
class OledScreen {
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Construct a new Oled Screen object
|
||||
*
|
||||
* @param screenWidth The width of the screen
|
||||
* @param screenHeight The height of the screen
|
||||
* @param oledResetPin The pin used to reset the screen (default: -1)
|
||||
*/
|
||||
OledScreen(int screenWidth, int screenHeight, int oledResetPin = -1);
|
||||
|
||||
/**
|
||||
* @brief display welcome screen
|
||||
*/
|
||||
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
|
||||
*/
|
||||
void clear();
|
||||
|
||||
/**
|
||||
* @brief messsage for wifi waiting
|
||||
*
|
||||
*/
|
||||
void wifiWaiting();
|
||||
|
||||
/**
|
||||
* @brief show the sensor value
|
||||
*
|
||||
* @param distance length value
|
||||
* @param poid weith value
|
||||
* @param humitemp humidity and temperature value
|
||||
*/
|
||||
void printVal(String distance, String poid, String humitemp);
|
||||
|
||||
private:
|
||||
|
||||
Adafruit_SSD1306* display;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
76
IOT/lib/OledScreen/src/OledScreeen.cpp
Normal file
76
IOT/lib/OledScreen/src/OledScreeen.cpp
Normal file
@ -0,0 +1,76 @@
|
||||
#include "../include/OledScreen.h"
|
||||
|
||||
OledScreen::OledScreen(int screenWidth, int screenHeight, int oledResetPin) {
|
||||
this->display = new Adafruit_SSD1306(screenWidth, screenHeight, &Wire, oledResetPin);
|
||||
if (!display->begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
|
||||
Serial.println(F("SSD1306 allocation failed"));
|
||||
for (;;); // Don't proceed, loop forever
|
||||
}
|
||||
this->display->clearDisplay();
|
||||
}
|
||||
|
||||
void OledScreen::welcome() {
|
||||
this->display->clearDisplay();
|
||||
this->display->setCursor(0, 0);
|
||||
this->display->setTextSize(2);
|
||||
this->display->setTextColor(WHITE);
|
||||
this->display->println(F("\nBienvenue!"));
|
||||
this->display->display();
|
||||
}
|
||||
|
||||
void OledScreen::printVal(String distance, String poid, String humitemp){
|
||||
this->display->clearDisplay();
|
||||
this->display->setCursor(0, 0);
|
||||
this->display->setTextSize(2);
|
||||
this->display->setTextColor(WHITE);
|
||||
this->display->print(F("Dist:"));
|
||||
this->display->print(distance);
|
||||
this->display->println();
|
||||
this->display->print(F("Poids:"));
|
||||
this->display->print(poid);
|
||||
this->display->println();
|
||||
this->display->print(F("humi:"));
|
||||
this->display->print(humitemp.substring(0,humitemp.indexOf("/")));
|
||||
this->display->println();
|
||||
this->display->print(F("temp:"));
|
||||
this->display->print(humitemp.substring(humitemp.indexOf("/")+1,humitemp.length()));
|
||||
this->display->println();
|
||||
this->display->display();
|
||||
}
|
||||
|
||||
|
||||
|
||||
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);
|
||||
this->display->setTextSize(2);
|
||||
this->display->setTextColor(WHITE);
|
||||
this->display->println(F("Connection\n"));
|
||||
this->display->println(F(" WiFi...\n"));
|
||||
this->display->println();
|
||||
this->display->display();
|
||||
}
|
||||
|
||||
void OledScreen::clear() {
|
||||
this->display->clearDisplay();
|
||||
}
|
@ -38,6 +38,11 @@ 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
|
||||
adafruit/DHT sensor library@^1.4.4 ; DHT11 lib
|
||||
adafruit/Adafruit Unified Sensor@^1.1.9 ; adafruit sensor lib (required by DHT11)
|
||||
ericksimoes/Ultrasonic@^3.0.0 ; lib capteur ultra son
|
||||
bogde/HX711@0.7.5 ; lib pour la balance
|
||||
adafruit/Adafruit SSD1306@^2.5.7 ; librairie pour l'ecran oled
|
||||
; example:
|
||||
; erropix/ESP32 AnalogWrite@^0.2
|
||||
|
||||
|
@ -2,9 +2,49 @@
|
||||
|
||||
|
||||
Program::Program(){
|
||||
|
||||
////////SERIALS//////
|
||||
Serial1.begin(MONITOR_SPEED);
|
||||
Serial.begin(MONITOR_SPEED);
|
||||
|
||||
//////Oled Screen/////
|
||||
this->screen = new OledScreen(OLED_WIDTH, OLED_HEIGHT, OLED_RESET);
|
||||
this->screen->wifiWaiting();
|
||||
|
||||
////////API///////
|
||||
this->api = new API(USER_NAME, USER_PASSWORD, API_HOST);
|
||||
this->api->wifiBegin(WIFI_SSID, WIFI_PASSWORD, &Serial1);
|
||||
|
||||
|
||||
//////CAPTEUR/////
|
||||
this->ultrasonic = new Ultrason(ULTRA_SOUND_TRIGD, ULTRA_SOUND_ECHO, ULTRA_SOUND_FULL);
|
||||
this->dht = new HumiTemp(DHTPIN, DHTTYPE, DHT_FULL);
|
||||
this->balance = new Balance(POID_DOUT,POID_SCK, POID_FULL);
|
||||
this->balance->tar(1077);
|
||||
|
||||
this->screen->clear();
|
||||
}
|
||||
|
||||
void Program::loop(){
|
||||
String distance = this->ultrasonic->read();
|
||||
String humitemp = this->dht->read();
|
||||
String poid = this->balance->read();
|
||||
|
||||
|
||||
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");
|
||||
|
||||
this->api->sendValue(humitemp, TRASHCAN_TWO, this->dht->getValType(), this->dht->isFull());
|
||||
Serial.print("humiTemp = " + humitemp);
|
||||
Serial.println(this->dht->isFull()?" true":" false");
|
||||
|
||||
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,3 +1,5 @@
|
||||
#ifndef TESTING
|
||||
|
||||
#include <Arduino.h>
|
||||
#include "Program.h"
|
||||
|
||||
@ -10,3 +12,4 @@ void setup() {
|
||||
void loop() {
|
||||
program->loop();
|
||||
}
|
||||
#endif
|
23
IOT/test/main.cpp
Normal file
23
IOT/test/main.cpp
Normal 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
10
IOT/test/test.h
Normal 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
48
IOT/test/test_api.cpp
Normal 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");
|
||||
}
|
Reference in New Issue
Block a user