Mundarija:
- Ta'minotlar
- 1 -qadam: DockerPi 4 seriyali kanalli röley platasi haqida bilish
- 2 -qadam: Xususiyatlar
- 3 -qadam: Qurilmaning manzil xaritasi
- 4 -qadam: O'rnimizni asosiy elektr ta'minoti bilan ishlaydigan lampochka ushlagichiga ulang
- 5 -qadam: I2C (Raspberry Pi) ni sozlash
- 6 -qadam: Dasturlashsiz to'g'ridan -to'g'ri boshqarish (Raspberry Pi)
- 7 -qadam: C tilidagi dastur (Raspberry Pi)
- 8 -qadam: Pythonda dastur (Raspberry Pi)
- 9 -qadam: Java -da dastur (Raspberry Pi)
Video: Chiroqlarni boshqarish tizimi: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Yaqinda men xavfsizlik tadqiqotlari uchun mikrokontrollerlar va IOT asosidagi qurilmalarni tushunish ustida ishladim. Shunday qilib, men amaliyot uchun kichik uy avtomatlashtirish tizimini qurishni o'yladim. Men buni hali tugatmaganman, lekin ishga tushirish uchun men bu xabarda Raspberry Pi 2 va boshqa elektr komponentlarini qanday ishlatganimni aytib beraman. Bundan tashqari, men bu erda Raspberry uchun dastlabki sozlash haqida gapirmayman, buning uchun siz turli xil darsliklarni topishingiz mumkin.
Ammo men ushbu loyihada sizga docker pi seriyali mahsulotni taqdim etaman.
Ta'minotlar
Komponentlar ro'yxati:
- 1 x Raspberry Pi 3B+/3B/Nol/Nol W/4B/
- 1 x 16 Gb 10 -sinf TF kartasi
- 1 x DockerPi seriyali 4 kanalli o'rni taxtasi (HAT)
- 52Pi dan 1 x [email protected] quvvat manbai
- 4 x yorug'lik chizig'i
- 1 x shahar ulagichi
- Yengil chiziqlar uchun 1 x 12V quvvat manbai.
- bir nechta simlar.
1 -qadam: DockerPi 4 seriyali kanalli röley platasi haqida bilish
DockerPi 4 kanalli o'rni - DockerPi seriyasining a'zosi, IOT dasturlarida ko'proq ishlatiladi.
DockerPi 4 kanalli o'rni ko'proq g'oyalarga erishish uchun an'anaviy kalitlar o'rniga AC/DC o'tkazishi mumkin. DockerPi 4 kanalli o'rni 4 tagacha to'planishi mumkin va ularni boshqa DockerPi kengaytirish kartasi bilan biriktirish mumkin. Agar sizga uzoq vaqt yugurish kerak bo'lsa, biz sizga ko'proq quvvat berish uchun DockerPi Power kengaytirish kartamizdan foydalanishni tavsiya etamiz.
OGOHLANTIRISH DIQQATI: Davom etishdan oldin, men sizni "Elektr tarmog'i" bilan tajriba o'tkazish xavfi haqida ogohlantirmoqchiman. Agar biror narsa noto'g'ri ketsa, eng yomon oqibat o'lim yoki o'z uyingizni yoqib yuborish bo'lishi mumkin. Shuning uchun, agar siz nima qilayotganingizni tushunmasangiz yoki tajribali elektrchining yordamidan foydalansangiz, iltimos, ushbu maqolada aytib o'tilganlarni bajarishga KO'RSIN. Qani boshladik.
2 -qadam: Xususiyatlar
- DockerPi seriyasi
- Dasturlash mumkin
- To'g'ridan -to'g'ri boshqarish (dasturlashsiz)
- GPIO pinlarini kengaytiring
- 4 kanalli o'rni
- 4 Alt I2C Addr qo'llab -quvvatlashi
- O'rnimizni holati Ledlarni qo'llab -quvvatlash
- 3A 250V AC quvvat manbai
- 3A 30V DC
- Boshqa stack kartalari bilan biriktirilishi mumkin, anakart uskunasidan mustaqil (I2C qo'llab -quvvatlashi kerak)
3 -qadam: Qurilmaning manzil xaritasi
Bu doskada alohida registr manzili bor va siz har bir o'rni bitta buyruq bilan boshqarishingiz mumkin.
Boshqa talablar:
Python yoki C yoki qobiq yoki Java yoki boshqa til haqida asosiy tushuncha (men C, python, shell va javadan foydalanaman)
- Linux tizimlari haqida asosiy tushunchalar
- Aqlning mavjudligi
Oldinga o'tishdan oldin, biz ishlatadigan elektr komponentlarini tushunishingiz kerak:
1. Relay:
O'rnimizni - bu odatda past kuchlanishli kirish sifatida yuqori kuchlanishni boshqarish uchun ishlatiladigan elektr qurilmasi. Bu qutbga o'ralgan lasan va sxemani yopish uchun ishlatiladigan ikkita kichik metall qopqoqdan (tugunlardan) iborat. Tugunlardan biri sobit, ikkinchisi harakatlanuvchi. Qachonki elektr tokidan o'tkazilsa, u magnit maydon hosil qiladi va harakatlanuvchi tugunni statik tugunga tortadi va zanjir tugaydi. Shunday qilib, rulonni yoqish uchun kichik kuchlanishni qo'llash orqali biz yuqori voltli harakatlanish davrini yakunlay olamiz. Bundan tashqari, statik tugun rulonga jismonan ulanmaganligi sababli, biror narsa noto'g'ri ketganda, rulonni quvvatlantiruvchi mikrokontroller shikastlanish ehtimoli juda kam.
4 -qadam: O'rnimizni asosiy elektr ta'minoti bilan ishlaydigan lampochka ushlagichiga ulang
Endi murakkab qismga biz o'rni Asosiy Elektr tarmog'idan ishlaydigan Lampochka ushlagichiga ulanamiz. Lekin, birinchi navbatda, siz to'g'ridan -to'g'ri quvvat manbai orqali chiroqlar qanday yoqilgan va o'chirilgani haqida qisqacha ma'lumot bermoqchiman.
Endi, lampochka asosiy manbaga ulanganda, biz odatda lampochkaga ikkita simni ulash orqali qilamiz. simlardan biri - "neytral" sim, ikkinchisi - "manfiy" sim, tokni o'tkazadi, shuningdek, O'chirish mexanizmini boshqarish uchun butun zanjirga kalit qo'shiladi. Shunday qilib, svitka ulanganda (yoki yoqilganda) oqim lampochka va neytral simdan o'tadi va kontaktlarning zanglashiga olib keladi. Bu lampochkani yoqadi. Kalit yoqilganda, u kontaktlarning zanglashiga olib keladi va lampochka o'chadi. Buni tushuntirish uchun kichik sxemasi:
Endi, bizning tajribamiz uchun, biz "salbiy simni" o'z o'rni orqali o'tkazib, kontaktlarning zanglashiga olib kelishi va o'rni almashtirgich yordamida quvvat oqimini boshqarishi kerak bo'ladi. Shunday qilib, o'rni yoqilganda, u kontaktlarning zanglashiga olib kelishi kerak va Lampochka yoqilishi kerak va aksincha. To'liq o'chirish uchun quyidagi diagramaga qarang.
5 -qadam: I2C (Raspberry Pi) ni sozlash
Sudo raspi-config-ni ishga tushiring va ARM yadrosi va linux yadrosi uchun i2c-ni o'rnatish bo'yicha ko'rsatmalarga amal qiling.
Interfacing Options -ga o'ting
6 -qadam: Dasturlashsiz to'g'ridan -to'g'ri boshqarish (Raspberry Pi)
1 -raqamli kanal rölesini yoqing
i2cset -y 1 0x10 0x01 0xFF
1 -kanal kanalini o'chiring
i2cset -y 1 0x10 0x01 0x00
2 -raqamli kanal rölesini yoqing
i2cset -y 1 0x10 0x02 0xFF
2 -kanalli o'rni o'chiring
i2cset -y 1 0x10 0x02 0x00
3 -sonli kanal rölesini yoqing
i2cset -y 1 0x10 0x03 0xFF
№3 kanal o'rni o'chiring
i2cset -y 1 0x10 0x03 0x00
4 -sonli kanal rölesini yoqing
i2cset -y 1 0x10 0x04 0xFF
4 -kanalli o'rni o'chiring
i2cset -y 1 0x10 0x04 0x00
7 -qadam: C tilidagi dastur (Raspberry Pi)
Manba kodini yarating va unga "relay.c" deb nom bering.
#qo'shing
#qo'shing
#qo'shing
#devine DEVCIE_ADDR 0x10
#ta'rif RELAY1 0x01
#RELAY2 0x02 ni belgilang
#ta'rif RELAY3 0x03
#ta'rif RELAY4 0x04
0xFF -ni #aniqlang
#aniqlang O'chirish 0x00
int main (bekor)
{
printf ("C / nda röleylarni yoqish");
int fd;
int i = 0;
fd = wiringPiI2CSetup (DEVICE_ADDR);
uchun(;;){
uchun (i = 1; i <= 4; i ++)
{
printf ("$ d rölesini yoqish", i);
wiringPiI2CWriteReg8 (fd, i, ON);
uxlash (200);
printf ("No $ d o'rni o'chirilsin", i);
wiringPiI2CWriteReg8 (fd, i, OFF);
uxlash (200);
}
}
qaytarish 0;
}
Kompilyatsiya qiling
gcc o'rni.c -simliPi -o'rni
Uni bajaring
./ o'rni
8 -qadam: Pythonda dastur (Raspberry Pi)
Quyidagi kodni Python 3 yordamida bajarish va smbus kutubxonasini o'rnatish tavsiya etiladi:
"Relay.py" nomli fayl yarating va quyidagi kodni joylashtiring:
t kabi import vaqti
smbus import qilish
sys import qilish
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
avtobus = smbus. SMBus (DEVICE_BUS)
rost bo'lsa:
harakat qilib ko'ring:
i uchun (1, 5):
bus.write_byte_data (DEVICE_ADDR, i, 0xFF)
uyqu (1)
bus.write_byte_data (DEVICE_ADDR, i, 0x00)
uyqu (1)
KeyboardInterruptdan tashqari:
chop etish ("Loopdan chiqish")
sys.exit ()
* Uni saqlang va keyin python3 sifatida ishga tushiring:
python3 o'rni.py
9 -qadam: Java -da dastur (Raspberry Pi)
I2CRelay.java nomli yangi fayl yarating va quyidagi kodni joylashtiring:
java.io. IOException ni import qilish;
java.util. Arrays -ni import qilish;
com.pi4j.io.i2c. I2CBus -ni import qilish;
com.pi4j.io.i2c. I2CDevice -ni import qilish;
com.pi4j.io.i2c. I2CFactory -ni import qilish;
com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException ni import qilish;
com.pi4j.platform. PlatformAlreadyAssignedException ni import qilish;
com.pi4j.util. Console -ni import qilish;
ochiq sinf I2CRelay {
// o'rni registrining manzili.
umumiy statik final int DOCKER_PI_RELAY_ADDR = 0x10;
// estafeta kanali.
umumiy statik yakuniy bayt DOCKER_PI_RELAY_1 = (bayt) 0x01;
umumiy statik yakuniy bayt DOCKER_PI_RELAY_2 = (bayt) 0x02;
umumiy statik yakuniy bayt DOCKER_PI_RELAY_3 = (bayt) 0x03;
umumiy statik yakuniy bayt DOCKER_PI_RELAY_4 = (bayt) 0x04;
// O'rnimizni holati
umumiy statik yakuniy bayt DOCKER_PI_RELAY_ON = (bayt) 0xFF;
umumiy statik yakuniy bayt DOCKER_PI_RELAY_OFF = (bayt) 0x00;
public static void main (String args) InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {ni chiqaradi
oxirgi konsol konsoli = yangi konsol ();
I2CBus i2c = I2CFactory.getInstance (I2CBus. BUS_1);
I2CDevice qurilmasi = i2c.getDevice (DOCKER_PI_RELAY_ADDR);
console.println ("O'rnimizni yoqing!");
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);
Thread.sleep (500);
console.println ("O'rnimizni o'chiring!");
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);
}
}
Tavsiya:
Yong'in, musiqa va chiroqlarni sinxronlashtirish: 10 qadam (rasmlar bilan)
Yong'in, musiqa va yorug'lik sinxronlashi: hammamiz bilamizki, elektronika shifoxonalarda, maktablarda, fabrikalarda ko'plab muhim vazifalarni bajarish uchun ishlatiladi. Nega ular bilan ham ozgina vaqt o'tkazmasligingiz kerak.Bu yo'riqnomada men musiqani kichik qilish uchun musiqaga javob beradigan olov va yorug'lik (Led) portlashlarini yarataman
Chiroqlarni o'chirish haqida eslatma: 5 qadam
Chiroqlarni o'chirish haqida eslatma: Yorug'likni o'chiring, Yerni saqlang. Bu qurilma menga xonamdan chiqqanimda chiroqlarni o'chirish odatini shakllantirishga yordam beradi. Qurilma oddiygina Arduino tomonidan qurilgan, asosan yorug'lik sensori, ultratovushli masofani o'lchash moslamasi va
Qo'llarsiz xonadagi chiroqlarni boshqarish: 10 qadam
Qo'lda bo'sh xonadagi chiroqlarni boshqarish: "Mumkin bo'lmagan vazifa" filmidagi kabi; deydi " Umidsiz vaqt umidsiz choralarni talab qiladi " 10 -sinfda o'qiyotgan ukam, oshxona chiroqlarini kalit yordamida emas, balki telefon yordamida boshqarish g'oyasini oldi
Chiroqlarni ko'zingiz bilan boshqarish: 9 qadam (rasmlar bilan)
Chiroqlarni ko'zingiz bilan boshqaring: kollejda bu semestrda men "Tibbiyot asboblari" nomli dars oldim, u erda tibbiy ilovalar uchun signallarni qayta ishlash asoslarini o'rgandim. Sinfning yakuniy loyihasi uchun mening jamoam EOG (elektrokulografiya) texnologiyasi ustida ishladi. Essenti
Floresan chiroqlarni lazer ko'rsatgichi va Arduino yordamida boshqarish: 4 qadam
Floresan chiroqlarni lazer ko'rsatgichi va Arduino yordamida boshqaring: Alpha One Labs Hackerspace -ning ba'zi a'zolari lyuminestsent lampalar chiqaradigan qattiq nurni yoqtirmaydi. Ular, ehtimol, lazer ko'rsatgichi bilan, alohida asboblarni osonlikcha boshqarishni xohlarmidilar? Men bunga to'g'ri keldim. Men