Mundarija:

Aqlli budilnik: 13 qadam
Aqlli budilnik: 13 qadam

Video: Aqlli budilnik: 13 qadam

Video: Aqlli budilnik: 13 qadam
Video: Zino qilgan ayolni dinda qanday jazolashadi? 2024, Iyul
Anonim
Aqlli budilnik
Aqlli budilnik

Salom, mening ismim Alexandra Christiaens va men Belgiyaning Kortrijk shahridagi Xouestda media va aloqa texnologiyasi bo'yicha o'qiyman.

Maktab topshirig'i sifatida bizdan IoT qurilmasini yasash talab qilindi. Bizni o'z hayotimizda yoki biz bilgan odamlarning hayotida o'zgarishlar qiladigan biror narsa qilishga undashdi. Menga loyihani topish juda qiyin edi va men mos loyihani qidirmoqchi bo'lganimda, tez -tez o'ylardim: "Men bundan charchadim". Oxir -oqibat men bu mening loyiham bo'lishi mumkinligini tushundim: men aqlli budilnik yasar edim, u ertalab turishimga ham, kechqurun yotishimga ham yordam beradi. Bu topshiriqqa qo'yiladigan talablarga ko'ra, biz Raspberry Pi -dan hamma narsani ishga tushirishimiz kerak edi, men o'z qurilmamni "Sleepi" deb atashga qaror qildim.

Agar siz ushbu qurilmani o'zingiz yasashni va men kabi yaxshi uxlashni xohlasangiz, quyida men yozgan ushbu qo'llanmani ko'rib chiqing. Agar men haqimda va men tayyorlagan yoki qilmoqchi bo'lgan boshqa loyihalar haqida ko'proq bilmoqchi bo'lsangiz, portfelimni ko'rib chiqing.

1 -qadam: 1 -qadam: Komponentlarni yig'ish

1 -qadam: Komponentlarni yig'ish
1 -qadam: Komponentlarni yig'ish
1 -qadam: Komponentlarni yig'ish
1 -qadam: Komponentlarni yig'ish
1 -qadam: Komponentlarni yig'ish
1 -qadam: Komponentlarni yig'ish

Shunday qilib, birinchi navbatda, qurilishni boshlashdan oldin, bizda hamma narsa borligiga ishonch hosil qilaylik. Men eng muhim komponentlarning ro'yxatini tuzdim. Uning ostida siz komponentlar haqida batafsil ma'lumotga ega pdf formatini topishingiz mumkin.

- 1 x Raspberry Pi 3 modeli B

- 1 x (bo'sh) microSD karta va adapter (menda 16 Gb karta bor, lekin 8 Gb etarli)

- Raspberry Pi uchun 1 x 5V quvvat manbai

- 1 x Ethernet kabeli

- 2 x 9V batareyalar

- 2 x 9V batareya qisqichlari

- 1 x GPIO 40 pinli kengaytirish kartasi va kamalak kabeli

- 2 x BB830 lehimsiz ulanadigan non paneli

- 1 x Arduino Uno

- 1 x 0,56 dyuymli 4*7 segmentli displey

- 1x DS18B20 harorat sensori

- 1 x TSL2561 yorqinlik sensori

- 1 x 1602A LCD displey

- 1 x darajali konvertor

- 1 x SN74HC595N smenali registr

- 1 x aylanadigan kodlovchi

- 1 x potansiyometr

- 1 x RGB quvvatli LED

- 1 x karnay

- 4 x 337B tranzistorlar

- 1 x diod

- 1 x tugma

- 3 x xl4005 31 LED drayveri

- 7 x rezistorlar (2 x 10k Ohm, 4 x 1k Ohm, 1 x 470 Ohm)

- Har xil o'tish kabellari (erkakdan erkakga va erkakdan ayolga)

Majburiy emas:

- 1 x yog'ochdan yasalgan multipleks panel (men quyidagi o'lchovlardan foydalanganman: 860 mm x 860 mm x 5 mm)

- Yog'ochni qayta ishlash uchun turli asboblar

- Sizga yoqqan rangdagi akril bo'yoq

2 -qadam: 2 -qadam: sxemalar

2 -qadam: sxemalar
2 -qadam: sxemalar

Barcha komponentlarni yig'gandan so'ng, men hamma narsani ulashni boshlashim mumkin edi. Birinchidan, men komponentlarni noto'g'ri ulash orqali qovurmasligim uchun Fritzing sxemasini tuzdim. O'qituvchilarimning fikr -mulohazalaridan so'ng, men tuzatishlar kiritdim, natijada quyidagi sxematik va simli diagramma paydo bo'ldi:

