Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Hey!
Ushbu loyihada biz Google yordamchisiga asoslangan LEDni Raspberry Pi 4 yordamida HTTP yordamida Pythonda boshqaramiz. Siz LEDni lampochka bilan almashtirishingiz mumkin (aniqrog'i, sizga o'rni moduli kerak bo'ladi) yoki boshqa har qanday maishiy texnika, bu loyihani uyni avtomatlashtirish maqsadida yanada amalga oshirish uchun.
Ta'minotlar
Ushbu loyiha uchun sizga kerak bo'ladi:
1. Raspberry Pi
2. LED
3. Jumper simlari-2 (erkakdan ayolgacha)
4. Non paneli
5. IFTTT dasturi (https://play.google.com/store/apps/details?id=com.ifttt.ifttt&hl=en_IN)
6. Thingspeak hisob qaydnomasi (https://thingspeak.com/)
Ba'zi old shartlar:
1. Tarmoq asoslari-HTTP
2. Python veb -ma'lumotlarga kirish uchun
1 -qadam: Thingspeak kanalini yaratish
Agar siz Thingspeak -da yangi bo'lsangiz va uni hech qachon ishlatmagan bo'lsangiz, quyidagi amallarni bajaring.
Https://thingspeak.com/ saytiga o'ting
Thingspeak -dan foydalanishni boshlashdan oldin siz ro'yxatdan o'tishingiz kerak bo'ladi
Ro'yxatdan o'tgandan so'ng, "Kanallar" bo'limiga o'ting
"Kanallar" bo'limida "Yangi kanal" -ni tanlang (ma'lumot uchun rasmga qarang).
Yangi kanalda siz turli xil ma'lumot qutilarini ko'rasiz. Siz faqat Ismlar maydonini to'ldirishingiz kerak. Siz xohlagan kanalingizga nom berishingiz mumkin. Men o'z rasmimni biriktirdim, u erda o'z kanalimni Raspberry Pi 4 deb nomladim. Qolgan qutilarni xuddi shunday qoldiring.
Tabriklaymiz! Siz IoT loyihangiz uchun kanalni muvaffaqiyatli yaratdingiz. (Raspberry Pi 4 nomli kanalim muvaffaqiyatli yaratilganini ko'rishingiz mumkin)
2 -qadam: IFTTT ilovasidan foydalanish
Google Assistant yordamida Thingspeak kanalida ma'lumotlarni joylashtirish uchun GET so'rovini ishga tushirish uchun biz ushbu ilovadan foydalanishimiz kerak. Bu ilovani Google Assistant va Thingspeak kanalingiz orasidagi interfeys deb tasavvur qiling.
Keyinchalik, biz IFTTT ilovasida GET so'rovlarini yaratamiz.
IFTTT dasturini https://play.google.com/store/apps/details?id=com… saytidan yuklab oling.
Hisob qaydnomangizni yarating
O'z qo'lingiz bilan applet yasashga o'ting
Agar bu variantni bosing
Google Assistant sifatida ishga tushirish xizmatini tanlang
Unda Oddiy iborani ayt -ni tanlang
Ushbu parametr ostida ba'zi ma'lumotlar qutilari paydo bo'ladi. Buning uchun rasmlarga qarang va shunga mos ravishda tafsilotlarni to'ldiring! (buning uchun ikkita rasm bor: 1. LEDni yoqish uchun 2. LEDni o'chirish uchun)
Google Assistant -ning "Agar bu bo'lsa" qismini yakunladik. Endi biz Webhooks ni tanlaymiz.
Buning ostida Veb -so'rovni tanlang
Qatorlarga to'ldirilishi kerak bo'lgan ma'lumot uchun rasmga qarang. Bu manzilga murojaat qiling https://api.thingspeak.com/update?api_key=INSERT YOUR API API KEY & field1 = 1
Yuqoridagi URLda men yozgan API kalitini yozish haqida aytib o'tganimni sezasiz. Bu Thingspeak -da siz yaratgan kanalning identifikatori bo'lgan API kaliti (rasmga qarang). API yozish kaliti sizning kanalingizga ma'lum ma'lumotlarni yozishga yordam beradi va shunga o'xshash API -ni o'qish sizga kanaldan ma'lumotlarni olishga yordam beradi.
Write API kalitidan tashqari, qolgan ma'lumotlar ham xuddi shunday qoladi.
Bu erda siz Google Assistentingizga "LEDni yoqing" deganingizda Thingspeak kanalingizga "1" raqamini yuboradigan tetik yaratgansiz.
Endi, xuddi shu tarzda, LEDni o'chirish uchun IFTTT ilovasida yangi Applet yaratishingiz kerak. Agar siz bu haqda chalkash bo'lsangiz, rasmlarni biriktirdim. Aks holda, LEDni o'chirish tartibi, ba'zi kichik o'zgarishlardan tashqari, yuqorida qilganingiz bilan bir xil bo'ladi.
3 -qadam: Nihoyat kodni ishga tushirish
Men Python kodining asosiy maqsadini tushuntiraman. Thingspeak kanalidan Google Assistentga aytganlaringiz asosida "1" yoki "0" bo'lishi kerak bo'lgan ma'lumotlarni olishimiz kerak. Biz bunga asoslanib LEDni yoqishimiz yoki o'chirishimiz kerak. Agar Thingspeak kanaliga yuklangan qiymat "1" bo'lsa, biz LEDni yoqamiz, agar "0" bo'lsa, uni o'chirib qo'yamiz.
Kodda sizga ikkita narsa kerak bo'ladi: 1. Sizning API o'qish kalitingiz 2. Sizning kanal identifikatoringiz (rasmlarga qarang)
Bu erda kod (HTTP va Pythonning old shartlarini bilsangiz):
urllib import qilish
import so'rovlari
json import qilish
import vaqti
RPi. GPIO -ni GPIO sifatida import qilish
GPIO.setmode (GPIO. BOARD)
GPIO. sozlash (7, GPIO. OUT)
harakat qilib ko'ring:
vaqt (1):
URL = 'https://api.thingspeak.com/channels/KANALNING ID/maydonlari/1.json? INSER? Api_key =' KEY = 'O'QISH API KEYTINI KIRING'
HEADER = '& natijalar = 2'
NEW_URL = URL+KEY+HEADER
#chop etish (NEW_URL)
get_data = request.get (NEW_URL).json ()
#chop etish (get_data)
feild_1 = get_data ['tasmalar']
#print ("Maydon:", feild_1)
t =
x uchun feild_1:
t.qo'llash (x ['maydon1'])
chop etish (t [1])
agar int (t [1]) == 1:
GPIO. chiqish (7, 1)
elif int (t [1]) == 0:
GPIO. chiqish (7, 0)
KeyboardInterruptdan tashqari:
GPIO.cleanup ()