Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΊΡΡΠΎΠ½ΠΈΠΊΠ° Π½Π° Arduino Nano Ρ ΡΠ»ΡΡΡΠ°Π·Π²ΡΠΊΠΎΠ²ΡΠΌΠΈ Π΄Π°ΡΡΠΈΠΊΠ°ΠΌΠΈ HC-SR04 ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ»Π΅ΠΏΡΡ
Π·ΠΎΠ½ ΠΏΡΠΈ ΠΏΠ°ΡΠΊΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π½ΠΈΠΌ Ρ
ΠΎΠ΄ΠΎΠΌ β ΡΠΎΡΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ
ΡΠΈΡΡΠ΅ΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ Β±3 ΡΠΌ ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΠ΅. ΠΠ²ΡΠΎΠ»ΡΠ±ΠΈΡΠ΅Π»ΠΈ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ Π»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ Π·Π°Π²ΠΎΠ΄ΡΠΊΠΈΡ
ΠΏΠ°ΡΠΊΡΡΠΎΠ½ΠΈΠΊΠΎΠ² Π½Π° Π½Π΅ΡΠΎΠ²Π½ΡΡ
ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΡΡ
ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠΈ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄Π½ΡΡ
Π±Π°Π³Π°ΠΆΠ½ΠΈΠΊΠΎΠ², Π° Arduino-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠ³ΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π·ΠΎΠ½Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ NewPing.h ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Ρ 4 Π΄Π°ΡΡΠΈΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π²ΡΠ²ΠΎΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° OLED-ΡΠΊΡΠ°Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π°Π²Π°Ρ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π·ΠΎΠΈΠ·Π»ΡΡΠ°ΡΠ΅Π»Ρ.
ΠΡΡΠ³ΠΎΠΉ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ β Π±ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π° Arduino Mega, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ ΠΊ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠ°Π·ΡΠ΅ΠΌΡ OBD-II ΡΠ΅ΡΠ΅Π· Π°Π΄Π°ΠΏΡΠ΅Ρ ELM327. Π’Π°ΠΊΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°ΡΡ
ΠΎΠ΄ ΡΠΎΠΏΠ»ΠΈΠ²Π°, ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ ΠΈ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, P0300 β ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΡ), ΡΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΠΏΠΎΠ΄Π΅ΡΠΆΠ°Π½Π½ΡΡ
Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Ρ ΠΈΠ·Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠΎΠΉ. ΠΡΠΈ Π±ΡΠ΄ΠΆΠ΅ΡΠ΅ Π΄ΠΎ 3000 ΡΡΠ±Π»Π΅ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠ΅Π²ΠΎΡΡ
ΠΎΠ΄ΡΡ Π·Π°Π²ΠΎΠ΄ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π°Π²ΡΠΎ.
1. ΠΠ°ΡΠΊΡΡΠΎΠ½ΠΈΠΊ Ρ ΡΠ»ΡΡΡΠ°Π·Π²ΡΠΊΠΎΠ²ΡΠΌΠΈ Π΄Π°ΡΡΠΈΠΊΠ°ΠΌΠΈ: ΡΡ Π΅ΠΌΠ° ΠΈ ΠΊΠΎΠ΄
ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ°ΡΠΊΡΡΠΎΠ½ΠΈΠΊΠ° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Arduino Uno/Nano, 4 Π΄Π°ΡΡΠΈΠΊΠ° HC-SR04, ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½Π°Ρ Π»Π΅Π½ΡΠ° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ) ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ Π·ΡΠΌΠΌΠ΅Ρ. ΠΠ°ΡΡΠΈΠΊΠΈ ΠΌΠΎΠ½ΡΠΈΡΡΡΡΡΡ Π² Π±Π°ΠΌΠΏΠ΅Ρ ΠΏΠΎΠ΄ ΡΠ³Π»ΠΎΠΌ 20Β° Π΄Π»Ρ ΠΏΠΎΠΊΡΡΡΠΈΡ ΠΌΠ΅ΡΡΠ²ΡΡ
Π·ΠΎΠ½. ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΡ
Π΅ΠΌΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΠΈΡΡΠΎΡΠΎΠ² 220 ΠΠΌ Π½Π° Π»ΠΈΠ½ΠΈΡΡ
Trig Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠΊΠ°ΡΠΊΠΎΠ² Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² Π±ΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠΈ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ NewPing Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΎΡΠ° Π΄Π°ΡΡΠΈΠΊΠΎΠ². ΠΠ°ΠΆΠ½ΡΠΉ Π½ΡΠ°Π½Ρ: ΠΏΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΎΡ ΠΏΡΠΈΠΊΡΡΠΈΠ²Π°ΡΠ΅Π»Ρ (12Π) Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ LM7805, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Arduino Π½Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ 5.5Π. ΠΠ»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ OLED-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ 128x64 Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ U8g2.
- π§ ΠΠΎΠΌΠΏΠ»Π΅ΠΊΡΡΡΡΠΈΠ΅: Arduino Nano, HC-SR04 (4 ΡΡ.), Π·ΡΠΌΠΌΠ΅Ρ, ΡΠ΅Π·ΠΈΡΡΠΎΡΡ 220 ΠΠΌ
- π Π Π°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ: 2β400 ΡΠΌ (Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅)
- β‘ ΠΠΈΡΠ°Π½ΠΈΠ΅: 5Π ΠΎΡ USB ΠΈΠ»ΠΈ 12Π ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ
- π‘ ΠΠΎΠΏ. ΡΡΠ½ΠΊΡΠΈΠΈ: ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Π½Π°Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ, Π·Π²ΡΠΊΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΠΌΠΎΠ½ΡΠ°ΠΆΠ΅ Π΄Π°ΡΡΠΈΠΊΠΎΠ² Π² ΠΏΠ»Π°ΡΡΠΈΠΊΠΎΠ²ΡΠΉ Π±Π°ΠΌΠΏΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³Π΅ΡΠΌΠ΅ΡΠΈΠΊ ABRO ES-350 β ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π²Π»Π°Π³ΠΈ Π² ΡΠ°Π·ΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ Π΄Π»Ρ Π·ΠΈΠΌΠ½Π΅ΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ.
Π Π°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ 8 Π΄Π°ΡΡΠΈΠΊΠΎΠ²
ΠΠ»Ρ ΠΏΠΎΠΊΡΡΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΈ Π·Π°Π΄Π½Π΅Π³ΠΎ Π±Π°ΠΌΠΏΠ΅ΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ CD4051 (8 ΠΊΠ°Π½Π°Π»ΠΎΠ²). Π‘Ρ
Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: Arduino A0 β CD4051 INH, Π΄Π°ΡΡΠΈΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π²ΡΡ
ΠΎΠ΄Π°ΠΌ Y0-Y7. Π ΠΊΠΎΠ΄Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ» ΠΎΠΏΡΠΎΡΠ° ΠΊΠ°Π½Π°Π»ΠΎΠ² Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ 50 ΠΌΡ Π΄Π»Ρ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠ³Π½Π°Π»Π°.
2. ΠΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Ρ OBD-II: ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π½Π° Π±Π°Π·Π΅ Arduino Mega 2560 + Π°Π΄Π°ΠΏΡΠ΅Ρ ELM327 Bluetooth ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ISO 9141-2 (Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π΅Π²ΡΠΎΠΏΠ΅ΠΉΡΠΊΠΈΡ
Π°Π²ΡΠΎ) ΠΈΠ»ΠΈ CAN 11/29 (ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ). ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ: RPM (ΠΎΠ±ΠΎΡΠΎΡΡ), MAF (ΡΠ°ΡΡ
ΠΎΠ΄ Π²ΠΎΠ·Π΄ΡΡ
Π°), ECT (ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΎΡ
Π»Π°ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΆΠΈΠ΄ΠΊΠΎΡΡΠΈ).
ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ TFT-Π΄ΠΈΡΠΏΠ»Π΅ΠΉ 3.5" Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ MCUFRIEND_kbv. ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ:
#include
COBD obd;
void setup() {
obd.begin();
obd.init(OBD_PROTOCOL_AUTO); // ΠΠ²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°
}
void loop() {
int response = obd.read(PID_ENGINE_LOAD);
if (response == SUCCESS) {
float load = obd.getValue();
// ΠΡΠ²ΠΎΠ΄ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ
}
}
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΎΠ΄ PID | ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ | ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
|---|---|---|---|
| ΠΠ±ΠΎΡΠΎΡΡ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ | 0x0C | ΠΎΠ±/ΠΌΠΈΠ½ | >3500 (Π΄Π»Ρ ΠΠΠΠ) |
| Π’Π΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΎΡ Π»Π°ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΆΠΈΠ΄ΠΊΠΎΡΡΠΈ | 0x05 | Β°C | >105Β° |
| ΠΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ ΡΠΎΠΏΠ»ΠΈΠ²Π° | 0x07 | % | Β±10% (ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΡ Π΄Π°ΡΡΠΈΠΊΠΎΠ²) |
| ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΠΏΡΡΠΊΠ½ΠΎΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΎΡΠ΅ | 0x0B | ΠΊΠΠ° | <50 (Π²Π°ΠΊΡΡΠΌ) ΠΈΠ»ΠΈ >110 (ΡΡΡΠ±ΠΎ) |
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ΄Π°ΠΏΡΠ΅ΡΡ ELM327 Π²Π΅ΡΡΠΈΠΈ 1.5 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» CAN 29-bit, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² BMW ΠΈ Mercedes ΠΏΠΎΡΠ»Π΅ 2010 Π³ΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΈΡ
Π°Π²ΡΠΎ Π½ΡΠΆΠ΅Π½ Π°Π΄Π°ΠΏΡΠ΅Ρ Π½Π° Π±Π°Π·Π΅ STN1110.
3. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄Π°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠΈΠ½Π°Ρ (TPMS) Π½Π° Arduino
Π‘Π°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΠΉ TPMS (Tire Pressure Monitoring System) ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½Π° Π±Π°Π·Π΅ Π΄Π°ΡΡΠΈΠΊΠΎΠ² TPMS-SENSOR (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JJC Ver.3) ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° Π½Π° Arduino Pro Mini + ΠΌΠΎΠ΄ΡΠ»Ρ nRF24L01 Π΄Π»Ρ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΡΡΠΈΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠ»ΠΏΠ°ΡΠΊΠΎΠ² Π½Π° Π½ΠΈΠΏΠΏΠ΅Π»ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π΄Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 5 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ:
1. ΠΠ°ΡΡΠΈΠΊ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 0β8 Π±Π°Ρ) ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ (-40Β°β¦+125Β°C).
2. ΠΠ°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΏΠΎ ΡΠ°Π΄ΠΈΠΎΡΠ°ΡΡΠΎΡΠ½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ 433 ΠΠΡ.
3. Arduino ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΈΠ³Π½Π°Π» ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° LCD 1602 ΠΏΡΠΈ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΈ ΠΎΡ Π½ΠΎΡΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π΄Π°Π²Π»Π΅Π½ΠΈΡ Π½Π° 0.3 Π±Π°Ρ Π·Π° 1 ΠΌΠΈΠ½ΡΡΡ).
- π‘ ΠΠ°Π»ΡΠ½ΠΎΡΡΡ ΡΠ²ΡΠ·ΠΈ: Π΄ΠΎ 10 ΠΌ (Π² ΡΠ°Π»ΠΎΠ½Π΅ Π°Π²ΡΠΎ)
- π ΠΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°ΡΡΠΈΠΊΠΎΠ²: Π±Π°ΡΠ°ΡΠ΅ΠΉΠΊΠ° CR1632 (ΡΡΠΎΠΊ ΡΠ»ΡΠΆΠ±Ρ 2β3 Π³ΠΎΠ΄Π°)
- β οΈ ΠΠΎΡΠΎΠ³ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ: Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ΄Π΅ (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ 1.8β2.5 Π±Π°Ρ Π΄Π»Ρ Π»Π΅Π³ΠΊΠΎΠ²ΡΡ Π°Π²ΡΠΎ)
ΠΠ»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π΄Π°Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²ΡΠ·ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π°Π½ΡΠ΅Π½Π½Ρ Π½Π° nRF24L01 Π½Π° Π°Π½ΡΠ΅Π½Π½Ρ-ΡΠ΄Π»ΠΈΠ½ΠΈΡΠ΅Π»Ρ 2.4ΠΠΡ (Π΄Π»ΠΈΠ½Π° 8β10 ΡΠΌ). ΠΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΈΠ΅ΠΌΠΎΠΌ ΡΠΈΠ³Π½Π°Π»Π° Π² ΠΌΠ΅ΡΠ°Π»Π»ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΡΠ·ΠΎΠ²Π°Ρ .
4. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠΌΠ°Ρ-ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ
ΠΡΠΎΠ΅ΠΊΡ Π½Π° Π±Π°Π·Π΅ Arduino Leonardo ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΄ΠΈΡΠΈΠΎΠ½Π΅ΡΠ° ΠΏΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ°Π»ΠΎΠ½Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, +25Β°C) ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ³ΡΠ΅Π²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ΅ Π½ΠΈΠΆΠ΅ +18Β°C. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ:
- ΠΠ°ΡΡΠΈΠΊ DHT22 (ΡΠΎΡΠ½ΠΎΡΡΡ Β±0.5Β°C).
- Π Π΅Π»Π΅ 5V 10A Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½Π΄ΠΈΡΠΈΠΎΠ½Π΅ΡΠ°.
- ΠΠ½ΠΎΠΏΠΊΠΈ Π΄Π»Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°.
ΠΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΠΠ-ΡΠ΅Π³ΡΠ»ΡΡΠΎΡ Π΄Π»Ρ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ:
#include
double Setpoint = 22.0; // Π¦Π΅Π»Π΅Π²Π°Ρ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°
double Kp=2, Ki=0.5, Kd=1;
PID pid(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
void setup() {
pid.SetMode(AUTOMATIC);
}
void loop() {
Input = dht.readTemperature();
pid.Compute();
// Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π»Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Output
}
ΠΠ°ΠΆΠ½ΠΎ: Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΡΠ°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠ»ΠΈΠΌΠ°Ρ-ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Toyota Corolla E150) ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ CAN-ΡΠΈΠ½Π° Π°Π΄Π°ΠΏΡΠ΅Ρ (MCP2515) Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
5. ΠΡ ΡΠ°Π½Π½Π°Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ GSM-ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π½Π° Arduino Mega + ΠΌΠΎΠ΄ΡΠ»Ρ SIM800L ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ SMS ΠΏΡΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΈ Π΄Π°ΡΡΠΈΠΊΠΎΠ²:
- ΠΠ°ΡΡΠΈΠΊ ΡΠ΄Π°ΡΠ° (Π²ΠΈΠ±ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ΅Π½ΡΠΎΡ SW-420).
- ΠΠ°ΡΡΠΈΠΊ ΠΎΡΠΊΡΡΡΠΈΡ Π΄Π²Π΅ΡΠ΅ΠΉ (Π³Π΅ΡΠΊΠΎΠ½Ρ).
- ΠΠ°ΡΡΠΈΠΊ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ (HC-SR501, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°Π»ΠΎΠ½Π΅).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
- GSM-ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ SMS Π½Π° 2 Π½ΠΎΠΌΠ΅ΡΠ° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ GPS-ΠΌΠΎΠ΄ΡΠ»Ρ NEO-6M).
- ΠΠ»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π·Π°ΡΡΠ΄Π° Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ° Arduino ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ Π² sleep-mode (Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° LowPower.h) ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΊΠ»Π°ΠΌΠΈ ΠΎΠΏΡΠΎΡΠ° Π΄Π°ΡΡΠΈΠΊΠΎΠ².
- ΠΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· AT-ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sim800.print("ATD+79123456789;\r"); // ΠΠ²ΠΎΠ½ΠΎΠΊ Π½Π° Π½ΠΎΠΌΠ΅Ρ
delay(20000); // ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π²ΠΎΠ½ΠΊΠ°
sim800.print("ATH\r"); // Π‘Π±ΡΠΎΡΠΈΡΡ Π²ΡΠ·ΠΎΠ²
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ 5Π/3Π β ΠΏΠΈΠΊΠΎΠ²ΡΠ΅ ΡΠΎΠΊΠΈ GSM-ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ 2Π, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠ±ΡΠΎΡ Arduino.
2. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°ΡΡΠΈΠΊΠ° ΡΠ΄Π°ΡΠ° (Π»Π΅Π³ΠΊΠΎΠ΅ ΠΏΠΎΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΡΠ·ΠΎΠ²Ρ)
3. Π’Π΅ΡΡ GPS-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ (ΠΊΠΎΠΌΠ°Π½Π΄Π° AT+CGNSINF)
4. ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ½Π° (<0.5 ΠΌΠ)-->
6. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠΌ (DRL ΠΈ Π³Π°Π±Π°ΡΠΈΡΡ)
Π‘Ρ Π΅ΠΌΠ° Π½Π° Arduino Nano + ΡΠΎΡΠΎΡΠ΅Π·ΠΈΡΡΠΎΡ (GL5528) Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π½Π΅Π²Π½ΡΠ΅ Ρ ΠΎΠ΄ΠΎΠ²ΡΠ΅ ΠΎΠ³Π½ΠΈ (DRL) ΠΏΡΠΈ ΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ <500 Π»ΡΠΊΡ ΠΈ Π³Π°Π±Π°ΡΠΈΡΡ ΠΏΡΠΈ <50 Π»ΡΠΊΡ. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΎΡΠ½ΡΠΌΠΈ LED-Π»Π΅Π½ΡΠ°ΠΌΠΈ (12Π, 5Π) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ MOSFET-ΡΡΠ°Π½Π·ΠΈΡΡΠΎΡ IRLZ44N.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ:
1. Π€ΠΎΡΠΎΡΠ΅Π·ΠΈΡΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡ Π²Ρ
ΠΎΠ΄Ρ A0 ΡΠ΅ΡΠ΅Π· Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ (ΡΠ΅Π·ΠΈΡΡΠΎΡ 10 ΠΊΠΠΌ).
2. ΠΡΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ ΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΡΠΎΠ³Π° Arduino Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΠ΅Π»Π΅ Π³Π°Π±Π°ΡΠΈΡΠΎΠ².
3. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (30 ΡΠ΅ΠΊΡΠ½Π΄) ΠΏΠΎΡΠ»Π΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΆΠΈΠ³Π°Π½ΠΈΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Π°Π²ΡΠΎ.
- βοΈ ΠΠΎΡΠΎΠ³ DRL: 300β800 Π»ΡΠΊΡ (Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΎΡΠ΅Π·ΠΈΡΡΠΎΡΠ°)
- π ΠΠΎΡΠΎΠ³ Π³Π°Π±Π°ΡΠΈΡΠΎΠ²: 10β100 Π»ΡΠΊΡ
- β‘ ΠΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅: <0.1 ΠΌΠ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ
7. ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡΠ°: ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΎΠΊΠ° ΡΡΠ΅ΡΠΊΠΈ
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° Arduino Pro Mini + ΠΌΠΎΠ΄ΡΠ»Ρ INA219 ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ:
- ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΠΠ (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 6β16Π).
- Π’ΠΎΠΊ ΡΡΠ΅ΡΠΊΠΈ (ΡΠΎΡΠ½ΠΎΡΡΡ Β±1 ΠΌΠ).
- ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π±Π°ΡΠ°ΡΠ΅ΠΈ (ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΈΠΌΠΏΡΠ»ΡΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ).
ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΠΎΠ³ΠΈ Π΄Π»Ρ ΡΠ²ΠΈΠ½ΡΠΎΠ²ΠΎ-ΠΊΠΈΡΠ»ΠΎΡΠ½ΡΡ ΠΠΠ:
- ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ <11.8Π ΠΏΡΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Π΅ β Π³Π»ΡΠ±ΠΎΠΊΠΈΠΉ ΡΠ°Π·ΡΡΠ΄.
- Π’ΠΎΠΊ ΡΡΠ΅ΡΠΊΠΈ >50 ΠΌΠ β ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΡ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ°Π³Π½ΠΈΡΠΎΠ»Ρ.
ΠΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Adafruit_INA219.h Π΄Π»Ρ ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΠΈ:
ina219.setCalibration_16V_400mA();
float voltage = ina219.getBusVoltage_V();
float current = ina219.getCurrent_mA();
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΎΡΠΌΠ° | ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΡΠΈΡΠΈΠ½Π° |
|---|---|---|---|
| ΠΠ°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ (Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π²ΡΠΊΠ».) | 12.6β12.8Π | <11.8Π | ΠΠ»ΡΠ±ΠΎΠΊΠΈΠΉ ΡΠ°Π·ΡΡΠ΄ |
| Π’ΠΎΠΊ ΡΡΠ΅ΡΠΊΠΈ | <30 ΠΌΠ | >100 ΠΌΠ | ΠΠ Π² ΡΠ΅ΠΏΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ |
| ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ | <0.05 ΠΠΌ | >0.1 ΠΠΌ | Π‘ΡΠ»ΡΡΠ°ΡΠ°ΡΠΈΡ ΠΏΠ»Π°ΡΡΠΈΠ½ |
ΠΠ»Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ° ΡΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ Π²ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΡ) ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ 10 ΠΌΠΈΠ½ΡΡ β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ECU) Π²ΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· ΡΠΏΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ.
8. ΠΠ΅ΡΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ Π΄ΠΎΡΡΡΠΏ Ρ RFID-ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π½Π° Arduino Nano + ΠΌΠΎΠ΄ΡΠ»Ρ RC522 Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ°ΡΠ½ΡΠΉ ΠΈΠΌΠΌΠΎΠ±ΠΈΠ»Π°ΠΉΠ·Π΅Ρ, ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ Π·Π°ΠΌΠΎΠΊ ΠΏΡΠΈ ΠΏΠΎΠ΄Π½Π΅ΡΠ΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΊΠΈ EM4100 ΠΊ ΡΡΠΈΡΡΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°ΠΌΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π»Π΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΊ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ ΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ΅Π»ΠΎΠΊΠ° (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅ΡΡΠΎΠΌ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΠ·Π²ΠΎΠ½ΠΊΠΈ).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ:
- Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ UID ΠΌΠ΅ΡΠΎΠΊ Π² EEPROM Arduino (Π΄ΠΎ 10 ΠΌΠ΅ΡΠΎΠΊ).
- ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠ»Π΅ 3 Π½Π΅ΡΠ΄Π°ΡΠ½ΡΡ ΠΏΠΎΠΏΡΡΠΎΠΊ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ (Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ°).
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ PIN-ΠΊΠΎΠ΄Ρ (Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ 4x4).
- π ΠΠ°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ: 3β5 ΡΠΌ (Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΡΠ·ΠΎΠ²Π°)
- π Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ: Π»ΡΠ±ΡΠ΅ Π°Π²ΡΠΎ Ρ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π·Π°ΠΌΠΊΠ°ΠΌΠΈ
- β‘ ΠΠΈΡΠ°Π½ΠΈΠ΅: ΠΎΡ ΡΠ΅ΠΏΠΈ ΠΏΡΠΈΠΊΡΡΠΈΠ²Π°ΡΠ΅Π»Ρ (12Π β 5Π ΡΠ΅ΡΠ΅Π· AMS1117)
#include
byte sectorKeyA[16] = {0xFF, 0xFF, ...}; // ΠΠ»ΡΡ Π΄ΠΎΡΡΡΠΏΠ°
bool authenticate = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockAddr, §orKeyA, &(mfrc522.uid));
-->
FAQ: Π§Π°ΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Arduino-ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ Π΄Π»Ρ Π°Π²ΡΠΎ
ΠΠ°ΠΊ Π·Π°ΡΠΈΡΠΈΡΡ Arduino ΠΎΡ ΡΠΊΠ°ΡΠΊΠΎΠ² Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ Π² Π±ΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠΈ?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡ Ρ ΡΠΈΡΠΎΠΊΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, LM2596 Π½Π° 3Π) ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²Π°ΡΠΈΡΡΠΎΡ Π½Π° 27Π ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ»Ρ ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ) Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠΉ Π°ΠΊΠΊΡΠΌΡΠ»ΡΡΠΎΡ 18650 Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Π·Π°ΡΡΠ΄ΠΊΠΈ TP4056.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Arduino ΠΊ CAN-ΡΠΈΠ½Π΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π±Π΅Π· Π°Π΄Π°ΠΏΡΠ΅ΡΠ°?
ΠΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ CAN 2.0 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°Π½ΡΠΈΠ²Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MCP2515 + TJA1050). ΠΡΡΠΌΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Arduino ΠΊ CAN-ΡΠΈΠ½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΠ². ΠΠ°ΡΠ½ΠΈΡΠ΅ Ρ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ listen-only, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Ρ ECU.
ΠΠ°ΠΊ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ?
ΠΡΠΊΠ»ΡΡΠΈΡΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, power_down() Π΄Π»Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ sleep-mode:
#include
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_mode(); // Π£Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠ½
Π’ΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ½ΠΈΠ·ΠΈΡΡΡ Π΄ΠΎ ~0.05 ΠΌΠ.
ΠΠ°ΠΊΠΈΠ΅ Arduino-ΠΏΠ»Π°ΡΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ Π°Π²ΡΠΎ?
- Arduino Nano β Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (ΠΏΠ°ΡΠΊΡΡΠΎΠ½ΠΈΠΊ, TPMS).
- Arduino Mega 2560 β Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ CAN-ΡΠΈΠ½Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² (Π±ΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ).
- Arduino Pro Mini β Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ (Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΏΡΠΈΠ±ΠΎΡΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ).
- ESP32 β Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ΅Π½ Wi-Fi/Bluetooth (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°).
ΠΠ΄Π΅ Π²Π·ΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π΄Π»Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²?
ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° GitHub (ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ "Arduino OBD2", "Arduino TPMS"). ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π°Π²ΡΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, VAZ 2110 ΠΈΠ»ΠΈ Ford Focus 2) ΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Π½Π° ΡΠΎΡΡΠΌΠ°Ρ
Drive2 ΠΈΠ»ΠΈ Arduino Forum Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΎΠΉ "[Tested]".