Ko'pgina GPIO pinlari bir -birining o'rnini bosadi, shuning uchun agar xohlasangiz, ulardan bir nechtasini almashtirishingiz mumkin. Shunga qaramay, koddagi pin raqamlarini o'zgartirishni unutmang.

Biroq, ba'zi elementlar ma'lum pinlarga ulangan bo'lishi kerak. Yorug'lik sensori mos ravishda GPIO 23 (SDA) va GPIO 24 (SCL) ga ulanganligiga ishonch hosil qiling. Men nima uchun bu 5 -qadamda muhimligini tushuntiraman.

3 -qadam: 3 -qadam: Raspberry Pi -ni sozlash

Endi Pi -ni o'rnatish vaqti keldi:

1. microSD kartani adapter ichiga joylashtiring va uni shaxsiy kompyuteringizga ulang.

Agar microSD kartangiz bo'sh bo'lmasa, uni avval o'zingiz xohlagan usulda formatlang.

2. Raspberry pi veb -saytidan Raspbian OS dasturini o'rnating.

ZIP faylini yuklab oling va kerakli joyga olib boring.

3. Win32 disk menejerini yuklab oling.

Rasmni tanlash uchun papka belgisini bosing, "Qurilma" da microSD -ni tanlang "Yozish" -ni bosing.

MicroSD kartangizga rasm yozilganda, uni Windows Explorer -da ochishingiz mumkin.

"Cmdline.txt" faylini oching Fayl oxiriga quyidagi matn qatorini qo'shing: ip = 169.254.10.1 Hamma bir satrda ekanligiga ishonch hosil qiling. Faylni saqlang.

Endi MicroSD kartasini kompyuterdan chiqarib oling. Pi -ning quvvati o'chirilganligiga ishonch hosil qiling va kartani Raspberry Pi -ga joylashtiring.

Ethernet kabelini Pi va kompyuteringizga ulang.

5, 2V kuchlanishli adapter yordamida Pi -ga quvvat bering.

4 -qadam: 4 -qadam: Raspberry Pi -ni ulash

4 -qadam: Raspberry Pi -ni ulash
4 -qadam: Raspberry Pi -ni ulash

Ulanish uchun

bizning kompyuterimiz bilan Pi, biz Putty -dan foydalanamiz.

1. Putty -ni o'rnating va uni oching.

2. IP -manzil va portni rasmda ko'rsatilgandek to'ldiring va "ochish" tugmasini bosing.

3. Quyidagi standart sozlamalar bilan kiring:

a. Foydalanuvchi nomi: pi

b. Parol: malina

4. Wi -Fi -ni sozlash uchun:

a. Sudo nano /etc/wpa_supllicant/wpa_supllicant.conf

b. Faylning pastki qismiga quyidagi qatorlarni qo'shing:

i. Tarmoq = {

ii. ssid = "Simsiz tarmoq nomini to'ldiring"

iii. psk = "Simsiz tarmoq parolini to'ldiring"

iv. }

v. Faylni yoping va saqlang

5. Pi -ning IP -manzilini aniqlash uchun quyidagi buyruqni kiriting: ifconfig wlan0

6. Endi siz ushbu IP -manzilni Putty -da simsiz ulanish uchun ishlatishingiz mumkin (yuqoriga qarang).

5-qadam: 5-qadam: Raspi-config yordamida sozlamalarni o'zgartiring

Endi biz Pi -ning barcha komponentlarimiz bilan aloqa qilishiga ishonch hosil qilishimiz kerak.

Biz raspi-config-da ba'zi sozlamalarni o'zgartiramiz

Buyruq bilan raspi-config-ni oching:

sudo raspi-config

2. 4 ta mahalliylashtirish variantini tanlang.

3. I2 Vaqt mintaqasini o'zgartirish -ni tanlang.

4. Vaqt mintaqasini mahalliy vaqt zonasiga o'zgartiring va raspi-config-ga qaytishni tugating.

5. 5 Interfacing Options ni tanlang.

6. P5 I2C ni tanlang.

7. I2C aloqasini yoqish.

8. 5 ta interfeysli variantni tanlang

9. P6 Serial -ni tanlang

10. Kirish qobig'ini o'chiring.

11. Seriya aloqasini yoqish

6 -qadam: 6 -qadam: /boot/config.txt sozlamalarini o'zgartiring

