Turinys:
- 1 veiksmas: reikalinga aparatinė įranga
- 2 veiksmas: prijungimas prie aparatūros
- 3 žingsnis: Bendravimas naudojant I2C protokolą
- 4 žingsnis: modulio programavimas
- 5 veiksmas: sukurkite failą ir paleiskite kodą
- 6 žingsnis: programos
- 7 žingsnis: ištekliai
Video: Namų automatizavimas naudojant „Raspberry Pi“naudojant relės lentą: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Dauguma žmonių nori didelio komforto, tačiau už priimtiną kainą. Jaučiamės tingūs kiekvieną vakarą, kai saulė nusileidžia, apšviesti namus ir kitą rytą, vėl išjungti šviesą Arba įjungti/išjungti oro kondicionierių/ventiliatorių/šildytuvus, kaip ir oro ar kambario temperatūra.
Čia yra nebrangus sprendimas, padedantis išvengti papildomo darbo, kai reikia išjungti prietaisus. Tai yra automatizuoti jūsų namus palyginti mažesnėmis sąnaudomis naudojant paprastus „plug and play“produktus. Jis veikia taip, kai temperatūra pakyla arba nukrenta, atitinkamai įjungia oro kondicionierių arba šildytuvą. Be to, prireikus tai padės įjungti ar apšviesti jūsų namus rankiniu būdu jų neįjungus. Ir daug daugiau prietaisų galima valdyti. Automatizuokite pasaulį. Pradėkime nuo jūsų namų.
1 veiksmas: reikalinga aparatinė įranga
Mes naudosime:
Raspberry Pi
„Raspberry Pi“yra vienišas „Linux“kompiuteris. Šis mažas kompiuteris yra labai svarbus registruojant galią, naudojamas kaip elektronikos pratimų dalis ir kompiuterio operacijos, tokios kaip skaičiuoklės, tekstų apdorojimas, naršymas internete, el. Paštas ir žaidimai
„I2C Shield“arba „I2C“antraštė
INPI2 (I2C adapteris) turi Raspberry Pi 2/3 an I²C prievadą, skirtą naudoti su keliais I2C įrenginiais
I2C relės valdiklis MCP23008
MCP23008 iš „Microchip“yra integruotas prievado plėtiklis, valdantis aštuonias reles per I²C magistralę. Naudodami integruotą I²C išplėtimo prievadą, galite pridėti daugiau relių, skaitmeninių įvesties/išvesties, analoginių ir skaitmeninių keitiklių, jutiklių ir kitų įrenginių
MCP9808 temperatūros jutiklis
MCP9808 yra didelio tikslumo temperatūros jutiklis, teikiantis kalibruotus, linijinius jutiklių signalus skaitmeniniu I²C formatu
TCS34903 šviesumo jutiklis
TCS34903 yra spalvų jutiklių šeimos produktas, kuris suteikia RGB šviesos ir spalvos komponento vertę
I2C jungiamasis kabelis
„I2C“jungiamasis kabelis yra 4 laidų kabelis, skirtas I2C ryšiui tarp dviejų per jį prijungtų I2C įrenginių
Micro USB adapteris
Norėdami įjungti „Raspberry Pi“, mums reikia „Micro USB“kabelio
12 V maitinimo adapteris relės plokštei
MCP23008 relės valdiklis veikia iš 12 V išorinio maitinimo šaltinio ir gali būti tiekiamas naudojant 12 V maitinimo adapterį
Produktą galite įsigyti paspaudę ant jų. Be to, „Dcube Store“galite rasti daugiau puikios medžiagos.
2 veiksmas: prijungimas prie aparatūros
Reikalingos jungtys (žr. Paveikslėlius) yra šios:
- Tai veiks per I2C. Paimkite „Raspberry pi“I2C skydą ir švelniai prijunkite jį prie „Raspberry Pi“GPIO kaiščių.
- Vieną I2C kabelio galą prijunkite prie TCS34903 prievado, kitą-prie I2C skydo.
- Prijunkite MCP9808 jutiklio katilą prie TCS34903 išvesties naudodami I2C kabelį.
- Prijunkite MCP23008 katilą prie MCP9808 jutiklio išvesties naudodami I2C kabelį.
- Taip pat prijunkite eterneto kabelį prie „Raspberry Pi“. Taip pat galima naudoti „Wi-Fi“maršrutizatorių.
- Tada įjunkite „Raspberry Pi“maitinimą naudodami „Micro USB“adapterį ir MCP23008 relės plokštę naudodami 12 V adapterį.
- Galiausiai prijunkite šviesą su pirmąja relė ir ventiliatoriumi arba šildytuvu su antrąja relė. Galite išplėsti modulį arba prijungti daugiau įrenginių prie relių.
3 žingsnis: Bendravimas naudojant I2C protokolą
Norėdami įjungti „Raspberry Pi I2C“, atlikite toliau nurodytus veiksmus.
- Terminale įveskite šią komandą, kad atidarytumėte konfigūracijos nustatymus: sudo raspi-config
- Čia pasirinkite „Išplėstinės parinktys“.
- Pasirinkite „I2C“ir spustelėkite „Taip“.
- Iš naujo paleiskite sistemą, kad ją nustatytumėte pagal pakeitimus, atliktus naudojant komandą reboot.
4 žingsnis: modulio programavimas
„Raspberry Pi“naudojimo atlygis yra tai, kad suteikia lankstumo pasirinkti programavimo kalbą, kuria norite programuoti, kad sąsaja su jutimo įrenginiu būtų su „Raspberry Pi“. Pasinaudoję šiuo „Raspberry Pi“pranašumu, mes čia demonstruojame jo programavimą „Java“.
Norėdami nustatyti „Java“aplinką, įdiekite „pi4j libraby“iš https://pi4j.com/1.2/index.html „Pi4j“yra „Raspberry Pi“„Java“įvesties/išvesties biblioteka. Lengvas ir labiausiai pageidaujamas „pi4j“diegimo būdas biblioteka “yra vykdyti toliau nurodytą komandą tiesiai„ Raspberry Pi “:
garbanos -s get.pi4j.com | sudo bash
ARBA
curl -s get.pi4j.com
importuoti com.pi4j.io.i2c. I2CBus; importuoti com.pi4j.io.i2c. I2CDevice; importuoti com.pi4j.io.i2c. I2CFactory; importuoti java.io. IOException; klasė MCP23008 {public static void main (String args ) metimai Išimtis {int status, value, value1 = 0x00; // Sukurti I2C magistralę I2CBus magistralė = I2CFactory.getInstance (I2CBus. BUS_1); // Gauti I2C įrenginį, MCP23008 I2C adresas yra 0x20 (32) I2CDevice device = bus.getDevice (0x20); // Gauti I2C įrenginį, MCP9808 I2C adresas yra 0x18 (24) I2CDevice MCP9808 = bus.getDevice (0x18); // Gauti I2C įrenginį, TCS34903 I2C adresas yra 0x39 (55) I2CDevice TCS34903 = bus.getDevice (0x39); // Nustatyti laukimo laiko registrą = 0xff (255), laukimo laikas = 2,78 ms TCS34903.write (0x83, (baitas) 0xFF); // Įgalinti prieigą prie IR kanalo TCS34903.write (0xC0, (baitas) 0x80); // Nustatykite Atime registrą į 0x00 (0), maksimalus skaičius = 65535 TCS34903.write (0x81, (baitas) 0x00); // Įjungtas maitinimas, įjungtas ADC, palaukimas palauktas TCS34903.write (0x80, (baitas) 0x0B); Siūlai.miegoti (250); // Skaityti 8 baitus duomenų su aiškiu/ir duomenimis LSB pirmasis baitas duomenys1 = naujas baitas [8]; // Skaityti temperatūros duomenų baitą duomenys = naujas baitas [2]; status = device.read (0x09); // Visi kaiščiai sukonfigūruoti kaip OUTPUT device.write (0x00, (baitas) 0x00); Siūlai.miegoti (500); nors (tiesa) {MCP9808.read (0x05, duomenys, 0, 2); // Konvertuoti duomenis int temp = ((duomenys [0] ir 0x1F) * 256 + (duomenys [1] ir 0xFF)); if (temp> 4096) {temp -= 8192; } dvigubas cTemp = temp * 0,0625; System.out.printf („Temperatūra pagal Celsijų yra: %.2f C %n“, cTemp); TCS34903. skaityti (0x94, data1, 0, 8); dvigubas ir = ((duomenys1 [1] ir 0xFF) * 256) + (duomenys1 [0] ir 0xFF) * 1,00; dvigubai raudona = ((duomenys1 [3] ir 0xFF) * 256) + (duomenys1 [2] ir 0xFF) * 1,00; dvigubai žalia = ((duomenys1 [5] ir 0xFF) * 256) + (duomenys1 [4] ir 0xFF) * 1,00; dvigubai mėlyna = ((duomenys1 [7] ir 0xFF) * 256) + (duomenys1 [6] ir 0xFF) * 1,00; // Apskaičiuokite apšvietimo dvigubą apšvietimą = (-0,32466) * (raudona) + (1,57837) * (žalia) + (-0,73191) * (mėlyna); System.out.printf („Apšvietimas yra: %.2f lux %n“, apšvietimas); jei (apšvietimas 30) {vertė = vertė1 | (0x01); } else {value = value1 & (0x02); } device.write (0x09, (baitų) reikšmė); Siūlai.miegoti (300); }}}
5 veiksmas: sukurkite failą ir paleiskite kodą
- Norint sukurti naują failą, į kurį galima įrašyti/nukopijuoti kodą, bus naudojama ši komanda: sudo nano FILE_NAME.javaEg. sudo nano MCP23008.java
- Sukūrę failą, galime įvesti kodą čia.
- Nukopijuokite ankstesniame žingsnyje nurodytą kodą ir įklijuokite jį čia esančiame lange.
- Norėdami išeiti, paspauskite Ctrl+X, tada „y“.
- Tada surinkite kodą naudodami šią komandą: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
- Jei nėra klaidų, paleiskite programą naudodami toliau nurodytą komandą: pi4j FILE_NAMEEg. pi4j MCP23008.java
6 žingsnis: programos
Ši sistema leidžia valdyti prietaisus, nesikreipiant į sieninius jungiklius. Tai turi daug galimybių, nes prietaisų įjungimo arba išjungimo laikas yra automatiškai suplanuotas. Yra keletas šio modulio taikymo sričių-nuo namų iki pramonės, ligoninių, geležinkelio stočių ir daug kitų vietų, kurias galima lengvai ir paprastai automatizuoti naudojant „plug-and-play“komponentus.
7 žingsnis: ištekliai
Norėdami gauti daugiau informacijos apie TSL34903, MCP9808 MCP23008 relės valdiklį, peržiūrėkite toliau pateiktas nuorodas:
- TSL34903 duomenų lapas
- MCP9808 duomenų lapas
- MCP23008 duomenų lapas
Rekomenduojamas:
Namų automatizavimas naudojant „Raspberry Pi Matrix Voice“ir „Snips“(2 dalis): 8 žingsniai
Namų automatizavimas naudojant „Raspberry Pi Matrix Voice“ir „Snips“(2 dalis): Namų automatikos atnaujinimas naudojant „Raspberry Pi Matrix Voice“ir „Snips“. Šiame PWM naudojamas išoriniams šviesos diodams ir servo varikliui valdyti Visa informacija, pateikta 1 dalyjehttps: //www.instructables.com/id/Controlling-Light
Namų automatizavimas su infraraudonųjų spindulių ir „Bluetooth“valdomu relės moduliu: 10 žingsnių
Namų automatizavimas naudojant infraraudonųjų spindulių ir „Bluetooth“valdomą relės modulį: Šiame namų automatizavimo projekte parodžiau, kaip galime valdyti šviesą, ventiliatorių ir kitus buitinius prietaisus iš savo išmaniojo telefono programos ir IR nuotolinio valdymo pulto, naudodami „Arduino“valdymo relės modulio grandinę. Ši „Arduino“valdoma išmanioji relė grandinė turi du režimus, Inf
NAMŲ AUTOMATIZAVIMAS, PAGRINDANTIS VIETINIU MQTT SERVERIU, NAUDOJANT AVYNŲ PI IR NODEMCU LENTĄ: 6 žingsniai
NAMŲ AUTOMATIZAVIMAS, PAMATYTAS VIETINIU MQTT SERVERIU, NAUDOJANTIS RASPBERRY PI IR NODEMCU LENTĄ: Iki šiol sukūriau keletą mokomųjų vaizdo įrašų apie prietaisų valdymą internetu. Tam aš visada teikiau pirmenybę „Adafruit MQTT“serveriui, nes juo buvo lengva naudotis ir jis buvo patogus. Bet visa tai buvo pagrįsta internetu. Tai reiškia, kad mes
Namų automatizavimas naudojant „Bluetooth“(išmanioji lenta): 6 žingsniai
Namų automatizavimas naudojant „Bluetooth“(išmaniąją lentą): atidžiai perskaitykite
Namų automatizavimas naudojant „Raspberry Pi 3“ir „Node-RED“: 6 žingsniai
Namų automatizavimas naudojant „Raspberry Pi 3“ir „Node-RED“: reikalingos medžiagos: 1. Aviečių Pi 32. Relės modulis