add node 2 and 3 to arch diagram

This commit is contained in:
Travis Shears 2026-02-23 22:21:03 +01:00
parent 2525069deb
commit 20f86a2176
Signed by: travisshears
GPG key ID: CB9BF1910F3F7469
3 changed files with 60 additions and 24 deletions

View file

@ -23,6 +23,10 @@ I have since switch to using C for better performance and control.
## Hardware
### Arch
![arch](diagrams/arch.svg)
### Node1
Sensors:
@ -37,8 +41,6 @@ Weatherproof Enclosure: [weatherproof-cover-for-outdoor-sensors](https://shop.pi
_Note: I would not recommend buying from pimoroni from EU as shipping tax is huge!_
![arch](diagrams/arch.svg)
## Helpful links
- [pico mqtt Example](https://github.com/raspberrypi/pico-examples/blob/master/pico_w/wifi/mqtt/README)

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 304.95 691" width="304.95" height="691" style="--bg:#FFFFFF;--fg:#27272A;background:var(--bg)">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 902.1000000000001 691" width="902.1000000000001" height="691" style="--bg:#FFFFFF;--fg:#27272A;background:var(--bg)">
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&amp;display=swap');
text { font-family: 'Inter', system-ui, sans-serif; }
@ -26,29 +26,51 @@
<polygon points="8 0, 0 2.4, 8 4.8" fill="var(--_arrow)" />
</marker>
</defs>
<rect x="40" y="40" width="224.95" height="285" rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="40" y="40" width="224.95" height="28" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="40" y="40" width="224.95000000000005" height="285" rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="40" y="40" width="224.95000000000005" height="28" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="52" y="54" dy="0.35em" font-size="12" font-weight="600" fill="var(--_text-sec)">Node1</text>
<polyline points="99.44999999999999,132 99.44999999999999,287 113.2375,287" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="201.925,132 201.925,287 188.1375,287" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<rect x="284.95000000000005" y="40" width="431.1" height="285" rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="284.95000000000005" y="40" width="431.1" height="28" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="296.95000000000005" y="54" dy="0.35em" font-size="12" font-weight="600" fill="var(--_text-sec)">Node2</text>
<rect x="736.0500000000001" y="40" width="126.04999999999998" height="285" rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="736.0500000000001" y="40" width="126.04999999999998" height="28" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="748.0500000000001" y="54" dy="0.35em" font-size="12" font-weight="600" fill="var(--_text-sec)">Node3</text>
<polyline points="99.45000000000005,132 99.45000000000005,287 120.6875,287" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="201.92499999999995,132 201.92499999999995,287 180.6875,287" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="150.6875,305 150.6875,442" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="150.6875,478 150.6875,615" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<rect x="82.86999999999999" y="187" width="33.16" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="99.44999999999999" y="200.5" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">i2c</text>
<rect x="182.485" y="187" width="38.88" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="201.925" y="200.5" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">uart</text>
<polyline points="358.70000000000005,132 358.70000000000005,287 445.17500000000007,287" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="482.62500000000006,132 482.62500000000006,269" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="624.4250000000001,132 624.4250000000001,287 520.075,287" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<polyline points="799.075,132 799.075,269" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" />
<rect x="82.87000000000005" y="187" width="33.16" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="99.45000000000005" y="200.5" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">i2c</text>
<rect x="182.48499999999996" y="187" width="38.88" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="201.92499999999995" y="200.5" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">uart</text>
<rect x="114.0875" y="360" width="73.2" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="150.6875" y="373.5" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">Custom TCP</text>
<rect x="131.2475" y="533" width="38.88" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="150.6875" y="546.5" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">mqtt</text>
<rect x="95.3625" y="442" width="110.65" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="56.037499999999994" y="615" width="189.3" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="61.999999999999986" y="96" width="74.9" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="113.2375" y="269" width="74.9" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="160.9" y="96" width="82.05000000000001" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="62.00000000000004" y="96" width="74.9" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="120.6875" y="269" width="60" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="160.89999999999995" y="96" width="82.05000000000001" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="306.95000000000005" y="96" width="103.5" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="445.17500000000007" y="269" width="74.9" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="434.45000000000005" y="96" width="96.35000000000001" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="554.8000000000001" y="96" width="139.25" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="758.0500000000001" y="96" width="82.05000000000001" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<rect x="761.625" y="269" width="74.9" height="36" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="150.6875" y="460" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">Event Proxy</text>
<text x="150.6875" y="633" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">Home Assistant Servier</text>
<text x="99.44999999999999" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">bme280</text>
<text x="150.6875" y="287" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">rp2040</text>
<text x="201.925" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">pms5003</text>
<text x="99.45000000000005" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">bme280</text>
<text x="150.6875" y="287" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">mc1</text>
<text x="201.92499999999995" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">pms5003</text>
<text x="358.70000000000005" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">Anemometer</text>
<text x="482.62500000000006" y="287" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">pico w</text>
<text x="482.62500000000006" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">Wind Vane</text>
<text x="624.4250000000001" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">MIPS Microphone</text>
<text x="799.075" y="114" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">ltr-559</text>
<text x="799.075" y="287" text-anchor="middle" dy="0.35em" font-size="13" font-weight="500" fill="var(--_text)">pico w</text>
</svg>

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Before After
Before After

View file

@ -1,13 +1,25 @@
import { renderMermaid } from "beautiful-mermaid";
const diagram = await renderMermaid(`
flowchart TD
subgraph Node1
bme280 -->|i2c| rp2040
pms5003 -->|uart| rp2040
end
rp2040 -->|Custom TCP| proxy[Event Proxy]
proxy -->|mqtt| ha[Home Assistant Servier]
flowchart TD
subgraph Node1
bme280 -->|i2c| mc1
pms5003 -->|uart| mc1
end
mc1[pico w] -->|Custom TCP| proxy[Event Proxy]
proxy -->|mqtt| ha[Home Assistant Servier]
mc2[pico w] --> |Custom TCP| proxy
subgraph Node2
wind_speed[Anemometer] --> mc2
wind_dir[Wind Vane] --> mc2
mic[MIPS Microphone] --> mc2
end
mc3[pico w] --> |Custom TCP| proxy
subgraph Node3
ltr-559 --> mc3
end
`);
console.log(diagram);