diff --git a/IOT/Capteur/.clang-tidy b/IOT/Capteur/.clang-tidy new file mode 100644 index 0000000..790367c --- /dev/null +++ b/IOT/Capteur/.clang-tidy @@ -0,0 +1,7 @@ +# Clangtidy configuration file (not used until PIO 6) +--- +Checks: 'abseil-*,boost-*,bugprone-*,cert-*,cppcoreguidelines-*,clang-analyzer-*,google-*,hicpp-*,modernize-*,performance-*,portability-*,readability-*,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-cppcoreguidelines-init-variables' +WarningsAsErrors: false +HeaderFilterRegex: '' +AnalyzeTemporaryDtors: false +FormatStyle: google diff --git a/IOT/Capteur/.editorconfig b/IOT/Capteur/.editorconfig new file mode 100644 index 0000000..fdfd862 --- /dev/null +++ b/IOT/Capteur/.editorconfig @@ -0,0 +1,39 @@ +root = true + +# Base Configuration +[*] +indent_style = tab +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 120 +end_of_line = lf + +# Yaml Standard +[*.{yaml,yml}] +indent_style = space +indent_size = 2 + +# Markdown Standards +[*.md] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = false + +# Java, Kotlin, Gradle, XML Standards +[*.{java,kt,kts,gradle,xml,pro}] +indent_style = space + + +# C++ Files +[*.{cpp,h,ino}] +indent_style = space + +# PHP files +[*.php] +indent_style = space + +# INI Files +[*.ini] +indent_style = space diff --git a/IOT/Capteur/.gitignore b/IOT/Capteur/.gitignore new file mode 100644 index 0000000..6730019 --- /dev/null +++ b/IOT/Capteur/.gitignore @@ -0,0 +1,17 @@ +# macOS +.DS_Store + +# Platformio specifics +.pio +.vscode/.browse.c_cpp.db* +.vscode/c_cpp_properties.json +.vscode/launch.json +.vscode/ipch + +# Aptatio/Platformio specifics +secrets.ini + + +*.lck + +*-backups \ No newline at end of file diff --git a/IOT/Capteur/.vscode/extensions.json b/IOT/Capteur/.vscode/extensions.json new file mode 100644 index 0000000..080e70d --- /dev/null +++ b/IOT/Capteur/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ], + "unwantedRecommendations": [ + "ms-vscode.cpptools-extension-pack" + ] +} diff --git a/IOT/Capteur/.vscode/settings.json b/IOT/Capteur/.vscode/settings.json new file mode 100644 index 0000000..19b7dc3 --- /dev/null +++ b/IOT/Capteur/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "files.associations": { + "*.html": "html", + "cmath": "cpp", + "array": "cpp", + "deque": "cpp", + "list": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "string_view": "cpp", + "initializer_list": "cpp", + "ranges": "cpp" + } +} \ No newline at end of file diff --git a/IOT/Capteur/config.cppcheck b/IOT/Capteur/config.cppcheck new file mode 100644 index 0000000..77fd7d8 --- /dev/null +++ b/IOT/Capteur/config.cppcheck @@ -0,0 +1,19 @@ + + + + .cppcheck-build + Unspecified + false + true + false + 10 + + + + + noCopyConstructor + noExplicitConstructor + unusedFunction + noOperatorEq + + diff --git a/IOT/Capteur/config.ini b/IOT/Capteur/config.ini new file mode 100644 index 0000000..2d8c20d --- /dev/null +++ b/IOT/Capteur/config.ini @@ -0,0 +1,72 @@ +; Project configuration file + +[config] +; Hardware Serial baud rate +; Also available in the code as `MONITOR_SPEED` +monitor_speed = 115200 + +; Software Config +; note: additionnal flags are added by Platform.io (see total amount in `.vscode/c_cpp_properties.json` in the `defines` section) +; notworthy ones: +; __PLATFORMIO_BUILD_DEBUG__ = debug mode +build_flags = +; DO NOT TOUCH --- START + -D MONITOR_SPEED=${config.monitor_speed} +; DO NOT TOUCH --- END + + -D EXAMPLE_NUMBER=69 + + -D DHT_PIN=D4 + -D DHT_TYPE=DHT11 + + -D BMS180_SDA=D2 + -D BMS180_SCL=D1 + + -D G_CLK=D5 + -D G_MISO=D6 + -D G_MOSI=D7 + + -D SD_CS=D8 + + -D LORA_CS=D3 + + -D LORA_IO0=RX + +; FARM DATA RELAY SYSTEM +; Sensor Configuration + + ;-D FDRS_DEBUG ; allow FARM DATA serial debuging + ;-D RADIOLIB_DEBUG ; allow Radio serial debuging + + ; sensor ID + -D READING_ID=2 + + ; Address of the gateway + -D GTWY_MAC=0x01 + + ; uncomment to use + ; -D USE_ESPNOW ; comunicate with ESPNow + -D USE_LORA ; communicate with LoRa + -D DEEP_SLEEP ; use deep sleep + ; -D POWER_CTRL=14 + + ; LoRa Configuration + -D RADIOLIB_MODULE=SX1278 + -D LORA_SS=LORA_CS + -D LORA_RST=17 + -D LORA_DIO=RX + -D LORA_BUSY=RADIOLIB_NC + ; -D USE_SX126X + + -D LORA_TXPWR=20 ; LoRa TX power in dBm (: +2dBm - +17dBm (for SX1276-7) +20dBm (for SX1278)) + -D LORA_ACK ; Request LoRa acknowledgment. + + -D LORA_SPI_SCK=G_CLK + -D LORA_SPI_MISO=G_MISO + -D LORA_SPI_MOSI=G_MOSI + + -D LORA_FREQUENCY=433 + + -D USE_SD_LOG + -D SD_SS=SD_CS + -D LOG_FILENAME=\"log_capteur_01.txt\" \ No newline at end of file diff --git a/IOT/Capteur/docs/README.md b/IOT/Capteur/docs/README.md new file mode 100644 index 0000000..9ff0271 --- /dev/null +++ b/IOT/Capteur/docs/README.md @@ -0,0 +1,18 @@ +# Docs + +Documentation Technique du projet + +## fichiers .puml + +Les fichiers en .puml sont des fichiers UMLs sous forme de code + +Afin d'en avoir le résultat graphique : + +1. Ouvrez un navigateur +2. lancer le lien suivant [https://www.plantuml.com/plantuml/uml/](https://www.plantuml.com/plantuml/uml/) +3. Copiez/Collez le contenu du fichier .puml dans le voite de texte +4. Cliquez sur `Submit` + +ou si vous utilisez `VSCode`: +1. installez l'extensions [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) _jebbs.plantuml_ +2. `ALT+D` lorsque vous êtes dans un fichier .puml diff --git a/IOT/Capteur/docs/Schématics/Schématics.kicad_pcb b/IOT/Capteur/docs/Schématics/Schématics.kicad_pcb new file mode 100644 index 0000000..2b8ba10 --- /dev/null +++ b/IOT/Capteur/docs/Schématics/Schématics.kicad_pcb @@ -0,0 +1,2 @@ +(kicad_pcb (version 20221018) (generator pcbnew) +) \ No newline at end of file diff --git a/IOT/Capteur/docs/Schématics/Schématics.kicad_prl b/IOT/Capteur/docs/Schématics/Schématics.kicad_prl new file mode 100644 index 0000000..2d111f0 --- /dev/null +++ b/IOT/Capteur/docs/Schématics/Schématics.kicad_prl @@ -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": "Schématics.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/IOT/Capteur/docs/Schématics/Schématics.kicad_pro b/IOT/Capteur/docs/Schématics/Schématics.kicad_pro new file mode 100644 index 0000000..4f368ab --- /dev/null +++ b/IOT/Capteur/docs/Schématics/Schématics.kicad_pro @@ -0,0 +1,332 @@ +{ + "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": "Schématics.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": [ + [ + "fd3f9336-dfc5-4b09-a9e1-948dbf38d050", + "" + ] + ], + "text_variables": {} +} diff --git a/IOT/Capteur/docs/Schématics/Schématics.kicad_sch b/IOT/Capteur/docs/Schématics/Schématics.kicad_sch new file mode 100644 index 0000000..cf86096 --- /dev/null +++ b/IOT/Capteur/docs/Schématics/Schématics.kicad_sch @@ -0,0 +1,936 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid fd3f9336-dfc5-4b09-a9e1-948dbf38d050) + + (paper "A4") + + (lib_symbols + (symbol "Schématics_lib:BMP180" (in_bom yes) (on_board yes) + (property "Reference" "BMP" (at 2.54 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "BMP180_0_1" + (rectangle (start 0 0) (end 10.16 -5.08) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "BMP180_1_1" + (pin bidirectional line (at 6.35 -7.62 90) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 8.89 -7.62 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 3.81 -7.62 90) (length 2.54) + (name "SCL" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -7.62 90) (length 2.54) + (name "SDA" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Schématics_lib:LORA_emitter" (in_bom yes) (on_board yes) + (property "Reference" "LoRa" (at 2.54 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "LORA_emitter_0_1" + (rectangle (start 0 0) (end 20.32 -10.16) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "LORA_emitter_1_1" + (pin bidirectional line (at 19.05 -12.7 90) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 8.89 -12.7 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 11.43 -12.7 90) (length 2.54) + (name "IO0" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -12.7 90) (length 2.54) + (name "MISO" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 13.97 -12.7 90) (length 2.54) + (name "MOSI" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -12.7 90) (length 2.54) + (name "NSS" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 6.35 -12.7 90) (length 2.54) + (name "RST" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 3.81 -12.7 90) (length 2.54) + (name "SCK" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Schématics_lib:Wemos_D1_mini" (in_bom yes) (on_board yes) + (property "Reference" "ESP" (at -7.62 5.08 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Wemos_D1_mini_0_1" + (polyline + (pts + (xy 3.81 2.54) + (xy 3.81 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 3.81 3.81) + (xy 12.7 3.81) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 12.7 0) + (xy 12.7 2.54) + (xy 10.16 2.54) + (xy 10.16 1.27) + (xy 8.89 1.27) + (xy 8.89 2.54) + (xy 7.62 2.54) + (xy 7.62 1.27) + (xy 6.35 1.27) + (xy 6.35 2.54) + (xy 2.54 2.54) + (xy 2.54 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (rectangle (start 0 0) (end 16.51 -20.32) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 3.81 3.81) (mid 1.1258 2.6842) (end 0 0) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (rectangle (start 5.08 -17.78) (end 11.43 -21.59) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 16.51 0) (mid 15.3926 2.6926) (end 12.7 3.81) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "Wemos_D1_mini_1_1" + (pin input line (at -2.54 -1.27 0) (length 2.54) + (name "RST" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -16.51 180) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -16.51 0) (length 2.54) + (name "D8" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -13.97 180) (length 2.54) + (name "D4" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -11.43 180) (length 2.54) + (name "D3" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -8.89 180) (length 2.54) + (name "D2(sdl)" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -2.54 -3.81 0) (length 2.54) + (name "A0" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -6.35 180) (length 2.54) + (name "D1(sda)" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -3.81 180) (length 2.54) + (name "RX" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -1.27 180) (length 2.54) + (name "TX" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -6.35 0) (length 2.54) + (name "D0" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -8.89 0) (length 2.54) + (name "D5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -11.43 0) (length 2.54) + (name "D6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -13.97 0) (length 2.54) + (name "D7" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -19.05 0) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -19.05 180) (length 2.54) + (name "5V" (effects (font (size 1.27 1.27)))) + (number "USB" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Schématics_lib:micro_SD" (in_bom yes) (on_board yes) + (property "Reference" "SD" (at 1.27 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "micro_SD_0_1" + (rectangle (start 0 0) (end 15.24 -11.43) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "micro_SD_1_1" + (pin bidirectional line (at 3.81 -13.97 90) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 13.97 -13.97 90) (length 2.54) + (name "CLK" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 11.43 -13.97 90) (length 2.54) + (name "CS" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -13.97 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 8.89 -13.97 90) (length 2.54) + (name "MISO" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 6.35 -13.97 90) (length 2.54) + (name "MOSI" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Sensor:DHT11" (in_bom yes) (on_board yes) + (property "Reference" "U" (at -3.81 6.35 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "DHT11" (at 3.81 6.35 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "Sensor:Aosong_DHT11_5.5x12.0_P2.54mm" (at 0 -10.16 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://akizukidenshi.com/download/ds/aosong/DHT11.pdf" (at 3.81 6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "Digital temperature humidity sensor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Temperature and humidity module" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Aosong*DHT11*5.5x12.0*P2.54mm*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "DHT11_0_1" + (rectangle (start -5.08 5.08) (end 5.08 -5.08) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + (symbol "DHT11_1_1" + (pin power_in line (at 0 7.62 270) (length 2.54) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 7.62 0 180) (length 2.54) + (name "IO" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin no_connect line (at -5.08 0 0) (length 2.54) hide + (name "NC" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -7.62 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:+3V3" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3V3" (at 0 3.556 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"+3V3\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "+3V3_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "+3V3_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "+3V3" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "global power" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) + (xy 0 -1.27) + (xy 1.27 -1.27) + (xy 0 -2.54) + (xy -1.27 -1.27) + (xy 0 -1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line (at 0 0 270) (length 0) hide + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + (junction (at 66.04 54.61) (diameter 0) (color 0 0 0 0) + (uuid 00f187c3-f956-443e-84e6-2008510a7d72) + ) + (junction (at 105.41 52.07) (diameter 0) (color 0 0 0 0) + (uuid 05320e14-19e2-42fd-b933-8f2a8e253a4b) + ) + (junction (at 63.5 72.39) (diameter 0) (color 0 0 0 0) + (uuid 07229aff-4172-4dc4-a2c0-27f850a03fd3) + ) + (junction (at 62.23 77.47) (diameter 0) (color 0 0 0 0) + (uuid 07aba3da-d306-42b2-be06-3078ae85e6d1) + ) + (junction (at 105.41 57.15) (diameter 0) (color 0 0 0 0) + (uuid 466dc48e-e041-403a-a1a9-813377c03418) + ) + (junction (at 66.04 67.31) (diameter 0) (color 0 0 0 0) + (uuid 80aa7578-f724-4798-97cc-b80e7c0ee956) + ) + (junction (at 64.77 69.85) (diameter 0) (color 0 0 0 0) + (uuid 8f3858d3-6a15-42dc-a69b-add665e315f2) + ) + (junction (at 67.31 64.77) (diameter 0) (color 0 0 0 0) + (uuid d0b78a28-3e34-4e10-90d2-92ec57ada2c5) + ) + (junction (at 118.11 34.29) (diameter 0) (color 0 0 0 0) + (uuid f7ecaa26-17f4-4115-9f44-e1c5f0d18e4e) + ) + + (no_connect (at 69.85 39.37) (uuid 3f47eb46-2e68-4b82-8eb1-0c241ef61ae9)) + + (wire (pts (xy 66.04 67.31) (xy 66.04 101.6)) + (stroke (width 0) (type default)) + (uuid 05f8e4f6-58bb-42d8-a95e-bc03ba6928a8) + ) + (wire (pts (xy 64.77 49.53) (xy 69.85 49.53)) + (stroke (width 0) (type default)) + (uuid 0e32b3fd-34c7-4a1e-a01d-efc02d97a8d7) + ) + (wire (pts (xy 59.69 52.07) (xy 59.69 74.93)) + (stroke (width 0) (type default)) + (uuid 134fdb55-4ff2-4e7e-b29e-5cbe58a63358) + ) + (wire (pts (xy 91.44 52.07) (xy 105.41 52.07)) + (stroke (width 0) (type default)) + (uuid 161a9767-dded-4503-a9fe-6f2041914450) + ) + (wire (pts (xy 69.85 54.61) (xy 66.04 54.61)) + (stroke (width 0) (type default)) + (uuid 1632ccec-b6df-45a6-90bc-4445109fe2fa) + ) + (wire (pts (xy 54.61 93.98) (xy 68.58 93.98)) + (stroke (width 0) (type default)) + (uuid 23324e72-c948-4192-86a0-033e152870a8) + ) + (wire (pts (xy 62.23 99.06) (xy 68.58 99.06)) + (stroke (width 0) (type default)) + (uuid 248d6aa2-9a69-46b7-b8d6-bc50a34e03aa) + ) + (wire (pts (xy 68.58 91.44) (xy 67.31 91.44)) + (stroke (width 0) (type default)) + (uuid 2785c978-79fc-46c4-afb6-10ec98553e29) + ) + (wire (pts (xy 120.65 34.29) (xy 118.11 34.29)) + (stroke (width 0) (type default)) + (uuid 29943c32-bd20-40cf-a917-38ce1f4f5d77) + ) + (wire (pts (xy 102.87 34.29) (xy 118.11 34.29)) + (stroke (width 0) (type default)) + (uuid 2d6d3785-2ef7-49a7-a7a1-b2fc9a04dc3b) + ) + (wire (pts (xy 53.34 64.77) (xy 67.31 64.77)) + (stroke (width 0) (type default)) + (uuid 2e44de81-ed3c-4fbb-a5a7-6e80508e1ff3) + ) + (wire (pts (xy 91.44 39.37) (xy 93.98 39.37)) + (stroke (width 0) (type default)) + (uuid 2e4b9fee-4685-4f03-a9c4-69bf2bfc8636) + ) + (wire (pts (xy 120.65 57.15) (xy 105.41 57.15)) + (stroke (width 0) (type default)) + (uuid 2ec9fd2d-8ef4-4786-916e-2840df6ef1bd) + ) + (wire (pts (xy 63.5 83.82) (xy 63.5 72.39)) + (stroke (width 0) (type default)) + (uuid 2fb3e23a-61ec-453e-be00-9ec8017af700) + ) + (wire (pts (xy 68.58 67.31) (xy 66.04 67.31)) + (stroke (width 0) (type default)) + (uuid 3117bf92-c0f3-46fe-93b6-acb89b30ab1f) + ) + (wire (pts (xy 100.33 44.45) (xy 91.44 44.45)) + (stroke (width 0) (type default)) + (uuid 352d321b-a79d-469d-9a09-b3b4637e5591) + ) + (wire (pts (xy 66.04 101.6) (xy 68.58 101.6)) + (stroke (width 0) (type default)) + (uuid 3d715416-ca25-43a2-8399-c1aadd6bfa47) + ) + (wire (pts (xy 62.23 77.47) (xy 62.23 86.36)) + (stroke (width 0) (type default)) + (uuid 3e04f6ae-550c-4e91-a25b-d3c9c9b4d6f6) + ) + (wire (pts (xy 100.33 33.02) (xy 100.33 44.45)) + (stroke (width 0) (type default)) + (uuid 483df354-9eb0-4c4c-a338-9ea06430ad8e) + ) + (wire (pts (xy 66.04 54.61) (xy 66.04 67.31)) + (stroke (width 0) (type default)) + (uuid 4926759a-4b05-44ce-8358-c41233d03cc8) + ) + (wire (pts (xy 62.23 86.36) (xy 68.58 86.36)) + (stroke (width 0) (type default)) + (uuid 5327fb84-1ff2-49b6-b939-f329f5c465d0) + ) + (wire (pts (xy 66.04 41.91) (xy 66.04 36.83)) + (stroke (width 0) (type default)) + (uuid 5cde2e34-1fde-4ee1-a441-30185d06ff63) + ) + (wire (pts (xy 59.69 52.07) (xy 69.85 52.07)) + (stroke (width 0) (type default)) + (uuid 5de8fd5b-f06a-4606-94e0-a3a621e3dfb5) + ) + (wire (pts (xy 118.11 31.75) (xy 118.11 34.29)) + (stroke (width 0) (type default)) + (uuid 5e75bda4-74b3-482e-91a3-3ebb3aa4708e) + ) + (wire (pts (xy 69.85 46.99) (xy 63.5 46.99)) + (stroke (width 0) (type default)) + (uuid 6ad91adb-1f68-4336-a491-f2abbc8d00eb) + ) + (wire (pts (xy 64.77 96.52) (xy 68.58 96.52)) + (stroke (width 0) (type default)) + (uuid 6be53eb8-3b76-46d2-bd15-5a8757cad1a2) + ) + (wire (pts (xy 105.41 33.02) (xy 105.41 52.07)) + (stroke (width 0) (type default)) + (uuid 6c654e85-f548-4ff9-bf57-a27dea1bfe83) + ) + (wire (pts (xy 105.41 57.15) (xy 105.41 52.07)) + (stroke (width 0) (type default)) + (uuid 6cda8130-ab60-4d90-acba-d4f2b6e00279) + ) + (wire (pts (xy 68.58 69.85) (xy 64.77 69.85)) + (stroke (width 0) (type default)) + (uuid 72541a13-dd60-4b3f-a660-514d4e800450) + ) + (wire (pts (xy 53.34 54.61) (xy 66.04 54.61)) + (stroke (width 0) (type default)) + (uuid 83fd1208-fe71-47a4-93b1-65d962d67d0f) + ) + (wire (pts (xy 59.69 74.93) (xy 68.58 74.93)) + (stroke (width 0) (type default)) + (uuid 8928d5c6-3e91-40cb-926d-1d3beee1a593) + ) + (wire (pts (xy 66.04 36.83) (xy 69.85 36.83)) + (stroke (width 0) (type default)) + (uuid 91645f57-9801-4c63-81a2-73c58682e6d4) + ) + (wire (pts (xy 63.5 72.39) (xy 68.58 72.39)) + (stroke (width 0) (type default)) + (uuid 9494ef32-6252-4faa-bc7a-6520e345be7a) + ) + (wire (pts (xy 102.87 33.02) (xy 102.87 34.29)) + (stroke (width 0) (type default)) + (uuid 98766a9d-b9dd-412d-b74a-f0beead20553) + ) + (wire (pts (xy 93.98 39.37) (xy 93.98 29.21)) + (stroke (width 0) (type default)) + (uuid a204906c-e9c4-4185-a02a-2c2889205bfd) + ) + (wire (pts (xy 97.79 41.91) (xy 91.44 41.91)) + (stroke (width 0) (type default)) + (uuid a649ae75-fd1f-433b-b43a-653faca99d7f) + ) + (wire (pts (xy 67.31 91.44) (xy 67.31 64.77)) + (stroke (width 0) (type default)) + (uuid b58a09ee-b31f-475e-8129-8248cd657a69) + ) + (wire (pts (xy 68.58 77.47) (xy 62.23 77.47)) + (stroke (width 0) (type default)) + (uuid bdb0a224-d5bb-4427-87b3-02a16223a451) + ) + (wire (pts (xy 67.31 64.77) (xy 68.58 64.77)) + (stroke (width 0) (type default)) + (uuid c1629db0-e750-4c5b-b275-4586be473ea5) + ) + (wire (pts (xy 63.5 46.99) (xy 63.5 72.39)) + (stroke (width 0) (type default)) + (uuid c38cd48d-caf3-445e-aad2-61940ae6a099) + ) + (wire (pts (xy 68.58 83.82) (xy 63.5 83.82)) + (stroke (width 0) (type default)) + (uuid c6fd0df9-e76c-4f64-99cb-918dfc7ac864) + ) + (wire (pts (xy 62.23 77.47) (xy 62.23 44.45)) + (stroke (width 0) (type default)) + (uuid d3e92c1c-2f4b-4c7c-ab24-4f95b197a89f) + ) + (wire (pts (xy 120.65 41.91) (xy 120.65 34.29)) + (stroke (width 0) (type default)) + (uuid dac0208a-c7e9-41b2-83e4-3be90de15095) + ) + (wire (pts (xy 64.77 69.85) (xy 64.77 49.53)) + (stroke (width 0) (type default)) + (uuid ddf9bbb8-3c60-4755-9e6c-bac13d1731b2) + ) + (wire (pts (xy 64.77 69.85) (xy 64.77 96.52)) + (stroke (width 0) (type default)) + (uuid e584f691-516a-4f54-8ba9-6630d4aa00d7) + ) + (wire (pts (xy 62.23 44.45) (xy 69.85 44.45)) + (stroke (width 0) (type default)) + (uuid ec195219-13b5-40e1-9bb2-dd4de7bb607b) + ) + (wire (pts (xy 91.44 49.53) (xy 113.03 49.53)) + (stroke (width 0) (type default)) + (uuid f514a536-b365-4e94-9b67-0ce3f5ff5b61) + ) + (wire (pts (xy 69.85 41.91) (xy 66.04 41.91)) + (stroke (width 0) (type default)) + (uuid fab8da63-01ec-4c22-8f42-ec5bbeb544ab) + ) + (wire (pts (xy 97.79 33.02) (xy 97.79 41.91)) + (stroke (width 0) (type default)) + (uuid fde08864-6062-47c2-8412-8fad86f23fd8) + ) + + (global_label "LoRa_CS" (shape input) (at 62.23 99.06 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 5b37f104-c178-4d2d-a81b-d89e72618a15) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 51.2016 99.06 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) + (global_label "LoRa_IO0" (shape input) (at 54.61 93.98 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 86b8f348-d6de-40ae-8cfa-90822fd382d6) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 42.9163 93.98 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) + (global_label "LoRa_IO0" (shape input) (at 93.98 29.21 90) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid b810c0f9-0f54-4d4f-870c-873c6826173e) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 93.98 17.5163 90) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) + (global_label "Lora_CS" (shape input) (at 91.44 46.99 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid cb7ae959-e3f1-4159-b7c8-75d6a0baebe6) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 101.9846 46.99 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) + + (symbol (lib_id "Schématics_lib:LORA_emitter") (at 81.28 82.55 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 1ec728a4-9ba2-43eb-beb9-1fe8db96f421) + (property "Reference" "LoRa1" (at 82.55 92.71 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "~" (at 81.28 82.55 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 81.28 82.55 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 81.28 82.55 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (pin "" (uuid 4f8f88ac-afec-41db-afff-154056e59da9)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "LoRa1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 105.41 57.15 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 34618810-f3b8-42bc-92d4-a9d7fbeee5d7) + (property "Reference" "#PWR03" (at 105.41 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 105.41 62.23 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 105.41 57.15 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 105.41 57.15 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 03985145-4756-4ee7-b8a7-8bf516c94fc7)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "#PWR03") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Schématics_lib:micro_SD") (at 82.55 63.5 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 37a67363-9cf1-4eaf-81e6-c9eed2cec542) + (property "Reference" "SD1" (at 83.82 71.12 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "~" (at 82.55 63.5 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 82.55 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 82.55 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "" (uuid 1dadb250-3278-4c98-84ee-bd5a05bd6c76)) + (pin "" (uuid 11422c73-5bdd-4cfb-a5a2-246807a5b471)) + (pin "" (uuid 4174b2f4-1d76-4008-bb8d-d092a277bb53)) + (pin "" (uuid 89f60d9c-07b5-437f-9c11-e8b9b9e065c7)) + (pin "" (uuid e8ea3e29-9f36-4ea9-9b6d-529281f33813)) + (pin "" (uuid 0e15ee1c-6589-44f1-97c6-71334899fc3c)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "SD1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Sensor:DHT11") (at 120.65 49.53 0) (mirror y) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 3baf3ef7-e0ce-4505-9935-aec8bdcfe00a) + (property "Reference" "U1" (at 127 50.8 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "DHT11" (at 127 48.26 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "Sensor:Aosong_DHT11_5.5x12.0_P2.54mm" (at 120.65 59.69 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://akizukidenshi.com/download/ds/aosong/DHT11.pdf" (at 116.84 43.18 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e7341031-2a1c-49f6-9fd2-dedf04519b02)) + (pin "2" (uuid 7759f151-4f93-4b27-8e56-2540b0ad303d)) + (pin "3" (uuid d7a5d82d-758f-4ce0-aada-4d1438d6ccab)) + (pin "4" (uuid 4ebe485c-aac6-4fcf-a683-ac4cbb4714aa)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "U1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 53.34 64.77 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 6ea5a4eb-7c04-45b2-84fc-8531af75860c) + (property "Reference" "#PWR04" (at 46.99 64.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 49.53 64.77 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 53.34 64.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 53.34 64.77 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid eb65a8ee-2c68-48a6-921e-1584cf18907e)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "#PWR04") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Schématics_lib:BMP180") (at 96.52 25.4 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 78ac6cf9-f138-4523-ae94-20c9b8f51d71) + (property "Reference" "BMP1" (at 107.95 27.94 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "~" (at 96.52 25.4 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 96.52 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 96.52 25.4 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "" (uuid 23569266-1a43-4fb2-bfc3-7f42c280cece)) + (pin "" (uuid 55520409-1a3f-4c43-94b4-570545576637)) + (pin "" (uuid 6e1d50ac-472f-490f-ae1a-e9c501a198f0)) + (pin "" (uuid 6c818790-87d8-4c27-9261-c778d8438251)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "BMP1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Schématics_lib:Wemos_D1_mini") (at 72.39 35.56 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7d608ee8-42c6-4c6e-873f-1b3caf1c63e2) + (property "Reference" "ESP1" (at 80.645 29.21 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "~" (at 72.39 35.56 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 72.39 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 72.39 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid d0f96fbc-c770-4b35-8299-85da43c481cd)) + (pin "15" (uuid 7ede5330-358c-49d2-8620-589709258247)) + (pin "16" (uuid 23398b62-bbb8-48c4-938b-ed296afc3b68)) + (pin "17" (uuid a59838aa-4289-4c2f-8737-7dadb54907b7)) + (pin "18" (uuid 7dfed0b9-2c89-46a0-a78d-477f3befa642)) + (pin "19" (uuid 40f15062-4898-4233-943b-fe9e79283dfd)) + (pin "2" (uuid 274fd946-4ee2-40ea-8adb-13dcdcdbdbf2)) + (pin "20" (uuid e68796ca-53ba-4c9f-a05d-f093001add4c)) + (pin "21" (uuid 168f2bf3-146c-485a-a4ec-2ea0de07b83f)) + (pin "22" (uuid 7e1bde35-9875-4068-b676-32488cc7b943)) + (pin "4" (uuid 8bff9ac6-de5d-43dc-bea9-6aef4f27fe15)) + (pin "5" (uuid df10f25e-8f07-4a70-9b5a-6e39bcb13994)) + (pin "6" (uuid a9e34f9e-d3eb-4056-a286-2c9bc6db166c)) + (pin "7" (uuid 9cb7bf4d-efc5-43fa-acb2-0f3e4803ea8f)) + (pin "8" (uuid 5332355e-5bc9-4d58-b5ca-b7aee2ac7154)) + (pin "USB" (uuid 8509051b-a804-4eb5-a5a0-55e721d77615)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "ESP1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3V3") (at 53.34 54.61 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid b497bff9-d8ca-4d62-9cb5-4e5755b8c135) + (property "Reference" "#PWR02" (at 57.15 54.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3V3" (at 49.53 54.61 90) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 53.34 54.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 53.34 54.61 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0598507c-f7d9-4720-92f8-2180c6802bcc)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "#PWR02") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:+3V3") (at 118.11 31.75 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid bf4857c2-8d19-4db3-a0b3-98b767c4614e) + (property "Reference" "#PWR01" (at 118.11 35.56 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "+3V3" (at 118.11 26.67 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 118.11 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 118.11 31.75 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid e5dbc628-94bd-4507-b827-a1ac627ac176)) + (instances + (project "Schématics" + (path "/fd3f9336-dfc5-4b09-a9e1-948dbf38d050" + (reference "#PWR01") (unit 1) + ) + ) + ) + ) + + (sheet_instances + (path "/" (page "1")) + ) +) diff --git a/IOT/Capteur/docs/Schématics/Schématics_lib.kicad_sym b/IOT/Capteur/docs/Schématics/Schématics_lib.kicad_sym new file mode 100644 index 0000000..ce6bd0b --- /dev/null +++ b/IOT/Capteur/docs/Schématics/Schématics_lib.kicad_sym @@ -0,0 +1,272 @@ +(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor) + (symbol "BMP180" (in_bom yes) (on_board yes) + (property "Reference" "BMP" (at 2.54 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "BMP180_0_1" + (rectangle (start 0 0) (end 10.16 -5.08) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "BMP180_1_1" + (pin bidirectional line (at 6.35 -7.62 90) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 8.89 -7.62 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 3.81 -7.62 90) (length 2.54) + (name "SCL" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -7.62 90) (length 2.54) + (name "SDA" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "LORA_emitter" (in_bom yes) (on_board yes) + (property "Reference" "LoRa" (at 2.54 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "LORA_emitter_0_1" + (rectangle (start 0 0) (end 20.32 -10.16) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "LORA_emitter_1_1" + (pin bidirectional line (at 19.05 -12.7 90) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 8.89 -12.7 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 11.43 -12.7 90) (length 2.54) + (name "IO0" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -12.7 90) (length 2.54) + (name "MISO" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 13.97 -12.7 90) (length 2.54) + (name "MOSI" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 16.51 -12.7 90) (length 2.54) + (name "NSS" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 6.35 -12.7 90) (length 2.54) + (name "RST" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 3.81 -12.7 90) (length 2.54) + (name "SCK" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Wemos_D1_mini" (in_bom yes) (on_board yes) + (property "Reference" "ESP" (at -7.62 5.08 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Wemos_D1_mini_0_1" + (polyline + (pts + (xy 3.81 2.54) + (xy 3.81 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 3.81 3.81) + (xy 12.7 3.81) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 12.7 0) + (xy 12.7 2.54) + (xy 10.16 2.54) + (xy 10.16 1.27) + (xy 8.89 1.27) + (xy 8.89 2.54) + (xy 7.62 2.54) + (xy 7.62 1.27) + (xy 6.35 1.27) + (xy 6.35 2.54) + (xy 2.54 2.54) + (xy 2.54 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (rectangle (start 0 0) (end 16.51 -20.32) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 3.81 3.81) (mid 1.1258 2.6842) (end 0 0) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (rectangle (start 5.08 -17.78) (end 11.43 -21.59) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 16.51 0) (mid 15.3926 2.6926) (end 12.7 3.81) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "Wemos_D1_mini_1_1" + (pin input line (at -2.54 -1.27 0) (length 2.54) + (name "RST" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -16.51 180) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "15" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -16.51 0) (length 2.54) + (name "D8" (effects (font (size 1.27 1.27)))) + (number "16" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -13.97 180) (length 2.54) + (name "D4" (effects (font (size 1.27 1.27)))) + (number "17" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -11.43 180) (length 2.54) + (name "D3" (effects (font (size 1.27 1.27)))) + (number "18" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -8.89 180) (length 2.54) + (name "D2(sdl)" (effects (font (size 1.27 1.27)))) + (number "19" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -2.54 -3.81 0) (length 2.54) + (name "A0" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -6.35 180) (length 2.54) + (name "D1(sda)" (effects (font (size 1.27 1.27)))) + (number "20" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -3.81 180) (length 2.54) + (name "RX" (effects (font (size 1.27 1.27)))) + (number "21" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -1.27 180) (length 2.54) + (name "TX" (effects (font (size 1.27 1.27)))) + (number "22" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -6.35 0) (length 2.54) + (name "D0" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -8.89 0) (length 2.54) + (name "D5" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -11.43 0) (length 2.54) + (name "D6" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -13.97 0) (length 2.54) + (name "D7" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at -2.54 -19.05 0) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 19.05 -19.05 180) (length 2.54) + (name "5V" (effects (font (size 1.27 1.27)))) + (number "USB" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "micro_SD" (in_bom yes) (on_board yes) + (property "Reference" "SD" (at 1.27 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "micro_SD_0_1" + (rectangle (start 0 0) (end 15.24 -11.43) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "micro_SD_1_1" + (pin bidirectional line (at 3.81 -13.97 90) (length 2.54) + (name "3V3" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 13.97 -13.97 90) (length 2.54) + (name "CLK" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 11.43 -13.97 90) (length 2.54) + (name "CS" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 1.27 -13.97 90) (length 2.54) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 8.89 -13.97 90) (length 2.54) + (name "MISO" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + (pin bidirectional line (at 6.35 -13.97 90) (length 2.54) + (name "MOSI" (effects (font (size 1.27 1.27)))) + (number "" (effects (font (size 1.27 1.27)))) + ) + ) + ) +) diff --git a/IOT/Capteur/docs/Schématics/sym-lib-table b/IOT/Capteur/docs/Schématics/sym-lib-table new file mode 100644 index 0000000..d0d99af --- /dev/null +++ b/IOT/Capteur/docs/Schématics/sym-lib-table @@ -0,0 +1,4 @@ +(sym_lib_table + (version 7) + (lib (name "Schématics_lib")(type "KiCad")(uri "${KIPRJMOD}/Schématics_lib.kicad_sym")(options "")(descr "")) +) diff --git a/IOT/Capteur/envs.ini b/IOT/Capteur/envs.ini new file mode 100644 index 0000000..9df4a04 --- /dev/null +++ b/IOT/Capteur/envs.ini @@ -0,0 +1,15 @@ +; Add additionnal environments in this file + +; Default production environment +[env:prod] + +; Debug environemnt +[env:debug] +build_type = debug + + +; Example additionnal env +; [env:example] +; ; note: keep the `${env.build_flags}` to includes others build flags +; build_flags = ${env.build_flags} +; -D POUET diff --git a/IOT/Capteur/include/Program.h b/IOT/Capteur/include/Program.h new file mode 100644 index 0000000..0a3abaf --- /dev/null +++ b/IOT/Capteur/include/Program.h @@ -0,0 +1,28 @@ +#ifndef PROGRAM_H +#define PROGRAM_H + +#include +#include "Capteur.h" +#include "HumiTemp.h" +#include "Barometer.h" + +class Program { +public: + /** + * Program startup + */ + Program(); + + /** + * Program main loop + */ + void loop(); +private: + + //TODO: faire commentaire + Capteur* DHT; + Capteur* barometer; + +}; + +#endif diff --git a/IOT/Capteur/include/README b/IOT/Capteur/include/README new file mode 100644 index 0000000..194dcd4 --- /dev/null +++ b/IOT/Capteur/include/README @@ -0,0 +1,39 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the usual convention is to give header files names that end with `.h'. +It is most portable to use only letters, digits, dashes, and underscores in +header file names, and at most one dot. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/IOT/Capteur/lib/Capteur/include/Barometer.h b/IOT/Capteur/lib/Capteur/include/Barometer.h new file mode 100644 index 0000000..f00f5ce --- /dev/null +++ b/IOT/Capteur/lib/Capteur/include/Barometer.h @@ -0,0 +1,44 @@ +#ifndef BAROMETER_H +#define BAROMETER_H + +#include +#include +#include +#include "Capteur.h" + +class Barometer : public Capteur{ +public: + + /** + * @brief Construct a new Capteur object + * + */ + Barometer(); + + /** + * @brief lit la valeur du capteur + * + * @return String valeur forma "XX/YY" X mBar et Y °C + */ + virtual String read(); + + /** + * @brief retourne le type de valeur lue + * + * @return String + */ + String getValType(); + + //TODO: faire commentaire + int getTemp(); + int getPressure(); + +private: + + //TODO: faire commentaire + SFE_BMP180* capteur; + +}; + + +#endif // BAROMETER_H diff --git a/IOT/Capteur/lib/Capteur/include/Capteur.h b/IOT/Capteur/lib/Capteur/include/Capteur.h new file mode 100644 index 0000000..1844cdc --- /dev/null +++ b/IOT/Capteur/lib/Capteur/include/Capteur.h @@ -0,0 +1,49 @@ +#ifndef CAPTEUR_H +#define CAPTEUR_H + +#include + +class Capteur{ +public: + + /** + * @brief Construct a new Capteur object + * + * @param[in] type type de mesure lue (T/H, W, D,...) + */ + Capteur(String type); + + /** + * @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 retourne le type de valeur lue + * + * @return String + */ + String getValType(); + +protected: + /** + * @brief type de mesure lue (T/H, W, D,...) + * + */ + String type; + +}; + + +#endif // CAPTEUR_H diff --git a/IOT/Capteur/lib/Capteur/include/HumiTemp.h b/IOT/Capteur/lib/Capteur/include/HumiTemp.h new file mode 100644 index 0000000..09a937e --- /dev/null +++ b/IOT/Capteur/lib/Capteur/include/HumiTemp.h @@ -0,0 +1,38 @@ +#ifndef HUMI_TEMP_H +#define HUMI_TEMP_H + +#include +#include +#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,...) + */ + HumiTemp(int pin, uint8_t type); + + /** + * @brief lit le capteur d'humi/temp + * + * @return String valeur format "XX/YY" X% et Y°C + */ + String read(); + + //TODO: faire commentaire + int getTemp(); + int getHumi(); + +private: + + DHT* capteur; + +}; + + +#endif //HUMI_TEMP_H diff --git a/IOT/Capteur/lib/Capteur/src/Barometer.cpp b/IOT/Capteur/lib/Capteur/src/Barometer.cpp new file mode 100644 index 0000000..e7ae486 --- /dev/null +++ b/IOT/Capteur/lib/Capteur/src/Barometer.cpp @@ -0,0 +1,45 @@ +#include "../include/Barometer.h" + +Barometer::Barometer(): + Capteur("P/T"){ + this->capteur = new SFE_BMP180(); + this->capteur->begin(); +} + +int Barometer::getTemp(){ + char status = capteur->startTemperature(); + if (status != 0){ + delay(status); + } + double temp; + status = this->capteur->getTemperature(temp); + if(status == 0){ + Serial.println("Temperature reading failed "); + return -1; + } + return temp; +} + +int Barometer::getPressure(){ + char status = this->capteur->startPressure(3); + if(status){ + delay(status); + } + double press = 0; + double T = 0; + status = this->capteur->getPressure(press, T); + if(status == 0){ + Serial.println("Pressure reading failed "); + return -1; + } + return press; +} + +String Barometer::read(){ + String sortie = ""; + + sortie += String(this->getPressure()); + sortie += "/"; + sortie += String(this->getTemp()); + return sortie; +} diff --git a/IOT/Capteur/lib/Capteur/src/Capteur.cpp b/IOT/Capteur/lib/Capteur/src/Capteur.cpp new file mode 100644 index 0000000..b54b9e4 --- /dev/null +++ b/IOT/Capteur/lib/Capteur/src/Capteur.cpp @@ -0,0 +1,13 @@ +#include "../include/Capteur.h" + +Capteur::Capteur(String type){ + this->type = type; +} + +bool Capteur::tar(int val){ + return true; +} + +String Capteur::getValType(){ + return this->type; +} \ No newline at end of file diff --git a/IOT/Capteur/lib/Capteur/src/HumiTemp.cpp b/IOT/Capteur/lib/Capteur/src/HumiTemp.cpp new file mode 100644 index 0000000..5f98982 --- /dev/null +++ b/IOT/Capteur/lib/Capteur/src/HumiTemp.cpp @@ -0,0 +1,34 @@ +#include "../include/HumiTemp.h" + +HumiTemp::HumiTemp(int pin, uint8_t type): + Capteur("H/T"){ + this->capteur = new DHT(pin, type); + this->capteur->begin(); +} + +int HumiTemp::getTemp(){ + int temp = this->capteur->readTemperature(); + if(isnan(temp)){ + Serial.println(" DHT reading failed "); + return -1; + } + return temp; +} + +int HumiTemp::getHumi(){ + int hum = this->capteur->readHumidity(); + if(isnan(hum)){ + Serial.println(" DHT reading failed "); + return -1; + } + return hum; +} + +String HumiTemp::read(){ + String sortie = ""; + + sortie += String(this->getHumi()); + sortie += "/"; + sortie += String(this->getTemp()); + return sortie; +} diff --git a/IOT/Capteur/lib/README b/IOT/Capteur/lib/README new file mode 100644 index 0000000..6debab1 --- /dev/null +++ b/IOT/Capteur/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into executable file. + +The source code of each library should be placed in a an own separate directory +("lib/your_library_name/[here are source files]"). + +For example, see a structure of the following two libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +and a contents of `src/main.c`: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +PlatformIO Library Dependency Finder will find automatically dependent +libraries scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/IOT/Capteur/platformio.ini b/IOT/Capteur/platformio.ini new file mode 100644 index 0000000..4dbbb35 --- /dev/null +++ b/IOT/Capteur/platformio.ini @@ -0,0 +1,76 @@ +; PlatformIO Project Configuration File + +; WARNING: Items containing version number MUST be the version NOT A RANGE + +; Additionnal files +; `secrets.ini`: Secret Build Flags that will be ignored in git (content: `[secrets]\nbuild_flags = `) +; `envs.ini`: Build environments +; `config.ini`: Global Configuration File + +; Defaults +[secrets] +build_flags = + +[platformio] +default_envs = debug +extra_configs = + secrets.ini + config.ini + envs.ini + +; Cache folder +build_cache_dir = ./.pio/cache + +[env] +; build Envs +build_flags = ${config.build_flags} ${secrets.build_flags} + +; Add scripts for more functionnalities +; see individual scripts for more informations +extra_scripts = pre:scripts/get_additionnal_envs.py + +; Device Settings (make sure to fix versions where possible!) +platform = espressif8266 +board = d1_mini +framework = arduino + +; Monitoring settings +monitor_speed = ${config.monitor_speed} + +; note: make sure to rebuild after changing it (log2file add a .log file containing the monitor logs) +monitor_filters = esp32_exception_decoder, time, send_on_enter, default ;, log2file + +; Ask the monitor to echo the content written +monitor_echo = yes + +; upload settings +; upload_port = COM1 + +upload_speed = 921600 + +; librairies (make sure to fix versions where possible!) +lib_deps = + https://github.com/timmbogner/Farm-Data-Relay-System.git ;lib for global system architecture + adafruit/DHT sensor library@^1.4.4 ;lib for humi and temp capteur + adafruit/Adafruit Unified Sensor@^1.1.9 ;required by DHT + sparkfun/Sparkfun BMP180@^1.1.2 ;lib for barometer capteur + jgromes/RadioLib@^6.1.0 ;lib for comunication + +; Checker settings +check_tool = clangtidy, cppcheck + +; Filters for checkers +check_src_filters = + + + + + + + + + -<.pio/> + +; Ask pio to not scan `./.pio` files +check_skip_packages = yes + +; use config files for clangtidy and cppcheck +check_flags = + clangtidy: --config-file=.clang-tidy + cppcheck: --project=config.cppcheck --inline-suppr -i=".pio" diff --git a/IOT/Capteur/scripts/get_additionnal_envs.py b/IOT/Capteur/scripts/get_additionnal_envs.py new file mode 100644 index 0000000..0a349fd --- /dev/null +++ b/IOT/Capteur/scripts/get_additionnal_envs.py @@ -0,0 +1,41 @@ +""" + Add additionnal ENVs to the program + + GIT_COMMIT: the git commit ID + GIT_BRANCH: the current git branch + GIT_TAG: the current git tag or "dev" + + _note: to get the full list of env at build time run: `pio run -t envdump > pouet.log` and look at "BUILD_FLAGS_ +""" + +import subprocess + +Import("env") + +def run_command(command): + """ + run a command on the system + """ + return subprocess.run(command, stdout=subprocess.PIPE, text=True).stdout + +def get_additionnal_envs(): + """ + get the git commit/branch/tag of the project and return them + """ + commit = run_command(["git", "rev-parse", "HEAD"])[:7] + branch = run_command(["git", "rev-parse", "--abbrev-ref", "HEAD"]) + tag = run_command(["git", "tag", "-l", "--points-at", "HEAD"]) + + items = [ + f"-D GIT_COMMIT=\\\"{commit}\\\"", + f"-D GIT_BRANCH=\\\"{branch.strip()}\\\"" + ] + if tag != "": + items.append(f"-D GIT_TAG=\\\"{tag.strip()}\\\"") + else: + items.append("-D GIT_TAG=\\\"dev\\\"") + return items + +env.Append( + BUILD_FLAGS=get_additionnal_envs() +) diff --git a/IOT/Capteur/secrets.ini.example b/IOT/Capteur/secrets.ini.example new file mode 100644 index 0000000..90b9782 --- /dev/null +++ b/IOT/Capteur/secrets.ini.example @@ -0,0 +1,6 @@ +; Add secrets token/logins/etc `secrets.ini` +; Add the sames values as blank in `secrets.ini.example +; To be able to reproduce it + +[secrets] +build_flags = diff --git a/IOT/Capteur/src/Program.cpp b/IOT/Capteur/src/Program.cpp new file mode 100644 index 0000000..6584974 --- /dev/null +++ b/IOT/Capteur/src/Program.cpp @@ -0,0 +1,19 @@ +#include "Program.h" + +Program::Program() { + // Startup + Serial.begin(MONITOR_SPEED); + this->DHT = new HumiTemp(DHT_PIN, DHT_TYPE); + this->barometer = new Barometer(); +} + +void Program::loop() { + // Loop + delay(2000); + Serial.print(this->DHT->read()); + Serial.print('\t'); + Serial.print(this->barometer->read()); + + + Serial.println(); +} diff --git a/IOT/Capteur/src/main.cpp b/IOT/Capteur/src/main.cpp new file mode 100644 index 0000000..f244b32 --- /dev/null +++ b/IOT/Capteur/src/main.cpp @@ -0,0 +1,83 @@ +#include +// #include +#include +#include +#include +#include +#include +#include +#include + +DHT dht(DHT_PIN, DHT_TYPE);// pour capteur dht11 humi/temp +SFE_BMP180 pressure;// pour capteur BMP180 pression/temp + + +void setup() { + beginFDRS(); + dht.begin(); + pressure.begin(); + if (!SD.begin(SD_CS)) { + Serial.println("Fail, verifier que la carte SD est presente."); + return; + } +} + +void loop() { + + // mesure DHT11 + float data1 = dht.readHumidity(); + float data2 = dht.readTemperature(); + + if (isnan(data1) || isnan(data2)) { + DBG("Failed to read from DHT sensor!"); + return; + } + + // mesure BMP180 + double data3; + double data4; + + char status = pressure.startTemperature(); + + if (status != 0){ + delay(status); + status = pressure.getPressure(data3,data4); + } + if(status == 0){ + DBG("failed to read BMP sensor!") + return; + } + + loadFDRS(data1, HUMIDITY_T); + loadFDRS(data2, TEMP_T); + loadFDRS(data3, PRESSURE_T); + sendFDRS(); + + File dataFile = SD.open(LOG_FILENAME, FILE_WRITE); + if (dataFile) { + DBG("SD OK"); + dataFile.print("[{\"id\":"); + dataFile.print(READING_ID); + dataFile.print(",\"type\":"); + dataFile.print(HUMIDITY_T); + dataFile.print(",\"data\":"); + dataFile.print(data1); + dataFile.print("},{\"id\":"); + dataFile.print(READING_ID); + dataFile.print(",\"type\":"); + dataFile.print(TEMP_T); + dataFile.print(",\"data\":"); + dataFile.print(data2); + dataFile.print("},{\"id\":"); + dataFile.print(READING_ID); + dataFile.print(",\"type\":"); + dataFile.print(PRESSURE_T); + dataFile.print(",\"data\":"); + dataFile.print(data3); + dataFile.println("}],"); + dataFile.close(); + }else{ + DBG("SD fail"); + } + sleepFDRS(10); //Sleep time in seconds +} diff --git a/IOT/Capteur/test/README b/IOT/Capteur/test/README new file mode 100644 index 0000000..9b1e87b --- /dev/null +++ b/IOT/Capteur/test/README @@ -0,0 +1,11 @@ + +This directory is intended for PlatformIO Test Runner and project tests. + +Unit Testing is a software testing method by which individual units of +source code, sets of one or more MCU program modules together with associated +control data, usage procedures, and operating procedures, are tested to +determine whether they are fit for use. Unit testing finds problems early +in the development cycle. + +More information about PlatformIO Unit Testing: +- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html diff --git a/IOT/archi global.puml b/IOT/archi global.puml new file mode 100644 index 0000000..0159af6 --- /dev/null +++ b/IOT/archi global.puml @@ -0,0 +1,39 @@ +@startuml +cloud { + [Serveur de donnée] +} + +database "infrastructure vigneron" { + [gateway principale] + + [relay] as R + + [station météo1] as SM1 + [station météo2] as SM2 + [station météo...] as SMX + + + circle "capteur sol" as CS1 + circle "capteur sol" as CS2 + circle "capteur sol" as CS3 + circle "capteur sol" as CS4 + circle "capteur sol" as CS5 + circle "capteur sol" as CS6 + + SM1 <.. CS1 : LORA (or espNow) + SM1 <.. CS2 + SM1 <.. CS3 + R <.. SM1 + R <.. CS6 + SM2 <.. CS4 + SM2 <.. CS5 +} + +[Serveur de donnée] <-- [gateway principale] : WiFi (api) +[gateway principale] <.. SM1 : LORA (or espNow) +[gateway principale] <.. SM2 : LORA (or espNow) +[gateway principale] <.. SMX : LORA (or espNow) +[gateway principale] <.. R + + +@enduml \ No newline at end of file diff --git a/IOT/receiver LoRa/.clang-tidy b/IOT/receiver LoRa/.clang-tidy new file mode 100644 index 0000000..790367c --- /dev/null +++ b/IOT/receiver LoRa/.clang-tidy @@ -0,0 +1,7 @@ +# Clangtidy configuration file (not used until PIO 6) +--- +Checks: 'abseil-*,boost-*,bugprone-*,cert-*,cppcoreguidelines-*,clang-analyzer-*,google-*,hicpp-*,modernize-*,performance-*,portability-*,readability-*,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-cppcoreguidelines-init-variables' +WarningsAsErrors: false +HeaderFilterRegex: '' +AnalyzeTemporaryDtors: false +FormatStyle: google diff --git a/IOT/receiver LoRa/.editorconfig b/IOT/receiver LoRa/.editorconfig new file mode 100644 index 0000000..fdfd862 --- /dev/null +++ b/IOT/receiver LoRa/.editorconfig @@ -0,0 +1,39 @@ +root = true + +# Base Configuration +[*] +indent_style = tab +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 120 +end_of_line = lf + +# Yaml Standard +[*.{yaml,yml}] +indent_style = space +indent_size = 2 + +# Markdown Standards +[*.md] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = false + +# Java, Kotlin, Gradle, XML Standards +[*.{java,kt,kts,gradle,xml,pro}] +indent_style = space + + +# C++ Files +[*.{cpp,h,ino}] +indent_style = space + +# PHP files +[*.php] +indent_style = space + +# INI Files +[*.ini] +indent_style = space diff --git a/IOT/receiver LoRa/.gitattributes b/IOT/receiver LoRa/.gitattributes new file mode 100644 index 0000000..94f480d --- /dev/null +++ b/IOT/receiver LoRa/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf \ No newline at end of file diff --git a/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/autre.yml b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/autre.yml new file mode 100644 index 0000000..aaf270d --- /dev/null +++ b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/autre.yml @@ -0,0 +1,11 @@ +name: Autre +description: Tout autre éléments liée au projet +title: "" +labels: [] +body: + - type: textarea + id: detail + attributes: + label: Details + validations: + required: true diff --git a/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/config.yml b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..8a8917e --- /dev/null +++ b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +# fichier non pris en compte pour le moment :( +blank_issues_enabled: false +contact_links: + - name: Discussions sur Git & Discord + url: https://discord.gg/TWKy76TptD + about: Pour discuter du projet on priorise le direct si possible :D \ No newline at end of file diff --git a/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/idee_amelioration.yml b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/idee_amelioration.yml new file mode 100644 index 0000000..220260c --- /dev/null +++ b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/idee_amelioration.yml @@ -0,0 +1,21 @@ +name: Fonctionalité +description: Une nouvelle fonctionalité ou amélioration d'un élément du logiciel +title: "amélioration: " +labels: [] +body: + - type: checkboxes + id: needs + attributes: + label: Besoins de la fonctionalité + description: Indiquez quelle sont les besoins pour la fonctionalité + options: + - label: Code + - label: Design + + - type: textarea + id: detail + attributes: + label: Details + description: Détaillez la fonctionnalité voulu + validations: + required: false diff --git a/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/rapport_de_bug.yml b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/rapport_de_bug.yml new file mode 100644 index 0000000..fbf1c58 --- /dev/null +++ b/IOT/receiver LoRa/.github/ISSUE_TEMPLATE/rapport_de_bug.yml @@ -0,0 +1,31 @@ +name: Rapport de bug +description: Un problème dans le logiciel +title: "bug: " +labels: [type/bug] +body: + - type: checkboxes + id: needs + attributes: + label: Localisation du bug + description: Dans quel environement le bug a été vu + options: + - label: Production + - label: Développement + - label: Figma/Design + + - type: textarea + id: detail + attributes: + label: Details + description: Détaillez le bug qui a été vu + validations: + required: true + + - type: textarea + id: reproduce + attributes: + label: Reproduction + description: Comment reproduire le bug + placeholder: "1. démarrer l'application\n2. Cliquer ...\n3. Faire ..." + validations: + required: true diff --git a/IOT/receiver LoRa/.github/PULL_REQUEST_TEMPLATE.md b/IOT/receiver LoRa/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..7ab3ff5 --- /dev/null +++ b/IOT/receiver LoRa/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ + diff --git a/IOT/receiver LoRa/.github/workflows/test_build.yml b/IOT/receiver LoRa/.github/workflows/test_build.yml new file mode 100644 index 0000000..b443179 --- /dev/null +++ b/IOT/receiver LoRa/.github/workflows/test_build.yml @@ -0,0 +1,41 @@ +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + test: + + runs-on: ubuntu-latest + + steps: + - name: Checkout project + uses: actions/checkout@v3 + + # - name: Cache pip + # uses: actions/cache@v3 + # with: + # path: ~/.cache/pip + # key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + # restore-keys: | + # ${{ runner.os }}-pip- + + # # this cache the platformio binaries and not the .pio folder + # - name: Cache PlatformIO + # uses: actions/cache@v3 + # with: + # path: ~/.platformio + # key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} + + - name: Set up Python + uses: https://github.com/actions/setup-python@v3 + + - name: Install PlatformIO + run: pip install platformio + + - name: Build the project + run: platformio run + + - name: Test the project + run: platformio check --fail-on-defect high diff --git a/IOT/receiver LoRa/.gitignore b/IOT/receiver LoRa/.gitignore new file mode 100644 index 0000000..53072ca --- /dev/null +++ b/IOT/receiver LoRa/.gitignore @@ -0,0 +1,12 @@ +# macOS +.DS_Store + +# Platformio specifics +.pio +.vscode/.browse.c_cpp.db* +.vscode/c_cpp_properties.json +.vscode/launch.json +.vscode/ipch + +# Aptatio/Platformio specifics +secrets.ini diff --git a/IOT/receiver LoRa/.vscode/extensions.json b/IOT/receiver LoRa/.vscode/extensions.json new file mode 100644 index 0000000..080e70d --- /dev/null +++ b/IOT/receiver LoRa/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ], + "unwantedRecommendations": [ + "ms-vscode.cpptools-extension-pack" + ] +} diff --git a/IOT/receiver LoRa/CONTRIBUTING.md b/IOT/receiver LoRa/CONTRIBUTING.md new file mode 100644 index 0000000..0c55c9a --- /dev/null +++ b/IOT/receiver LoRa/CONTRIBUTING.md @@ -0,0 +1,57 @@ +# Fonctionnement + +## Labels + +- `Type/Amélioration`: Issue/PR lié à une amélioration d'une fonctionalité +- `Type/Bug`: Issue/PR lié à un bug présent dans le logiciel a corriger +- `Type/Documentation`: Issue/PR lié à un changement dans la documentation technique et/ou le design UI/UX +- `Type/Fonctionnalité`: Issue/PR lié à une nouvelle fonctionnalité +- `Type/Sécurité`: Issue/PR lié a la sécurité du logiciel +- `Type/Tests`: Issue/PR lié a des tests + +- `Status/Besoin d'infos`: Feedback nécessaire pour avancer +- `Status/Bloqué`: Issue/PR bloqué par quelque chose + +- `Tech/Logiciel`: issue ou PR qui est liée a du logiciel (Code) +- `Tech/Mécatronique`:Issue qui est dans le hard (Éléctronique, Mécanique) + +- `Priorité/Critique`: issue critique dans l'usage du logiciel +- `Priorité/Haute`: issue importante +- `Priorité/Moyenne`: issue moyenement importante +- `Priorité/Basse`: Issue non/peu importante + +- `Revue/Confirmé`: Issue validé qui est à faire +- `Revue/Dupliqué`: Issue fermé car elle est déjà éxistante +- `Revue/Invalide`: Issue invalide (raison en commentaire) +- `Revue/Non Corrigable`: Issue non corrigable (raison en commentaire) + +## Workflow d'un issue + +- Ajout d'une issue +- trie selon le type de l'issue avec les labels +- Affectassion a un milestone si possible +- travail sur l'issue +- fermeture de l'issue avec une liaison avec un commit/PR si relié + +## Branches/Tags + +_Basé sur `Git Flow` mais en plus simplifié_ + +- `branch/master`: Branche principal qui contient le code mergé final et fonctionnel +- `branch/blablabla`: Branche liée a une **Pull Request** qui contient du code non stable selon l'avancement +- `tags/*.*.*`: Chaque tag est sa version et doit Respecter le format `semver` alias `MAJOR.MINOR.PATCH` toute les versions en dessous de `1.0.0` seront considéré comme non-stable + +## Commits/PR + +_basé sur `Conventional Commits` mais en plus simplifié_ + +Globalement c'est recommendé d'utiliser sa pour **TOUT** les commits _mais_ au minimum a utiliser pour nommer la **PR** pour garder la branche principal clean + +architecture: `prefix: description` +trois partis pour un commit/pr: +- prefix + - `feat`: grosso modo c'est le label `fonctionnalité` + - `fix`: c'est le label `bug` ou un amélioration de perfs + - `docs`: Changement au niveau de la documentation technique + - `chore`: Changement autre (dépendances, CI/CD) +- `description`: texte en anglais commencant par un verbe indiquant ce qui a été fait (ex: `allow`,`send`, `change`, etc) diff --git a/IOT/receiver LoRa/README.md b/IOT/receiver LoRa/README.md new file mode 100644 index 0000000..6b89f3e --- /dev/null +++ b/IOT/receiver LoRa/README.md @@ -0,0 +1,19 @@ +# Nom du projet + +Description du projet + +_note: voir le fichier SETUP.md pour setup le template dans un nouveau repo_ + +## Getting Started + +### Installation + +Description sur la façon dont on installe le logiciel/lib + +### Usage + +Description rapide de l'usage du logiciel + +## Règles de contributions + +Voir le fichier CONTRIBUTING.md diff --git a/IOT/receiver LoRa/SETUP.md b/IOT/receiver LoRa/SETUP.md new file mode 100644 index 0000000..c1fb550 --- /dev/null +++ b/IOT/receiver LoRa/SETUP.md @@ -0,0 +1,10 @@ +1. Activer la protection de branche pour `master` +2. `Enabled Branch Protection` +3. `Disable Push` +4. `Enable Merge Whitelist` +5. `Whitelisted teams for merging` = `owners` + `you` +6. `Required approvals` = `1` +7. `Block merge on rejected reviews` +8. `Dismiss stale approvals` +9. `Block merge id pull request is outdated` +10. Delete this file and `UPDATE.md` :D diff --git a/IOT/receiver LoRa/UPDATE.md b/IOT/receiver LoRa/UPDATE.md new file mode 100644 index 0000000..9288d35 --- /dev/null +++ b/IOT/receiver LoRa/UPDATE.md @@ -0,0 +1,15 @@ +# How to update a child repo from this template + +run this script and remove the possibly added files +``` +git push -d fix/update-template +git branch -D fix/update-template +git checkout -b fix/update-template +git clone ssh://git@git.dzeio.com:8022/aptatio/template-2.git tpl +rm -rf tpl/.git tpl/SETUP.md tpl/UPDATE.md tpl/README.md +yes | cp tpl/{.,}* ./ -r +rm -rf tpl +git add . +git commit -m "misc: update template" +git push -u origin fix/update-template +``` \ No newline at end of file diff --git a/IOT/receiver LoRa/config.cppcheck b/IOT/receiver LoRa/config.cppcheck new file mode 100644 index 0000000..77fd7d8 --- /dev/null +++ b/IOT/receiver LoRa/config.cppcheck @@ -0,0 +1,19 @@ + + + + .cppcheck-build + Unspecified + false + true + false + 10 + + + + + noCopyConstructor + noExplicitConstructor + unusedFunction + noOperatorEq + + diff --git a/IOT/receiver LoRa/config.ini b/IOT/receiver LoRa/config.ini new file mode 100644 index 0000000..fe4f51a --- /dev/null +++ b/IOT/receiver LoRa/config.ini @@ -0,0 +1,92 @@ +; Project configuration file + +[config] +; Hardware Serial baud rate +; Also available in the code as `MONITOR_SPEED` +monitor_speed = 115200 + +; Software Config +; note: additionnal flags are added by Platform.io (see total amount in `.vscode/c_cpp_properties.json` in the `defines` section) +; notworthy ones: +; __PLATFORMIO_BUILD_DEBUG__ = debug mode +build_flags = +; DO NOT TOUCH --- START + -D MONITOR_SPEED=${config.monitor_speed} +; DO NOT TOUCH --- END + +;;; FDRS config + +; -D FDRS_DEBUG ; Enable USB-Serial debugging + + + +; Addresses + -D UNIT_MAC=0x01 + -D ESPNOW_NEIGHBOR_1=0x00 + -D ESPNOW_NEIGHBOR_2=0x02 + -D LORA_NEIGHBOR_1=0x00 + -D LORA_NEIGHBOR_2=0x03 + +; Interfaces +; -D USE_ESPNOW + -D USE_LORA +; -D USE_WIFI +; -D USE_ETHERNET + +; Routing is in main.cpp + +; LoRa Configuration + -D RADIOLIB_MODULE=SX1276 + -D LORA_SS=18 + -D LORA_RST=14 + -D LORA_DIO=26 + -D LORA_BUSY=RADIOLIB_NC +; -D USE_SX126X + + -D LORA_TXPWR=17 ; LoRa TX power in dBm (: +2dBm - +17dBm (for SX1276-7) +20dBm (for SX1278)) + + -D CUSTOM_SPI + -D LORA_SPI_SCK=5 + -D LORA_SPI_MISO=19 + -D LORA_SPI_MOSI=27 + + -D LORA_FREQUENCY=433.0 + + +; OLED -- Displays console debugging messages on an SSD1306 I²C OLED +; -D USE_OLED + -D OLED_HEADER=\"FDRS\" + -D OLED_PAGE_SECS=30 + -D OLED_SDA=4 + -D OLED_SCL=15 + -D OLED_RST=16 + +; UART data interface pins (if available) + -D RXD2=13 + -D TXD2=12 + + +; -D USE_LR ; Use ESP-NOW LR mode (ESP32 only) + +; WiFi Credentials +; -D WIFI_SSID=\"Your SSID\" +; -D WIFI_PASS=\"Your Password\" + + + ; LoRa pinout + -D RADIO_MOSI_PIN=27 + -D RADIO_MISO_PIN=19 + -D RADIO_SCLK_PIN=5 + -D RADIO_CS_PIN=18 + -D RADIO_RST_PIN=14 + -D RADIO_DIO0_PIN=26 + + ;LoRa frequency + -D LoRa_frequency=433E6 + + ;Oled pin + -D I2C_SDA=21 + -D I2C_SCL=22 + + + -D EXAMPLE_STRING=\"Pouet\" diff --git a/IOT/receiver LoRa/docs/README.md b/IOT/receiver LoRa/docs/README.md new file mode 100644 index 0000000..9ff0271 --- /dev/null +++ b/IOT/receiver LoRa/docs/README.md @@ -0,0 +1,18 @@ +# Docs + +Documentation Technique du projet + +## fichiers .puml + +Les fichiers en .puml sont des fichiers UMLs sous forme de code + +Afin d'en avoir le résultat graphique : + +1. Ouvrez un navigateur +2. lancer le lien suivant [https://www.plantuml.com/plantuml/uml/](https://www.plantuml.com/plantuml/uml/) +3. Copiez/Collez le contenu du fichier .puml dans le voite de texte +4. Cliquez sur `Submit` + +ou si vous utilisez `VSCode`: +1. installez l'extensions [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) _jebbs.plantuml_ +2. `ALT+D` lorsque vous êtes dans un fichier .puml diff --git a/IOT/receiver LoRa/envs.ini b/IOT/receiver LoRa/envs.ini new file mode 100644 index 0000000..9df4a04 --- /dev/null +++ b/IOT/receiver LoRa/envs.ini @@ -0,0 +1,15 @@ +; Add additionnal environments in this file + +; Default production environment +[env:prod] + +; Debug environemnt +[env:debug] +build_type = debug + + +; Example additionnal env +; [env:example] +; ; note: keep the `${env.build_flags}` to includes others build flags +; build_flags = ${env.build_flags} +; -D POUET diff --git a/IOT/receiver LoRa/include/README.md b/IOT/receiver LoRa/include/README.md new file mode 100644 index 0000000..e142f15 --- /dev/null +++ b/IOT/receiver LoRa/include/README.md @@ -0,0 +1,4 @@ + +Dossier pour les fichiers `headers` de CPP + +en savoir plus: https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/IOT/receiver LoRa/lib/README.md b/IOT/receiver LoRa/lib/README.md new file mode 100644 index 0000000..2d18ac9 --- /dev/null +++ b/IOT/receiver LoRa/lib/README.md @@ -0,0 +1,27 @@ +# Librairies maisons utilisé pour ce projet + +Architecture fichiers: +``` +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json voir: https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.cpp + |- Program.cpp +``` + +En savoir plus: https://docs.platformio.org/en/latest/librarymanager/quickstart.html diff --git a/IOT/receiver LoRa/platformio.ini b/IOT/receiver LoRa/platformio.ini new file mode 100644 index 0000000..a8d99e9 --- /dev/null +++ b/IOT/receiver LoRa/platformio.ini @@ -0,0 +1,76 @@ +; PlatformIO Project Configuration File + +; WARNING: Items containing version number MUST be the version NOT A RANGE + +; Additionnal files +; `secrets.ini`: Secret Build Flags that will be ignored in git (content: `[secrets]\nbuild_flags = `) +; `envs.ini`: Build environments +; `config.ini`: Global Configuration File + +; Defaults +[secrets] +build_flags = + +[platformio] +default_envs = debug +extra_configs = + secrets.ini + config.ini + envs.ini + +; Cache folder +build_cache_dir = ./.pio/cache + +[env] +; build Envs +build_flags = ${config.build_flags} ${secrets.build_flags} + +; Add scripts for more functionnalities +; see individual scripts for more informations +extra_scripts = pre:scripts/get_additionnal_envs.py + +; Device Settings (make sure to fix versions where possible!) +platform = espressif32 +board = ttgo-lora32-v1 +framework = arduino + +; Monitoring settings +monitor_speed = ${config.monitor_speed} + +; note: make sure to rebuild after changing it (log2file add a .log file containing the monitor logs) +monitor_filters = esp32_exception_decoder, time, send_on_enter, default ;, log2file + +; Ask the monitor to echo the content written +monitor_echo = yes + +; upload settings +; upload_port = COM1 + +upload_speed = 921600 + +; librairies (make sure to fix versions where possible!) +lib_deps = +; example: +; erropix/ESP32 AnalogWrite@0.2 + https://github.com/timmbogner/Farm-Data-Relay-System.git ;lib for global system architecture + jgromes/RadioLib@^6.1.0 ;lib for comunication + + +; Checker settings +check_tool = clangtidy, cppcheck + +; Filters for checkers +check_src_filters = + + + + + + + + + -<.pio/> + +; Ask pio to not scan `./.pio` files +check_skip_packages = yes + +; use config files for clangtidy and cppcheck +check_flags = + clangtidy: --config-file=.clang-tidy + cppcheck: --project=config.cppcheck --inline-suppr -i=".pio" diff --git a/IOT/receiver LoRa/scripts/get_additionnal_envs.py b/IOT/receiver LoRa/scripts/get_additionnal_envs.py new file mode 100644 index 0000000..0a349fd --- /dev/null +++ b/IOT/receiver LoRa/scripts/get_additionnal_envs.py @@ -0,0 +1,41 @@ +""" + Add additionnal ENVs to the program + + GIT_COMMIT: the git commit ID + GIT_BRANCH: the current git branch + GIT_TAG: the current git tag or "dev" + + _note: to get the full list of env at build time run: `pio run -t envdump > pouet.log` and look at "BUILD_FLAGS_ +""" + +import subprocess + +Import("env") + +def run_command(command): + """ + run a command on the system + """ + return subprocess.run(command, stdout=subprocess.PIPE, text=True).stdout + +def get_additionnal_envs(): + """ + get the git commit/branch/tag of the project and return them + """ + commit = run_command(["git", "rev-parse", "HEAD"])[:7] + branch = run_command(["git", "rev-parse", "--abbrev-ref", "HEAD"]) + tag = run_command(["git", "tag", "-l", "--points-at", "HEAD"]) + + items = [ + f"-D GIT_COMMIT=\\\"{commit}\\\"", + f"-D GIT_BRANCH=\\\"{branch.strip()}\\\"" + ] + if tag != "": + items.append(f"-D GIT_TAG=\\\"{tag.strip()}\\\"") + else: + items.append("-D GIT_TAG=\\\"dev\\\"") + return items + +env.Append( + BUILD_FLAGS=get_additionnal_envs() +) diff --git a/IOT/receiver LoRa/secrets.ini.example b/IOT/receiver LoRa/secrets.ini.example new file mode 100644 index 0000000..90b9782 --- /dev/null +++ b/IOT/receiver LoRa/secrets.ini.example @@ -0,0 +1,6 @@ +; Add secrets token/logins/etc `secrets.ini` +; Add the sames values as blank in `secrets.ini.example +; To be able to reproduce it + +[secrets] +build_flags = diff --git a/IOT/receiver LoRa/src/README.md b/IOT/receiver LoRa/src/README.md new file mode 100644 index 0000000..ff37eaa --- /dev/null +++ b/IOT/receiver LoRa/src/README.md @@ -0,0 +1,3 @@ +# Code source du projet + +En savoir plus: https://docs.platformio.org/en/latest/core/quickstart.html diff --git a/IOT/receiver LoRa/src/main.cpp b/IOT/receiver LoRa/src/main.cpp new file mode 100644 index 0000000..36d2d44 --- /dev/null +++ b/IOT/receiver LoRa/src/main.cpp @@ -0,0 +1,17 @@ +// FARM DATA RELAY SYSTEM +// +// GATEWAY 2.000 +// +// Developed by Timm Bogner (timmbogner@gmail.com) in Urbana, Illinois, USA. +// + +#include +#include +#include +void setup() { +beginFDRS(); +} + +void loop() { +loopFDRS(); +} \ No newline at end of file diff --git a/IOT/receiver LoRa/test/README.md b/IOT/receiver LoRa/test/README.md new file mode 100644 index 0000000..7fa0127 --- /dev/null +++ b/IOT/receiver LoRa/test/README.md @@ -0,0 +1,4 @@ + +# Fichiers de tests unitaire de PlatformIO + +En savoir plus: https://docs.platformio.org/page/plus/unit-testing.html diff --git a/chiffrage IOT.xlsx b/chiffrage IOT.xlsx new file mode 100644 index 0000000..682707b Binary files /dev/null and b/chiffrage IOT.xlsx differ