Endi biz /boot/config.txt faylidagi ba'zi narsalarni qayta sozlashimiz kerak

1. Faylga kiring:

sudo nano /boot/config.txt

2. Pastki qismida siz quyidagilarni ko'rishingiz kerak:

enable_uart = 1

Buning sababi, biz ketma -ket portni oldinroq yoqganmiz.

3. Quyidagi ikkita qatorni qo'shing:

dtoverlay = pi3-miniuart-bt

dtoverlay = i2c-gpio, avtobus = 3

Raspberry Pi 3 ikkita ketma -ket portga ega: apparat ketma -ketlik va dasturiy ta'minot. Birinchi buyruq bilan biz dasturiy ta'minotning ketma -ket portini Bluetooth funktsiyasiga va Arduino bilan aloqa qilish uchun foydalanadigan Rx va Tx pinlariga apparat ketma -ket portini tayinlaymiz.

Ikkinchi qator Pi -da I²C dasturiy ta'minotini ishga tushiradi. Buning sababi shundaki, I²C apparati avtobusi ba'zida ushbu I²C avtobusiga ulangan sensor soat strelkasini ishlatganda xatolarga yo'l qo'yadi. I²C dasturi avtomatik ravishda GPIO 23 (SDA) va GPIO 4 (SCL) da faol bo'ladi, shuning uchun ma'lumotlarni yuborish uchun I²C ishlatadigan yorug'lik sensori to'g'ri ulanishi juda muhim edi.

7 -qadam: 7 -qadam: Foydalanuvchini o'ng guruhlarga qo'shing

Nihoyat, foydalanuvchini ba'zi guruhlarga qo'shing:

1. Hozirgi foydalanuvchingiz qaysi guruhlarga tegishli ekanligini tekshiring:

sizning foydalanuvchi nomingizni guruhlaydi

2. Barcha funktsiyalar ishlashi uchun foydalanuvchi quyidagi guruhlarga mansub bo'lishi kerak:

adm dialout sudo kiritish netdev gpio i2c spi ·

Agar kerak bo'lsa, foydalanuvchini tegishli guruhlarga qo'shing:

sudo adduser your_username guruh nomi

8 -qadam: 8 -qadam: Ma'lumotlar bazasi

8 -qadam: ma'lumotlar bazasi
8 -qadam: ma'lumotlar bazasi
8 -qadam: ma'lumotlar bazasi
8 -qadam: ma'lumotlar bazasi
8 -qadam: ma'lumotlar bazasi
8 -qadam: ma'lumotlar bazasi

Foydalanuvchi tomonidan o'rnatilgan turli xil signal vaqtlarini va sensorlarning har xil qiymatlarini saqlash uchun men ma'lumotlar bazasini tuzishim kerak edi. Siz ma'lumotlar bazasi sxemasini yuqorida ko'rishingiz mumkin.

Ma'lumotlar bazasini Raspberry Pi -ga qo'shish uchun quyidagi amallarni bajaring:

1. Putty orqali aloqa o'rnating

2. MySQL -ni yangilang

sudo apt-get yangilanishi

sudo apt-get mysql-serverni o'rnat --fix-missing -y

sudo qayta yuklash

3. Xavfsiz MariaDB

sudo mysql_secore_installation

4. MariaDB -ga kiring

sudo mysql -u ildizi

5. Ma'lumotlar bazasida hozirda foydalanuvchilar yo'q. Biz ushbu kodni foydalanuvchi yaratish uchun ishlatamiz, faqat foydalanuvchi va parolni to'ldirish kerak:

BARCHA imtiyozlarni yoqing *. * "Tanlangan_foydalanuvchi_so'zingizni_ to'ldiring"@'%'

GRANT OPSIYONI bilan "tanlangan_ parolingizni to'ldiring";

Chiqish;

6. Github -dan ma'lumotlar bazasini yuklab oling.

7. Ish stolini o'rnating.

8. Pi bilan ishchi dastgohga ulaning va faylni bajaring.

9 -qadam: 9 -qadam: Python kodi

1. Pythonfiles -ni Github -dan yuklab oling va saqlang.

2. Pycharm -ni yuklab oling va oching.

3. Raspberry Pi -ga mos keladigan tarjimon va tarqatish konfiguratsiyasini yarating.

4. PyCharm -da mainCode1.py faylini tahrirlang va oldingi qadamlardagi ma'lumotlar sonlari va ma'lumotlar bazasi sozlamalarini shaxsiy sozlamalarga o'zgartiring.

