Мазмуну:
- Жабдуулар
- 1 -кадам: DockerPi 4 каналынын релелик тактасы жөнүндө билүү
- 2 -кадам: Өзгөчөлүктөр
- 3 -кадам: Түзмөктүн дарек картасы
- 4 -кадам: Эстафетаны Негизги Электр энергиясы менен иштеген Лампа кармагычка туташтырыңыз
- 5 -кадам: I2Cди конфигурациялоо (Raspberry Pi)
- 6 -кадам: Программасыз түз башкаруу (Raspberry Pi)
- 7 -кадам: C тилиндеги программа (Raspberry Pi)
- 8 -кадам: Pythonдогу программа (Raspberry Pi)
- 9 -кадам: Javaдагы программа (Raspberry Pi)
Video: Жарыктарды башкаруу системасы: 9 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Жакында мен коопсуздукту изилдөө максатында микроконтроллерлерди жана IOTго негизделген түзмөктөрдү түшүнүү үстүндө иштеп жаткам. Ошентип, мен практика үчүн кичинекей үй автоматташтыруу системасын курууну ойлодум. Мен муну аягына чыгара элекмин, бирок баштоо үчүн мен бул постто бөлмөмдүн жарыгын көзөмөлдөө үчүн Raspberry Pi 2ди жана башка электр компоненттерин кантип колдонгонум менен бөлүшөм. Ошондой эле, мен бул жерде Raspberry үчүн алгачкы орнотуу жөнүндө сөз кылбайм, бул үчүн сиз ар кандай окуу куралдарын таба аласыз.
Бирок бул долбоордо мен сизге бул доккер пи сериясындагы продукцияны тааныштырам.
Жабдуулар
Компоненттердин тизмеси:
- 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
- 1 x 16 Гб 10 -класс TF картасы
- 1 x DockerPi сериясы 4 канал релелик тактасы (HAT)
- 1 x [email protected] 52Pi болгон электр менен камсыздоо
- 4 x Жарык тилкеси
- 1 x DC туташтыргычы
- Жарык тилкелери үчүн 1 х 12В электр менен камсыздоо.
- бир нече зымдар.
1 -кадам: DockerPi 4 каналынын релелик тактасы жөнүндө билүү
DockerPi 4 Channel Relay - IOT тиркемелеринде кеңири колдонулган DockerPi сериясынын мүчөсү.
DockerPi 4 Channel Relay көбүрөөк идеяларга жетүү үчүн салттуу өчүргүчтөрдүн ордуна AC/DC өткөрө алат. DockerPi 4 канал релеси 4кө чейин жетиши мүмкүн жана башка DockerPi кеңейтүү тактасы менен толтурулушу мүмкүн. Эгерде сизге көп убакыт иштөө керек болсо, биз дагы кубаттуулукту камсыз кылуу үчүн DockerPi Power кеңейтүү тактабызды колдонууну сунуштайбыз.
ЭСКЕРТҮҮНҮН ЭСКЕРТҮҮСҮ Улантуудан мурун, мен "ЭЛЕКТР ЭЛЕКТРИ" менен эксперимент жүргүзүүнүн КОРКУНУЧУ жөнүндө ЭСКЕРТКИМ келет. Эгер бир нерсе туура эмес болуп калса, эң жаман кесепети өлүм же жок дегенде өз үйүңдү өрттөө болушу мүмкүн. Андыктан, эгер сиз эмне кылып жатканыңызды түшүнбөсөңүз же бул тажрыйбалуу электриктен жардам сурасаңыз, бул макалада айтылган нерселерди жасоого КОШУЛБаңыз. Баштайлы.
2 -кадам: Өзгөчөлүктөр
- DockerPi сериясы
- Программалануучу
- Түздөн -түз башкаруу (программасыз)
- GPIO пиндерин кеңейтүү
- 4 канал релеси
- 4 Alt I2C Addr колдоо
- Реле абалы Leds колдоо
- 3A 250V AC колдоо
- 3A 30V DC
- Башка Stack тактасы менен стекти орнотууга болот (I2C колдоосун талап кылат)
3 -кадам: Түзмөктүн дарек картасы
Бул тактада өзүнчө реестр дареги бар жана сиз ар бир релени бир буйрук менен башкара аласыз.
Башка талаптар:
Python же C же кабык же Java же башка тил жөнүндө негизги түшүнүк (мен C, python, shell жана java колдоном)
- Linux системалары жөнүндө негизги түшүнүк
- Акылдын болушу
Эми, алдыга жылуудан мурун, биз колдоно турган электр компоненттерин түшүнүшүңүз керек:
1. Эстафета:
Реле - бул өтө төмөн чыңалууну киргизүү катары көбүнчө жогорку чыңалууну башкаруу үчүн колдонулган электрдик түзүлүш. Бул түркүккө оролгон катушка жана схеманы жабуу үчүн колдонулган эки кичинекей металл капкактан (түйүндөрдөн) турат. Түйүндүн бири туруктуу, экинчиси кыймылдуу. Катушка аркылуу электр өткөрүлгөндө, ал магниттик талааны жаратат жана кыймылдуу түйүндү статикалык түйүнгө карай тартат жана схема бүтөт. Ошентип, катушканы иштетүү үчүн кичинекей чыңалууну колдонуу менен, биз чындыгында саякат үчүн жогорку чыңалуудагы схеманы бүтүрө алабыз. Ошондой эле, статикалык түйүн катушка физикалык түрдө туташпагандыктан, эгер ката кетсе, катушка иштеп жаткан микроконтроллердин бузулуу мүмкүнчүлүгү өтө аз.
4 -кадам: Эстафетаны Негизги Электр энергиясы менен иштеген Лампа кармагычка туташтырыңыз
Эми татаал бөлүккө биз релени Main Electric менен камсыздалган лампа кармагычка туташтырабыз. Бирок, адегенде мен сизге жарыктын кантип түз күйгүзүү аркылуу күйгүзүлүп жана өчүрүлөрү жөнүндө кыскача түшүнүк бергим келет.
Эми, лампа негизги камсыздоого туташтырылганда, биз муну көбүнчө лампага эки зымды туташтырып жасайбыз. зымдын бири - "нейтралдуу" зым, экинчиси - "терс" зым, ал чынында токту алып жүрөт, ошондой эле ӨЧҮРҮҮ механизмин башкаруу үчүн бүт схемага кошулган коммутатор бар. Ошентип, swith туташканда (же күйгүзүлгөндө) ток лампочкадан жана нейтралдуу зымдан өтүп, схеманы бүтүрөт. Бул лампочканы күйгүзөт. Которгуч күйгүзүлгөндө, ал схеманы бузуп, лампа ӨЧҮП калат. Бул жерде муну түшүндүрүү үчүн чакан схема:
Эми, биздин эксперимент үчүн, биз "Терс зымды" релебиз аркылуу өткөрүшүбүз керек, чынжырды бузуп, реленин которуштуруусун колдонуу менен электр агымын көзөмөлдөшүбүз керек. Ошентип, реле күйгүзүлгөндө, ал схеманы бүтүрүшү керек жана Лампа күйгүзүлүшү керек жана тескерисинче. Толук схема үчүн төмөндөгү диаграмманы караңыз.
5 -кадам: I2Cди конфигурациялоо (Raspberry Pi)
Sudo raspi-config иштетүү жана ARM өзөгү жана Linux ядро үчүн i2c колдоосун орнотуу үчүн нускамаларды аткарыңыз
Интерфейс Жолдоруна өтүңүз
6 -кадам: Программасыз түз башкаруу (Raspberry Pi)
No1 каналдын релесин күйгүзүңүз
i2cset -y 1 0x10 0x01 0xFF
No1 каналдын релесин өчүрүү
i2cset -y 1 0x10 0x01 0x00
No2 каналдын релесин күйгүзүңүз
i2cset -y 1 0x10 0x02 0xFF
No2 каналдын релесин өчүрүү
i2cset -y 1 0x10 0x02 0x00
No3 каналдын релесин күйгүзүңүз
i2cset -y 1 0x10 0x03 0xFF
No3 каналдын релесин өчүрүү
i2cset -y 1 0x10 0x03 0x00
No4 каналдын релесин күйгүзүңүз
i2cset -y 1 0x10 0x04 0xFF
No4 каналдын релесин өчүрүү
i2cset -y 1 0x10 0x04 0x00
7 -кадам: C тилиндеги программа (Raspberry Pi)
Булак кодун түзүңүз жана ага "relay.c" деп ат бериңиз
#кошуу
#кошуу
#кошуу
#devine DEVCIE_ADDR 0x10
#define RELAY1 0x01
#define RELAY2 0x02
#define RELAY3 0x03
#define RELAY4 0x04
#dexine ON 0xFF боюнча
#аныктоо OFF 0x00
int main (боштук)
{
printf ("Реледи C / n күйгүзүү");
int fd;
int i = 0;
fd = wiringPiI2CSetup (DEVICE_ADDR);
үчүн (;;) {
үчүн (i = 1; i <= 4; i ++)
{
printf ("No $ d релесин күйгүзүү", i);
wiringPiI2CWriteReg8 (fd, i, ON);
уйку (200);
printf ("No $ d релесин өчүрүү", i);
wiringPiI2CWriteReg8 (fd, i, OFF);
уйку (200);
}
}
return 0;
}
Аны түзүңүз
gcc релеси.c -элементтерPi -о релеси
Exec It
./relay
8 -кадам: Pythonдогу программа (Raspberry Pi)
Төмөнкү кодду Python 3 менен аткаруу жана smbus китепканасын орнотуу сунушталат:
"Relay.py" деп аталган файл түзүңүз жана төмөнкү кодду чаптаңыз:
t катары импорттоо убактысы
smbus импорттоо
sys импорттоо
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
автобус = smbus. SMBus (DEVICE_BUS)
чын болсо:
аракет кыл:
i үчүн диапазондо (1, 5):
bus.write_byte_data (DEVICE_ADDR, i, 0xFF)
уктоо (1)
bus.write_byte_data (DEVICE_ADDR, i, 0x00)
уктоо (1)
KeyboardInterruptдон башка e:
басып чыгаруу ("Циклден чыгуу")
sys.exit ()
* Аны сактап, анан python3 катары иштетиңиз:
python3 релеси.py
9 -кадам: Javaдагы программа (Raspberry Pi)
Жаңы файл түзүңүз: I2CRelay.java жана төмөнкү кодду чаптаңыз:
java.io. IOException импорттоо;
java.util. Arrays импорттоо;
com.pi4j.io.i2c. I2CBus импорттоо;
com.pi4j.io.i2c. I2CDevice импорттоо;
com.pi4j.io.i2c. I2CFactory импорттоо;
com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException импорттоо;
com.pi4j.platform. PlatformAlreadyAssignedException импорттоо;
com.pi4j.util. Console импорттоо;
коомдук класс I2CRelay {
// реленин регистр дареги.
ачык статикалык акыркы int DOCKER_PI_RELAY_ADDR = 0x10;
// эстафета каналы.
жалпы статикалык акыркы байт DOCKER_PI_RELAY_1 = (байт) 0x01;
жалпы статикалык акыркы байт DOCKER_PI_RELAY_2 = (байт) 0x02;
коомдук статикалык акыркы байт DOCKER_PI_RELAY_3 = (байт) 0x03;
жалпы статикалык акыркы байт DOCKER_PI_RELAY_4 = (байт) 0x04;
// Реле абалы
ачык статикалык акыркы байт DOCKER_PI_RELAY_ON = (байт) 0xFF;
жалпы статикалык акыркы байт DOCKER_PI_RELAY_OFF = (байт) 0x00;
public static void main (String args) InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {ыргытат {
акыркы Консоль консолу = жаңы Консол ();
I2CBus i2c = I2CFactory.getInstance (I2CBus. BUS_1);
I2CDevice түзмөгү = i2c.getDevice (DOCKER_PI_RELAY_ADDR);
console.println ("Эстафетаны күйгүз!");
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);
Thread.sleep (500);
console.println ("Эстафетаны өчүрүү!");
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);
}
}
Сунушталууда:
LoRa негизделген алыстан башкаруу - Чоң аралыктан башкаруу шаймандары: 8 кадам
LoRa негизделген алыстан башкаруу | Түзмөктөр чоң аралыктан: Эй, эмне болду, балдар! Akarsh бул жерде CETechтен. Бул долбоордо биз светодиоддор, моторлор сыяктуу ар кандай приборлорду көзөмөлдөө үчүн колдонула турган алыстан башкаруу пультун түзөбүз же эгерде биз күнүмдүк жашообуз жөнүндө айтсак, биз өзүбүздүн үй колдонуучубузду башкара алабыз
Жарыктарды көзөмөлдөө: 9 кадам (сүрөттөр менен)
Чырактарды көзүңүз менен көзөмөлдөө: Бул семестр колледжде мен биомедицинада аспаптар деп аталган сабак алдым, анда медициналык колдонмолор үчүн сигналды иштетүүнүн негиздерин үйрөндүм. Класстын акыркы долбоору үчүн менин командам EOG (electrooculography) технологиясы боюнча иштеди. Эссенти
Джек-О-Чырагыңызга Жарыктарды жана Коркунучтуу Музыканы кошуңуз-Лайкоо же программалоо жок (Каалабасаңыз): 9 кадам (Сүрөттөр менен)
Джек-О-Чырагыңызга Жарыктарды жана Укмуш Музыканы кошуңуз-Лайкоо же Программалоо жок (Каалабасаңыз): Жаркыраган жарыктарды жана коркунучтуу музыканы кошуу менен көчөңүздө эң коркунучтуу Jack-O-Lantern ээ болуңуз! Бул ошондой эле Arduino жана программалоочу электрониканы сынап көрүүнүн эң сонун жолу, анткени бүтүндөй кодду жазбай же ширетпей бүтсө болот - дагы
Көркөм LED Жарыкты түзүү үчүн Эски Жарыктарды кайра иштетүү: 4 кадам
Эски лампочкаларды кайра иштетип көркөм LED жарыктандырууну түзүңүз: эски жарыктандыруучу дүкөндөрдөн, гараждан сатуудан ж
Флуоресценттик жарыктарды лазердик көрсөткүч жана Arduino менен көзөмөлдөңүз: 4 кадам
Флуоресценттик жарыктарды лазердик көрсөткүч жана Arduino менен башкарыңыз: Alpha One Labs Hackerspaceтин бир нече мүчөлөрү флуоресценттик арматуралар берген катуу жарыкты жактырышпайт. Алар жеке шаймандарды оңой башкаруунун жолун каалашты, балким лазердик көрсөткүч мененби? Мен туура таптым. Мен