Merge commit 'bf9e6c3ebee0a2cb1c7d1dccef8700062fb8ffb8'

This commit is contained in:
Clement 2023-07-18 15:16:50 +02:00
commit 9736baa8f2
59 changed files with 3056 additions and 0 deletions

7
IOT/Capteur/.clang-tidy Normal file
View File

@ -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

39
IOT/Capteur/.editorconfig Normal file
View File

@ -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

17
IOT/Capteur/.gitignore vendored Normal file
View File

@ -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

10
IOT/Capteur/.vscode/extensions.json vendored Normal file
View File

@ -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"
]
}

15
IOT/Capteur/.vscode/settings.json vendored Normal file
View File

@ -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"
}
}

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- CPP Check configuation file -->
<project version="1">
<builddir>.cppcheck-build</builddir>
<platform>Unspecified</platform>
<analyze-all-vs-configs>false</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>

72
IOT/Capteur/config.ini Normal file
View File

@ -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\"

View File

@ -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

View File

@ -0,0 +1,2 @@
(kicad_pcb (version 20221018) (generator pcbnew)
)

View 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": "Schématics.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

View File

@ -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": {}
}

View File

@ -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"))
)
)

View File

@ -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))))
)
)
)
)

View File

@ -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 ""))
)

15
IOT/Capteur/envs.ini Normal file
View File

@ -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

View File

@ -0,0 +1,28 @@
#ifndef PROGRAM_H
#define PROGRAM_H
#include <Arduino.h>
#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

View File

@ -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

View File

@ -0,0 +1,44 @@
#ifndef BAROMETER_H
#define BAROMETER_H
#include <Arduino.h>
#include <SFE_BMP180.h>
#include <Wire.h>
#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

View File

@ -0,0 +1,49 @@
#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,...)
*/
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

View File

@ -0,0 +1,38 @@
#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,...)
*/
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

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

46
IOT/Capteur/lib/README Normal file
View File

@ -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 <Foo.h>
#include <Bar.h>
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

View File

@ -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 =
+<src/>
+<include/>
+<lib/>
+<test/>
-<.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"

View File

@ -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()
)

View File

@ -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 =

View File

@ -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();
}

83
IOT/Capteur/src/main.cpp Normal file
View File

@ -0,0 +1,83 @@
#include <Arduino.h>
// #include <esp8266WiFi.h>
#include <SPI.h>
#include <Wire.h>
#include <fdrs_globals.h>
#include <fdrs_node.h>
#include <SD.h>
#include <DHT.h>
#include <SFE_BMP180.h>
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
}

11
IOT/Capteur/test/README Normal file
View File

@ -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

39
IOT/archi global.puml Normal file
View File

@ -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

View File

@ -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

View File

@ -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

1
IOT/receiver LoRa/.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
* text=auto eol=lf

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,8 @@
<!--
Bravo pour la PR, quelque note pour que tout se passe au mieux :D
- Lier la PR a une issue si elle existe!
- Assurez-vous que le nom de la PR respecte les règles (voir CONTRIBUTING.md)
- faites des rebase pour valider la PR
- Assurez-vous que le CI/CD est au vert
-->

View File

@ -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

12
IOT/receiver LoRa/.gitignore vendored Normal file
View File

@ -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

View File

@ -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"
]
}

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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
```

View File

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

View File

@ -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\"

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,4 @@
Dossier pour les fichiers `headers` de CPP
en savoir plus: https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

View File

@ -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

View File

@ -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 =
+<src/>
+<include/>
+<lib/>
+<test/>
-<.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"

View File

@ -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()
)

View File

@ -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 =

View File

@ -0,0 +1,3 @@
# Code source du projet
En savoir plus: https://docs.platformio.org/en/latest/core/quickstart.html

View File

@ -0,0 +1,17 @@
// FARM DATA RELAY SYSTEM
//
// GATEWAY 2.000
//
// Developed by Timm Bogner (timmbogner@gmail.com) in Urbana, Illinois, USA.
//
#include <Arduino.h>
#include <SPI.h>
#include <fdrs_gateway.h>
void setup() {
beginFDRS();
}
void loop() {
loopFDRS();
}

View File

@ -0,0 +1,4 @@
# Fichiers de tests unitaire de PlatformIO
En savoir plus: https://docs.platformio.org/page/plus/unit-testing.html

BIN
chiffrage IOT.xlsx Normal file

Binary file not shown.