Arduino Yun bilan ishlashni boshlash



Download 1,04 Mb.
bet4/5
Sana20.06.2022
Hajmi1,04 Mb.
#684500
1   2   3   4   5
Bog'liq
New Microsoft Word Document

Mijozdan olingan raqamli ( raqamli ) buyruqlar bilan ishlash funksiyasini yarataylik , bu funksiyaning parametri. Funktsiya ichida biz chiqish raqami va uning holatini saqlash uchun bir nechta mahalliy o'zgaruvchilar yaratamiz:
?

void digitalCommand(YunClient client) {
int pin, value;

Keyinchalik, mijozdan so'rovni tahlil qilamiz va client.parseInt() funksiyasidan foydalanib chiqish raqamini topishga harakat qilamiz.
Agar chiqish raqamidan keyin "/" belgisi bo'lsa, u holda URL manzilida undan keyin 1 yoki 0 bo'lishi kerak. Bu qiymat chiqish o'rnatilishi kerak bo'lgan holatni tavsiflaydi - yuqori daraja (HIGH) yoki past (LOW) . Agar URL manzilida "/" chiziq chizig'i bo'lmasa, siz shunchaki ko'rsatilgan chiqish holatini o'qishingiz kerak. 
?

pin = client.parseInt();
if (client.read() == '/') {
value = client.parseInt();
digitalWrite(pin, value);
}
else {
value = digitalRead(pin);
}

Shundan so'ng, biz mijozga matnli xabarlarni yuboramiz va ma'lumotlar do'konidagi ko'rsatilgan chiqishga mos keladigan kalitning qiymatini mijoz tomonidan o'rnatilgan qiymat bilan yangilaymiz.
Agar yuborilgan qiymat konstruktsiya ichida ko'rsatilgan bo'lsa F(), u holda u flesh xotiradan chiqariladi. Bu sizga SRAM xotirasida bo'sh joyni tejash imkonini beradi, bu ayniqsa URL manzillari uchun odatiy bo'lgan uzun satrlar bilan ishlashda muhim ahamiyatga ega.
Kalitning nomi chiqish raqamini, shuningdek uning turini birlashtiradi. Masalan, D2 kaliti uzatilgan qiymat raqamli ( Raqamli ) pin raqami 2 ga tegishli ekanligini bildiradi. 
?

client.print(F("Pin D"));
client.print(pin);
client.print(F(" set to "));
client.println(value);
String key = "D";
key += pin;
Bridge.put(key, String(value));
}

Endi xuddi shu tarzda analog buyruqlar bilan ishlash funksiyasini tasvirlab beramiz. Farqi shundaki, Arduino analog kirishlari bilan ishlaganda D belgisi o'rniga kalit nomida A belgisi paydo bo'ladi :
?

void analogCommand(YunClient client) {
int pin, value;
pin = client.parseInt();
if (client.read() == '/') {
value = client.parseInt();
analogWrite(pin, value);
// информируем клиента о том, что произошло
client.print(F("Pin D"));
client.print(pin);
client.print(F(" set to analog "));
client.println(value);
String key = "D";
key += pin;
Bridge.put(key, String(value));
}
else {
value = analogRead(pin);
client.print(F("Pin A"));
client.print(pin);
client.print(F(" reads analog "));
client.println(value);
String key = "A";
key += pin;
Bridge.put(key, String(value));
}
}

Pinlarning ishlash rejimini o'zgartirish uchun yana bitta funktsiya yarataylik: biz argument sifatida YunClient ob'ektini olamiz, pin raqamini saqlash uchun mahalliy o'zgaruvchini yaratamiz va oldingi funktsiyalar singari, kiruvchi buyruqdan pin raqamini chiqaramiz:
?

void modeCommand(YunClient client) {
int pin;
pin = client.parseInt();

URL to'g'ri yoki yo'qligini tekshiring:
?

if (client.read() != '/') {
client.println(F("error"));
return;
}

Agar URL to'g'ri kiritilgan bo'lsa, uni satrga saqlang. Agar rejim ko'rsatilgan bo'lsa kirish yoki chiqish chiziqlari , biz ko'rsatilgan chiqishning ishlash rejimini o'zgartiramiz va bu haqda mijozga xabar beramiz. Aks holda, biz xatoni qaytaramiz.
?

String mode = client.readStringUntil('\r');
if (mode == "input") {
pinMode(pin, INPUT);
// информируем клиента о том, что произошло
client.print(F("Pin D"));
client.print(pin);
client.print(F(" configured as INPUT!"));
return;
}
if (mode == "output") {
pinMode(pin, OUTPUT);
// информируем клиента о том, что произошло
client.print(F("Pin D"));
client.print(pin);
client.print(F(" configured as OUTPUT!"));
return;
}
client.print(F("error: invalid mode "));
client.print(mode);
}

Ushbu misolning batafsil tavsifini bu erda topishingiz mumkin .

Download 1,04 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish