t5_haus
Temperatur/Feuchte, Öltankpegel, Heizkessel, Wasseruhr und Steuerung Hauptventil Gartenbewäaserung
Idee
Auf der Basis zunächst eines Arduino Ethernet, später der IOT-Basisstation, dann einem Pololu A*Star, und schliesslich (wieder) einem eigenen PCB auf Atmega1284-Basis werden minütlich Daten aus unserem Viessmann Heizkessel, von verschiedenen Wasserzählern, Temperatur- und Feuchtesensoren sowie der Öltankpegel erfasst und in eine Datenbank übertragen. Zudem wird das Hauptventil der Gartenbewässerung angesteuert.
Hauptventil
Steuerung
Siehe t5_haus
Neuaufbau can_heiztemp1284_v01_mod
Teil des T5 Hausbussystems. Daten, Kommandos und Firmware (t5_haus02) werden über CAN-Bus übertragen. Schaltplan und PCB-Layout (letzteres mit manuellen Korrekturen um HGND von VNEG am DRV8833 zu trennen):
// t5_haus02 // Monitors in-house temperature, humidity, central heating, oil tank and garden water consumption, and controls main garden irrigation valve. // Sends and receives data via CAN bus. Part of the T5 monitoring and control system. // Board schematics can_heiztemp1284_v01_mod 26-May-2022 https://wiki.wangnick.de/doku.php?id=t5_haus // Controller used is Atmega1284P // 16MHz external crystal // RESET - 10k - +5V // D0-RXD0 and D1-TXD1 for debug output // DHT22 use uC internal pullups during reception and drive line high otherwise. Connections: // B3 - S1 (Heizraum über Wassertank) // A0 - S4 (Flur unten) // A1 - S6 (Dachboden) // A2 - S7 (Hallenisolierung aussen) // A3 - S8 (Hallenisolierung innen) // A4 - S9 (Aussentemperatur Dach über Garage) // C4,C5,C6,C7 - For future use // DS18B20 bus line A5 required 10k external pullup to +5VIO. Bus devices: // Warmwassertemperatur wwt {0x28,0x8E,0xD3,0xCD,0x04,0x00,0x00,0xCD} // Kaltwassertemperatur kwt {0x28,0xD8,0xD2,0xCD,0x04,0x00,0x00,0x9C} // Zirkulationstemperatur zit {0x28,0xB0,0x78,0xCE,0x04,0x00,0x00,0xF8} // Garden water gauge with reed contact (1 on and 1 off transition per liter) connects to C2 - 10k - +5VIO and to GND. The 10k pullup to +5VIO is onboard. // Warm water gauge with reed contact (1 on and 1 off transition per quarter liter) connects to C3 - 10k - +5VIO and GND, with the pullup onboard as well. // The main valve is driven by a DRV8833. Connections are D4 - AIN1, D5 - AIN2, NFAULT - B1 (using internal uC pullup), NSLEEP - 10k - +5V onboard. // We use a fixed ISEN resistor of 1R5 and parallel a B0 switchable resistance of 0R5 plus IRLML6244 Rdson of 16m so 0R516 making 0R384. // DRV8833 limits current to ISEN of 200mV, so 1R5 gives 133mA to maintain ON state, and 0R384 gives 520mA to switch ON. // The ISEN voltage is also connected ISEN - 2k7 - A7 - 100n - GND for software consistency checks. // CAN connectivity goes via MCP2515 with 8MHz external crystal via SPI (B2 - nINT, B4 - nCS - 10k - +5VIO, B5-MOSI, B6-MISO, B7-SCK, nRST - 10k - +5VIO) and TJA1050. // TJA1050 is connected to CL2 and CH2 // We have a 128x32 pixel display and three CAP1203 touch buttons connected to C0-SDA/C1-SCL, each with 2k2 pullups onboard to +5VIO. // We can monitor the 9V power supply via +9V - 220k - A6 - 10k - GND. The board has a 2200uF buffer cap to react when power supply goes down. // +5VIO has a orange LED with a 1k resistor limiting current. // We can also switch off +5VIO using D7. This switches off all external devices (DHT22, DS18B20, MCP2515, TJA1050, CAP1203, Display, Gauge contacts, LED) except the DRV8833. // // External connections: // C1: VA VA VB VB Main valve // C2: TXD RXD GND +5V Optolink, was: J2 // C3: WQ GND GND HL Warm water resp. garden water gauge, was: J13 // C4: EHO TRG GND +5V Oiltank, was: J6 // C5: B3 A0 GND +5V S1 - , was: J8, cable "Heizraum" // C6: A2 A1 GND +5V - S4, was: J4, cable "Hobbyraum" // C7: A3 A5 GND +5V - A5, DS18B20 one wire bus, requires 10k to +5V. // C8: A4 C7 GND +5V S7 S6, was: J10, cable "Dachboden" part A // C9: C6 C5 GND +5V S8 S9, was: J11, cable "Dachboden" part B // C10: C4 GND +5V - - // C11: CL1 CH1 CL2 CH2 CAN // C12: CL1 CH1 CL2 CH2 CAN // // Cable from t5_valves (6x2), to t5_garage (4x2): // CL1: RED/1a // CH1: BLU/1b // CL2: WHT/2a // CH2: YLW/2b // G15V: WHT/3a, GRN/3b // +15V: WHT/4a, BRN/4b // G9V: WHT/5a, BLK/5b (only from t5_valves) // +9V: WHT/6a, BLU/6b (only from t5_valves)
Design und Implementierung
Status
- Bootloader: httpboot-m1284p-8mhz-w5500.c Mar 4 2014 19:20:38
- Software: w5500_optolink_httpboot_09.ino Nov 28 2015 18:17:03
- Pinbelegung
Pin # | Eagle Jumper Id | ATmega1284P QFN Pin | Id | Func | Arduino Id | Arduino Analog Id | Use |
---|---|---|---|---|---|---|---|
P0 | JP3.8 | 9 | PD0 | RXD0 | D8 | Optolink | |
P1 | JP3.7 | 10 | PD1 | TXD0 | D9 | Optolink | |
P2 | JP3.6 | 11 | PD2 | RXD1 | D10 | Garage | |
P3 | JP3.5 | 12 | PD3 | TXD1 | D11 | Garage | |
P4 | JP3.4 | 13 | PD4 | D12 | S3 | ||
P5 | JP3.3 | 14 | PD5 | D13 | S4 | ||
P6 | JP3.2 | 15 | PD6 | ICP | D14 | ECHO | |
P7 | JP3.1 | 16 | PD7 | D15 | TRIGGER | ||
P8 | JP4.8 | 34 | PA3 | D27 | A3 | S1 | |
P9 | JP4.7 | 33 | PA4 | D28 | A4 | S6 | |
P10 | JP4.6 | 32 | PA5 | D29 | A5 | S7 | |
P11 | JP4.5 | 31 | PA6 | D30 | A6 | S8 | |
P12 | JP4.4 | 30 | PA7 | D31 | A7 | S9 | |
P13 | JP4.3 | 29 | AREF | ||||
P14 | JP4.2 | 20 | PC1 | SDA | D17 | LCD | |
P15 | JP4.1 | 19 | PC0 | SCL | D16 | LCD | |
GRN | 37 | PA0 | D24 | A0 | HL |
- Adapterboard
Jumper | Pin 0 | Pin 1 | Pin 2 | Pin 3 |
---|---|---|---|---|
JV Versorgung | 3V3 (orange) | 5V (rot) | GND (braun) | RST (schwarz) |
J0 Programmierung | P0 | P1 | GND | 100nF → RST |
J1 Optolink | P1 | P0 | GND | 3V3 |
J2 Garage | P2 (gelb!) | P3 (weiss!) | GND | 5V |
J4 DHT Flur | P4 (N/C, gelb) | P5 (S4, weiss) | GND | 3V3 |
J6 Öltank | P6 (ECHO) | P7 (TRIGGER) | GND | 5V |
J8 Heizraum | P8 (S1) | N/A | GND | 3V3 |
J10 Dachboden1 | P10 (S7) | P9 (S6) | GND | 3V3 |
J11 Dachboden2 | P11 (S8) | P12 (S9) | GND | 3V3 |
J14 LCD | P14 (SDA) | P15 (SCL) | GND | 5V |
- Hardware:
- LiquidCrystal_I2C Lcd(0x27,16,2)
- DHT s1(A3) Heizungsraum, s3(12) Hobbyraum, s4(13) Flur, s6(A4) Dachboden, s7(A5) Hallendecke Iso Außenseite, s8(A6) Hallendecke Iso Innenseite, s9(A7) Dachkasten Außen
- W5500_POWERPIN (1«PINB2), W5500_SS (1«PINB4)
- Optolink Serial.begin(4800,SERIAL_8E2)
- Garage Serial1.begin(115200)
- Kabel Heizung↔DHT Flur: Schwarz→Blau:GND, Rot→BlauWeiss:+5V, Weiss→Braun:S4
- [Kabel T4-CAN-MQTT↔Hobbyraum: Blau:N/A, BlauWeiss:N/A, Braun:N/A, BraunWeiss:N/A, Orange:CANGND, OrangeWeiss:CAN+9V, Grün:CANL, GrünWeiss:CANH]
Neuaufbau mit Pololu A* (Atmega328PB, 5V, 16MHz), MCP2515/TJA1050 an SPI1, CD4067 an ICP1 zur Abfrage von HC-SR04 und DHT22, und DRV8833 zur Ansteuerung des Garten-Hauptventils
- Versorgung 9V
- HIAMP 520mA (((1R|1R)+0R016)|1R5), !HIAMP 133mA (1R5)
- [HIAMP 446mA (((1R|1R)+0R016)|3R3), !HIAMP 60mA (3R3)
- D0 (RXD0) - Seriell Debugging
- D1 (TXD0) - Seriell Debugging
- D2 - DRV8833 nFAULT
- D3 - CAN INT
- D4 - CD4067 S0
- D5 - CD4067 S1
- D6 - CD4067 S2
- D7 - CD4067 S3
- D8 (ICP1) - CD4067 COMMON SIG
- D9 - NC
- D10 - NC
- D11 (TXD1) - Optolink YLW TSHF5210 K, A - RED - 330 - 5V [was: Garage ADUM1201 VIA (or VIB?)]
- D12 (RXD1) - 1k - 5V, D12 - Optolink GRN - TEKT5400S-ASZ C, E - BLK - GND [was: Garage ADUM1201 VOB (or VOA?)]
- D13 - DRV8833 HIAMP IRLML6244 G, S - GND, D - 0R5(1R|1R) - AISEN/BISEN - 1R5 - GND
- D14/A0 - CAN MISO1
- D15/A1 - CAN SCK1
- D16/A2 - DRV8833 IN1
- D17/A3 - DRV8833 IN2
- D18/A4 - 4k7|6k8 - DRV8833 AISEN/BISEN, D18/A4 - 100n - GND
- D19/A5 - 10k - 5V, D19/A5 - Water GRN, Water BLU - GND
- D20/A6 - CAN CS
- D21/A7 - CAN MOSI1
- D22 (SDA1) - 2k2 - 5V
- D23 (SCL1) - 2k2 - 5V
- DRV8833 nSLEEP - 10k - 5V
- CD4067 C0 - Öltank YLW HC-SR04 TRIGGER, C0 - 1k - WHT ECHO, RED - 5V, BLK - GND
- CD4067 C1 - S1 (Heizraum über Wassertank)
- CD4067 C2 - S4 (Flur)
- CD4067 C3 - S6 (Dachboden)
- CD4067 C4 - S7 (Hallenisolierung aussen)
- CD4067 C5 - S8 (Hallenisolierung innen)
- CD4067 C6 - S9 (Aussentemperatur Dach über Garage)
Alter Jumper
- P0 - D0
- P1 - D1
- P2 - D12
- P3 - D11
- P4 - D19
- P5 - CD4067 C2 (S4)
- P6 - (ECHO) - 1k - P7
- P7 - CD 4067 C0 (TRIGGER)
- P8 - CD 4067 C1 (S1)
- P9 - CD 4067 C3 (S6)
- P10 - CD 4067 C4 (S7)
- P11 - CD 4067 C5 (S8)
- P12 - CD 4067 C6 (S9)
- P13 - D19
- P14 - D22
- P15 - D23
- PA - 5VB
- PB - 5V
- PC - GND
- PD - [RST]
Jumper | Pin 0 | Pin 1 | Pin 2 | Pin 3 |
---|---|---|---|---|
J0 Programmierung | D0 (RXD0) | D1 (TXD0) | GND | 100nF → RST |
J1 Seriell | D1 (TXD0) | D0 (RXD0) | GND | 5VB |
J2 Optolink | D11 (TXD1) | D12 (RXD1) | GND | 5V |
J4 DHT Hobbyraum/Flur | N/A | S4 (weiss) | GND | 5VB |
J6 Öltank | ECHO | TRIGGER | GND | 5V |
J8 Heizraum | S1 | N/A | GND | 5VB |
J10 Dachboden1 | S7 | S6 | GND | 5VB |
J11 Dachboden2 | S8 | S9 | GND | 5VB |
J13 Wasseruhr | GRN | BLU GND | ||
J14 LCD | D22 (SDA1) | D23 (SCL1) | GND | 5V |
t5_haus.txt · Zuletzt geändert: 2024/12/18 10:50 von sebastian