Turinys:
- Prekės
- 1 veiksmas: nustatykite „Rasbian“
- 2 žingsnis: paimkite kodą ir nustatykite
- 3 žingsnis: „Arduino“bendravimas
- 4 žingsnis: Įjunkite jungiklį
- 5 žingsnis: paleiskite kodą
- 6 žingsnis: (PASIRENKAMA) korpusas
Video: „Switch-it“, automatinis išėjimas su realaus laiko srovės matavimu: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Man labai patinka automatizavimas, galimybė valdyti, kada kažkas turi įvykti. Būtent tai ir paskatino mane sugalvoti šią idėją: savaiminis, automatinis lizdas. Jis gali būti naudojamas planuojant, kada reikia įjungti šviesas, kada reikia įkrauti telefonus arba kada reikia įjungti ekraną. Be viso to, jūs turite galimybę pamatyti, kiek srovės teka per išleidimo angą.
Šiam projektui reikalingi komponentai:
Prekės
Prieš pradėdami tai yra dalykai, kurių jums tikrai reikės sukurti „Switch-IT“dėžutę, tokią kaip mano. Šios prekės kainuos apie 50–100 eurų, priklausomai nuo jūsų regiono ir dabartinių kainų.
Techninė įranga
Elektronika
- Aviečių pi 4
- 16 GB (ar daugiau) „Micro SD“kortelė
- Arduino Uno
- 5V-3.3V lygio perjungiklis
- 5V relės modulis
- ACS712 20A - srovės modulis
- 1838 IR imtuvo 37,9 kHz modulis
- IR nuotolinio valdymo pultas (naudoju „Elegoo“)
- bendras katodas RGB
- 3 * 330Ω rezistoriai
- paspausti mygtuką
- RFID-RC522
- LCD 1602A-1
- Sieninis lizdas Niko
- 10K Ω potmetras
- Nuo 230 iki 5V - 7A maitinimo šaltinis
Kabeliai
- USB-B-USB-A kabelis
- USB-C maitinimo kabelis
- Ethernet kabelis
Įvairūs
- Vyriški-moteriški megztiniai
- Vyriški-vyriški megztiniai
- Lituoklio skarda
- Susitraukiantis vamzdelis
Specialios korpuso dalys (PASIRENKAMA)
- 50 * riešutų ir pusjuodžių
- metalinis dėklas 40x40x5 cm su dangteliu
- dvipusė juosta
- 6 * 1 cm aukščio tarpikliai
- LED laikiklis
- Velcro juosta
- kabelių kreiptuvai
Programinė įranga
- balenaEtcher:
- PuTTy
- rasiečių
- „Visual Studio“kodas
- „Arduino IDE“
1 veiksmas: nustatykite „Rasbian“
Visų pirma, „SD“kortelėje įkelsime „Rasbian“. Mes tai padarysime naudodami „balenaEtcher“.
- Atidarykite „balenaEtcher“
- Pasirinkite Rasbian Image
- Pasirinkite savo SD kortelę
- Paspauskite „Flash“ir palaukite kelias minutes, kol jis sumirksės
APIPA pridėjimas įkrovos kataloge: RPI programavimui ir konfigūravimui naudosime APIPA adresą. Padaryti tai:
- Prisijungia prie SD kortelės įkrovos katalogo
- Atidarykite „cmdline.txt“
- Dokumento pabaigoje pridėkite „169.254.10.1“ir išsaugokite
- Įtraukite failą pavadinimu „ssh“į įkrovos katalogą (NESUTEIKITE ŠIUOSE Failams PAPILDYMO)
- Tai atlikę, galite išimti SD kortelę iš savo kompiuterio.
Prieiga prie RPI naudojant „PuTTy“
Dabar galime prijungti SD kortelę prie savo RPI, prijungti RPI prie kompiuterio naudodami eterneto kabelį.
Norėdami prisijungti prie RPI, mes naudosime „PuTTy“su mūsų APIPA adresu.
- Atidarykite „PuTTy“
- Įveskite mūsų APIPA adresą kaip pagrindinio kompiuterio pavadinimą (169.254.10.1)
- Įsitikinkite, kad prievadas yra 22 ir pasirinktas SSH
- Dabar galite atidaryti ryšį
- Numatytasis vartotojo vardas yra: pi
- Su numatytuoju slaptažodžiu: aviečių
raspi-config nustatymai
Atidarykite raspi-config naudodami:
sudo raspi-config
- Pakeiskite vartotojo slaptažodį
- Lokalizavimo parinktyse pasirinkite savo laiko juostą
- Nustatykite „WiFi“naudodami tinklo parinktis, tada „Wi-Fi“parinktį, kurioje turite įvesti savo SSID ir slaptažodį.
Įdiekite „Python 3“
Šiame projekte mes naudojame „Python“, todėl nustatysime „Python2“numatytąją „Python3“instaliaciją, naudodami šias komandas
update-alternatives-install/usr/bin/python python /usr/bin/python2.7 1
atnaujinimo alternatyvos-įdiegti/usr/bin/python python/usr/bin/python3 2
Python paketai
Mums reikės kelių paketų, kad viskas veiktų tinkamai, daugiausia „kolbos“paketų ir vieno, kad galėtume prisijungti prie mūsų duomenų bazės. Šiuos paketus galime įdiegti naudodami šias komandas:
pip įdiegti kolbą
pip install Flask_cors pip install Flask_socketio pip install Python-mysql-connecton
Duomenų bazė
Toliau įdiegsime savo duomenų bazių valdymo sistemą (MariaDB), tai padarysime naudodami:
sudo apt įdiegti mariadb-server
Norėdami tęsti, įveskite „Y“ir „Enter“. Po kelių sekundžių diegimo procesas baigtas ir „MariaDB“yra beveik paruoštas naudoti.
Norėdami nustatyti duomenų bazės slaptažodį, naudokite komandą:
sudo mysql_secure_installation
Tada paspauskite „Enter“, nes dabartinis slaptažodis tuščias. Tada paspauskite „Y“, kad nustatytumėte slaptažodį, dabar galite įvesti bet kokį norimą slaptažodį, nepamirškite jo prisiminti, nes mums jo reikia norint sukurti teisingą ryšį tarp galinės ir priekinės pusės.
Dabar tris kartus paspauskite „Y“, kad pašalintumėte anoniminius vartotojus, neleistumėte root prisijungimo nuotoliniu būdu ir pašalintumėte bandymų duomenų bazę. Galiausiai dar kartą paspauskite „Y“, kad iš naujo įgytumėte privilegijas.
Dabar „MariaDB“ir visi reikalingi paketai yra sėkmingai įdiegti.
2 žingsnis: paimkite kodą ir nustatykite
Dabar, kai turime įdiegtus visus paketus, galime paimti kodą.
Kodą galima rasti „Github“, todėl galite jį klonuoti naudodami:
git klonas
Tai priekinė sąsaja
git klonas
Tai yra vidinė programa
Pačios duomenų bazės diegimas
Norėdami įdiegti duomenų bazę, eikite į.sql failą, esantį galiniame aplanke, naudodami šias komandas (būtinai nustatykite ją savo keliu.
mysql
sukurti duomenų bazę switchit quit mysql -u root -p switchit <Your_Path_to_Backend_Repo/switchit.sql
„Apache“diegimas
Dabar, kai turime visą kodą ir duomenų bazės sąranką, galime įdiegti „Apache“ir paleisti jame savo vidinę programą. Mes tai padarysime naudodami:
apt -get install apache2 -y
Tada pakeiskite failus/var/ww/html failais, esančiais aplanke iš priekinio aplanko.
Jei viskas klostėsi gerai, turėtumėte prisijungti prie savo svetainės naudodami naršyklės APIPA adresą: 169.254.10.1.
3 žingsnis: „Arduino“bendravimas
Norėdami perskaityti dabartinį jutiklį ir RFID jutiklį, naudojame „arduino“, tam naudokite toliau pateiktą arduino kodą. Įkelkite jį naudodami USB-A į USB-B kabelį ir „arduino IDE“programinę įrangą. Įkėlus, arduino dalis yra padaryta.
Dabar mes turime rasti serijinio įrenginio pavadinimą PI. Norėdami tai padaryti, įsitikinkite, kad /boot/config.txt „enable_uart = 1“yra teisingai nustatytas. Taip pat įsitikinkite, kad iš „cmdline.txt“pašalintas „console = serial0, 115200“.
Tada patikrinkite prievadus naudodami
ls -l /dev
Tada vienas iš serijinių pavadinimų turėtų būti „Arduino“. Įveskite šį pavadinimą naudodami arduinocom funkciją programoje app.py
ser = serijinis. Serijinis ('/dev/ttyS0', 9600)
Darykite tai tik tuo atveju, jei serijinis ryšys neveikia.
4 žingsnis: Įjunkite jungiklį
Viską prijungti yra gana paprasta, nors turėtumėte nepamiršti šių dalykų:
- Būkite atsargūs naudodami sieninį lizdą, 230 voltų gali būti mirtinas.
- Ryšiui tarp RPI ir „Arduino“būtinai naudokite lygio keitiklį.
- Prieš lituojant RGB, būtinai naudokite raudoną ir žalią kaištį. Išbandykite tai iš anksto!
- Prieš įjungdami grandinę, patikrinkite, ar niekas nėra trumpai sujungtas.
5 žingsnis: paleiskite kodą
Dabar viskas teisingai prijungta, galime paleisti savo programą.
Kad paleisties metu jis būtų paleistas automatiškai, sukurkite failą naudodami:
sudo nano myscript.service
Tada įklijuokite (būtinai naudokite savo katalogą app.py:
[Unit] Aprašymas = Switchit After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory = // pakeisti į app.py katalogą // StandardOutput = paveldėti StandardError = paveldėti Paleisti iš naujo = visada User = pi [Įdiegti] WantedBy = multi-user.target
Tada paspauskite „ctrl + X“ir nukopijuokite jį į/etc/systemd/system.
Tada atlikite šią komandą, kad ji veiktų automatiškai:
sudo systemctl įgalina myscript.service
Daugiau informacijos apie tai galite rasti RaspBerry Pi svetainėje.
Perkraukite ir padaryta
Dabar iš naujo paleiskite PI naudodami:
sudo reboot -h dabar
Taip gaminate „Switch-it“!
Dėkojame, kad sekate, tikiuosi, kad tai buvo naudinga. Jei turite patarimų ar atsiliepimų, nedvejodami palikite komentarą.
6 žingsnis: (PASIRENKAMA) korpusas
Būstą galite pastatyti pagal savo skonį. Aš naudoju metalinį dėklą, kurio dydis yra 40x40x5 cm, su dangteliu. Kadangi naudojau metalinį, turėjau gręžti skyles ir naudoti tarpiklius, kad viskas būtų pašalinta iš žemės plokštės. Aš nusprendžiau naudoti centrinį tašką, kuriame yra 5V, 3.3V ir gnd. Kiekviena elektros jungtis yra lituojama su susitraukiančio vamzdžio gabalėliu. Kabelio valdymui naudoju trinkeles su laikikliais.
Rekomenduojamas:
Kaip naudotis realaus laiko laikrodžio moduliu (DS3231): 5 žingsniai
Kaip naudotis realaus laiko laikrodžio moduliu (DS3231): DS3231 yra nebrangus, itin tikslus I2C realaus laiko laikrodis (RTC) su integruotu temperatūros kompensuojamu kristalų osciliatoriumi (TCXO) ir krištolu. Įrenginys turi akumuliatoriaus įvestį ir užtikrina tikslų laiko skaičiavimą, kai pagrindinė energija
Realaus laiko Rubiko kubo sprendimas užrištomis akimis naudojant „Raspberry Pi“ir „OpenCV“: 4 žingsniai
Realaus laiko „Rubiko kubo“užrištomis akimis sprendimas naudojant „Raspberry Pi“ir „OpenCV“: tai yra antroji „Rubik“kubo įrankio versija, skirta spręsti akis. 1 -oji versija buvo sukurta naudojant „javascript“, galite pamatyti projektą „RubiksCubeBlindfolded1“Skirtingai nuo ankstesnės, ši versija naudoja „OpenCV“biblioteką, kad aptiktų spalvas ir el
Realaus laiko šulinio vandens lygio matuoklis: 6 žingsniai (su nuotraukomis)
Realaus laiko šulinio vandens lygio matuoklis: šiose instrukcijose aprašoma, kaip sukurti nebrangų, realaus laiko vandens lygio matuoklį, skirtą naudoti iškastose šuliniuose. Vandens lygio matuoklis skirtas kabėti iškastame šulinyje, matuoti vandens lygį kartą per dieną ir siųsti duomenis „WiFi“arba korinio ryšio pagalba
Realaus laiko šulinio vandens temperatūra, laidumas ir vandens lygio matuoklis: 6 žingsniai (su nuotraukomis)
Realaus laiko šulinio vandens temperatūros, laidumo ir vandens lygio matuoklis: šiose instrukcijose aprašoma, kaip sukurti nebrangų, realaus laiko vandens skaitiklį, skirtą stebėti temperatūrą, elektros laidumą (EC) ir vandens lygį iškastuose šuliniuose. Skaitiklis skirtas pakabinti iškasto šulinio viduje, matuoti vandens temperatūrą, EB ir
Nuo kintamosios srovės iki +15V, -15V 1A kintamasis ir 5V 1A nuolatinės srovės nuolatinės srovės maitinimo šaltinis: 8 žingsniai
Kintamosios srovės į +15V, -15V 1A kintamasis ir 5V 1A nuolatinio maitinimo šaltinis: maitinimo šaltinis yra elektros prietaisas, tiekiantis elektros energiją elektros apkrovai. Šiame modelio maitinimo šaltinyje yra trys kietojo kūno nuolatinės srovės maitinimo šaltiniai. Pirmasis maitinimas suteikia kintamą teigiamą 1,5–15 voltų išėjimą iki 1 ampero