Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Bizga kerak bo'lgan narsalar:
- Raspberry Pi bilan Raspbian
- Adafruitdan sensorli sensor
- Quvvat manbai (Batareya/shahar)
- Raspberry Pi uchun chekilgan yoki WiFi
- Boshqa kompyuter
1 -qadam: Raspberry Pi uskunasini o'rnatish
Birinchidan, sensorli sensorimizni Raspberry Pi -dagi GPIO pinlariga ulang. Ba'zi moslashuvchan kabellardan foydalaning
Sensorimizdagi 3 ta pinni aniqlang:
- GND - topraklama piniga ulanish
- VCC - 5V pinli ulanish
- SIG - signal pimiga ulanish
Biz bu misolda malina pi -da 5V, tuproq va GPIO 18 -dan foydalanamiz.
2 -qadam: Raspberry Pi -da atrof -muhitni sozlash
Bizning malina Pi -ning IP -manzilini oling.
Keyin ssh yordamida malina pi ga ulaning:
ssh foydalanuvchi nomi@ipaddress
keyin parolimizni kiriting.
Biz kirganimizdan so'ng, apache2 -ni veb -server sifatida o'rnating:
sudo apt-get apache2 ni o'rnating
3 -qadam: Sensorimizdan kirishni o'qish uchun Python kodining bir qismini yarating
Dizayn
Bizning namunaviy kodimizda biz bir nechta turli buyruqlardan foydalanamiz.
Biz baxtli ekanligimizni ko'rsatish uchun biz 2 marta uzoq bosamiz
Xafa bo'lganimizni ko'rsatish uchun biz bir marta bosamiz va bitta uzoq bosamiz
Adashganligimizni ko'rsatish uchun biz bir marta bosamiz, bir oz kutamiz, keyin 2 marta qisqa teging. Biz baxtli ekanligimizni ko'rsatish uchun biz bitta qisqa teginish, bitta qisqa bo'shliq va bitta uzoq bosish qilamiz
Zerikkanimizni ko'rsatish uchun biz 3 marta qisqa bosamiz
Buni satr buyruqlariga tarjima qilish: (t qisqa bosish uchun, uzoq bosish uchun T, qisqa bo'shliq uchun g, uzoq bo'shliq uchun G)
baxtli: TgT
achinarli: tgT
chalkash: tGtgt
zerikkan: tgtgt
Keyin bizning kodimiz hozirgi kayfiyatimizni xizmat ko'rsatish uchun brauzerga mos html faylga chiqaradi.
Kod
RPi. GPIO -ni GPIOimport vaqti sifatida import qilish
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM) GPIO.setup (18, GPIO. IN)
touch_count = 0
touch_state = 0 touch_duration = 0 gap_duration = 0 current_cmd = ""
def cmd ():
global current_cmd if current_cmd [-3:] == "TgT": current_cmd = "" kayfiyat ("qayg'uli") agar current_cmd [-3:] == "tgT": current_cmd = "" kayfiyat ("baxtli"), agar current_cmd bo'lsa [-5:] == "tGtgt": current_cmd = "" kayfiyat ("Adashgan") agar current_cmd [-5:] == "tgtgt": current_cmd = "" kayfiyat ("Zerikkan")
yomon kayfiyat (kayfiyat):
fayl = ochiq ("index.html", "w") html = """
Portativ kayfiyat muxbiri
Hey, mening oxirgi kayfiyatim
{}
"""
file.write (html.format (kayfiyat))
vaqt (1):
time.sleep (0.001) if (GPIO.input (18)): if touch_state == 0: if gap_duration> 2000: gap_duration = 0 if gap_duration> 200: current_cmd = current_cmd + "G" else: current_cmd = current_cmd + "g "gap_duration = 0 touch_state = 1 touch_count = touch_count + 1 agar touch_state == 1: touch_duration = touch_duration + 1 boshqa: agar gap_duration 200: current_cmd = current_cmd +" T "boshqa: current_cmd = current_cmd +" t "touch_duration = 0 cmd ()
GPIO.cleanup ()
Veb -serverimiz bilan ishlash uchun sozlash
yuqoridagi python faylini veb -server manzilimizga yozing yoki yuklang, sukut bo'yicha/var/www/html
cd/var/www/html
sudo nano touch.py
Keyin yuqoridagi kodni kiriting
4 -qadam: Serverni harakatda ko'rish uchun ishga tushiring
cd/var/www/html
sudo python touch.py
Keyin Raspberry Pi uchun IP -manzilni kiriting, shunda biz kayfiyat muxbirimiz ishlayotganini ko'rishimiz kerak!
Har xil turdagi sensorli buyruqlarni sinab ko'ring va sahifa avtomatik ravishda yangilanishi kerak.