10 -qadam: 10 -qadam: Python kodini avtomatik ishga tushirish

10 -qadam: Python kodini avtomatik ishga tushirish
10 -qadam: Python kodini avtomatik ishga tushirish

1. Pi bilan Putty aloqasini yarating.

2. /etc/rc.local faylini oching:

sudo nano /etc/rc.local

3. Chiqishdan oldin quyidagi qatorlarni qo'shing:

uxlash 60

python3 /path_from_root_to_your_pythonfile/name_of_your_pythonfile.py

11 -qadam: 11 -qadam: Arduino kodi

1..ino faylini Github -dan yuklab oling va saqlang.

2. Arduino -ni noutbukga USB orqali ulang.

3. Arduino -ni Raspberry Pi bilan bog'laydigan Rx va Tx kabellarini uzing.

4. Faylni oching va Arduino -ga yuklang.

5. Arduino -ni noutbukdan uzing va Rx va Tx kabellarini to'g'ri ulang.

6. Arduino -ga kuch bering. 4*7 segmentli displeyda endi 12:34 ko'rsatilishi kerak

12 -qadam: 12 -qadam: veb -server

12 -qadam: veb -server
12 -qadam: veb -server

1. Apache -ni o'rnating:

sudo apt install apache2 -y

2./var/www/html katalogining egasi bo'ling:

sudo chown pi/var/www/html

3. Katalogga o'ting:

cd/var/www/html

4. Ildiz o'rniga egasi ekanligingizni tekshiring:

ls -al

5. Filezilla -ni yuklab oling va oching

6. Rasmda ko'rsatilgandek, pi bilan aloqa o'rnating. (yoki 169.254.10.1 va chekilgan kabelidan foydalaning yoki Wi-Fi orqali ulaning)

a. /Var/www/html katalogiga o'ting

b. Standart index.html sahifasini o'chirib tashlang

v. Barcha oldingi fayllarni ushbu katalogga o'tkazing

13 -qadam: 13 -qadam: Tashqi tomondan qurilish

13 -qadam: Tashqi tomondan qurilish
13 -qadam: Tashqi tomondan qurilish
13 -qadam: Tashqi tomondan qurilish
13 -qadam: Tashqi tomondan qurilish
13 -qadam: Tashqi tomondan qurilish
13 -qadam: Tashqi tomondan qurilish

Siz budilnikning tashqi qismini xohlaganingizcha yasashingiz mumkin! Men budilnikim uchun 5 mm kenglikdagi yog'ochdan yasalgan multipleksli quti yasadim. Men shunga o'xshash narsani qilishni xohlayman, bu qutidagi qadamlar:

1. Multipleks panelda quyidagi shakllarni chizing.

Yonlari: 2 x kvadrat (180 mm x 180 mm)

Yuqori va pastki: 2 x to'rtburchak (180 mm x 300 mm)

Old va orqa: 2 x to'rtburchak (170 mm x 300 mm)

2. Har bir shakldagi kvadrat va to'rtburchaklar arra va qum

3. Zaxira yog'ochni oling va balandligi 20 mm va kengligi 20 mm bo'lgan kichik taxtalar yasang.

4. Kichik taxtalarni fotosuratda ko'rinib turganidek, multipleksning ichki qismiga (pastki, old va orqa) burab qo'ying.

5. LCD displey, 4*7 segmentli displey, karnay, yorqinlik sensori, RGB LED, aylanuvchi kodlovchi va tugma uchun kerakli teshiklarni qaerdan yasashni hal qiling.

6. Tashqi tomondan ko'rsatmoqchi bo'lgan har bir komponentni o'lchab, multipleksga mos o'lchamdagi shakllarni chizish.

7. Kerakli bo'laklarni kesib oling.

8. Qutining tashqi tomoniga, yuqori va orqa tomonlarini bir -biriga bog'lab qo'yadigan, bir nechta menteşalarni mahkamlang.

9. Old tomonning ichki qismiga magnit va yuqori qismining ichki qismiga kichik metall plastinka joylashtiring.

10. Hamma narsani xohlagan joyingizga burab yoki yopishtiring.

11. Qutini yig'ing, barcha tashqi tomonlarini bir -biriga burab (tepadan tashqari).

Agar siz kichikroq vintlarni ishlatsangiz, 3 va 4 ni o'tkazib yuborishingiz mumkin (men 12 mm vintlarni ishlatganman). Kichik vintlarni ishlatish qutining barqarorligini biroz pasaytiradi.

Tavsiya: