Բովանդակություն:
- Քայլ 1: Սարքավորման և ծրագրակազմի բնութագրում
- Քայլ 2: Օգտագործողի հավատարմագրերի պահպանում
- Քայլ 3: Տեղադրեք ձեր վեբ ձևը SPIFFS- ում
- Քայլ 4: Առաջադրանքների պլանավորում
- Քայլ 5. ingերմաստիճանի և խոնավության արժեքների ընթերցում SHT25- ից
- Քայլ 6. ThingSpeak- ի արժեքների հրապարակում ThingSpeak MQTT API- ի միջոցով
- Քայլ 7. Եղանակի մասին հաշվետվության էլփոստի ծանուցում
- Քայլ 8: Ընդհանուր ծածկագիր
Video: Եղանակի հաշվետվություն ThingSpeak MQTT և IFTTT հավելվածների միջոցով. 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ներածություն
Ամպի վրա հիմնված եղանակային ծրագիր, որը տրամադրում է եղանակի ամենօրյա հաշվետվություններ ՝ որպես էլփոստի ծանուցում: Այս վեբ հավելվածը չափում է ջերմաստիճանը և խոնավությունը ՝ օգտագործելով SHT25 և Adafruit Huzzah ESP8266: Այն մեզ տրամադրում է իրական ժամանակի ջերմաստիճանի և խոնավության տվյալներ և ժամային վերլուծություն: Տվյալներն ուղարկվում են ThingSpeak MQTT API- ի միջոցով, իսկ ավելի ուշ մենք էլեկտրոնային փոստով ծանուցում ենք տրամադրում օգտվողին, երբ ջերմաստիճանը հասնում է նշանակված շեմին ՝ օգտագործելով IFTTT արձանագրությունը: SHT25- ը ջերմաստիճանի և խոնավության տվիչներ է, որը պատրաստվել է Sensirion- ի կողմից: SHT25- ը ապահովում է բարձր ճշգրտություն ± 2% RH- ի սահմաններում: Խոնավության միջակայքը 0 -ից 100% է, իսկ ջերմաստիճանը ՝ -40 -ից 125 ° C: Այն շատ ավելի հուսալի և արագ է ՝ 8 վրկ սենսորային արձագանքման ժամանակ:
Հատկություններ
- Ձեզ տրամադրում է իրական ժամանակի վերլուծություն և վիճակագրություն ՝ օգտագործելով Thing Speak MQTT API- ն
- IFTTT- ի միջոցով նշանակված պահին օգտագործողին տրամադրվում է էլ. Փոստի ծանուցում
- Task Scheduler- ը օգտագործվում է առաջադրանքը պլանավորելու համար, ինչպիսիք են տվիչներից տվյալների վերցնելը, սենսորների ընթերցումների հրապարակումը, MQTT թեմային բաժանորդագրվելը:
- Այն օգտագործում է I2C արձանագրությունը ՝ սենսորային ընթերցումը բերելու համար, որն ավելի ճշգրիտ է, ընդլայնելի և ընդարձակելի
- քնի ռեժիմ, երբ սարքն անգործուն է կամ որևէ առաջադրանք չի կանչվում:
- առաջադրանքների արդյունավետ պլանավորումն ապահովում է առանց դժվարությունների օգտագործումը
- Տեղադրվում է առանձին վեբ էջ, որտեղ օգտվողը պետք է տրամադրի իր հավատարմագրերը ՝ ձեր սարքը ամեն անգամ չլցնելուց, այլ Wi -Fi ցանցերի հասանելիությունից խուսափելու համար:
-
SPIFFS- ն օգտագործվում է մեր վեբ էջը պահելու համար `մեր կոդը ընթեռնելի և ավելի քիչ անշնորհք դարձնելու համար
Քայլ 1: Սարքավորման և ծրագրակազմի բնութագրում
Սարքաշարի բնութագրում
- Adafruit esp8266 Huzzah տախտակ
- Huzzah Board Shield
- SHT25 սենսորային մոդուլ
- I2C մալուխ
Softwareրագրաշարի բնութագրում
- Arduino IDE
- IFTTT բան խոսիր
- MQTT API
Քայլ 2: Օգտագործողի հավատարմագրերի պահպանում
Այստեղ մենք օգտագործում ենք SHT25 I2C սենսորը ՝ ջերմաստիճանի և հարաբերական խոնավության իրական ժամանակի արժեքը կարդալու և այդ արժեքը ամպի վրա տեղադրելու համար: Սենսորային թարմացված արժեքը ժամանակ առ ժամանակ ստանալու և այս թարմացումները միաժամանակ տեղադրելու համար մենք օգտագործում ենք Arduino- ի առաջադրանքների ժամանակացույցի գրադարանը: Ամպային գործողությունների համար մենք օգտագործում ենք ThingSpeak MQTT API: Հետագայում մենք իրական ժամանակի եղանակային հաշվետվություն ենք տրամադրում օգտվողին `օգտագործելով IFTTT հավելվածները: Դուք կարող եք հետևել այս քայլերին ՝ ձեր սեփական եղանակային կայանը ստեղծելու համար: Այսպիսով, DIY:
Մինչև հետագա քայլեր ձեռնարկելը: Մենք պետք է պահպանենք օգտվողի հավատարմագրերը: Այդ նպատակով մենք հյուրընկալում ենք վեբ սերվերին 192.169.1.4 համարով: Մենք պահել ենք մեր վեբ ձևը SPIFFS- ում: Երբ սարքը գործարկվի, այն վեբ սերվեր է ընդունում 60 վայրկյան: Օգտագործողը պետք է հետևի այս քայլերին:
- Միացեք AP ESPuser- ին, սա նշված է ձեր հասանելի wifi ցանցերի ցանկում: Միացեք այս AP- ին և մուտքագրեք «*******» գաղտնաբառը
- Միանալուց հետո, գնացեք ձեր դիտարկիչ, մուտքագրեք IP 192.168.1.4:
- Մուտքագրման դաշտերում մուտքագրեք ձեր տեղական WiFi- ի SSID- ն ու գաղտնաբառը և մուտքագրեք SUBMIT
- Այս հավատարմագրերը կպահվեն EEPROM- ում
- 60 վայրկյան անց Սարքն ինքնաբերաբար կհեռացվի AP- ից
- Հաջորդ անգամ, երբ սարքը միացնեք, օգտագործողը չպետք է հետևի այս ընթացակարգին: Սարքն ինքնաբերաբար կվերցնի օգտվողի հավատարմագրերը EEPROM- ից և կշարունակի ստանալ սենսորի ընթերցումները I2C ինտերֆեյսից և տեղադրել ամպին:
// --------- AP կոնֆիգուրացիա ------------ // IPAddress ap_local_IP (192, 168, 1, 4); IPAddress ap_gateway (192, 168, 1, 254); IPAddress ap_subnet (255, 255, 255, 0);
Serial.print («Մուտքի կետի կարգավորում …»);
WiFi.softAPConfig (ap_local_IP, ap_gateway, ap_subnet);
Serial.print («Օգտագործողի հավատարմագրերի կարգավորում»);
WiFi.softAP (ssidAP, passAP);
server.on ("/", handleRoot);
server.onNotFound (onHandleNotFound);
server.begin ();
APTimer = millis ();
while (millis ()-APTimer <APInterval) {
server.handleClient ();
}
// *************************** ԲՌՆԵԼ ՌՈTՏԸ ********* // անվավեր handleRoot () {
if (server.hasArg ("ssid") && server.hasArg ("գաղտնաբառ"))
{
// Եթե ձևի բոլոր դաշտերը պարունակում են տվյալների կանչ
handelSubmit ()
handleSubmit (); }
ուրիշ {
// Կրկին ցուցադրել ձեւը
// կարդալ spiffs- ում պարունակվող ֆայլը
Ֆայլի ֆայլ = SPIFFS.open ("/webform.html", "r");
server.streamFile (ֆայլ, "text/html");
// մի մոռացեք փակել ֆայլը
file.close ();
}}
// Ստուգեք կարգավիճակը, որ այն պարունակում է ssid և գաղտնաբառ փաստարկներ
// Այնուհետեւ գրեք հավատարմագրերը ROM- ին
ROMwrite (լարային (server.arg ("ssid")), լարային (server.arg ("գաղտնաբառ")))
Քայլ 3: Տեղադրեք ձեր վեբ ձևը SPIFFS- ում
SPIFFS
Սերիական ծայրամասային ինտերֆեյս Flash ֆայլային համակարգ կամ կարճ SPIFFS: Դա թեթև քաշային ֆայլային համակարգ է միկրոկոնտրոլերների համար ՝ SPI ֆլեշ չիպով: ESP8266- ի ֆլեշ չիպը շատ տեղ ունի ձեր վեբ էջերի համար, հատկապես, եթե ունեք 1 ՄԲ, 2 ՄԲ կամ 4 ՄԲ տարբերակ: Մենք նաև մեր կայքը պահել ենք Flash System- ում: Կան մի քանի քայլեր, որոնք մենք պետք է հետևենք ՝ տվյալները spiff- ներ վերբեռնելու համար
- Ներբեռնեք գործիքը ՝
- Ձեր Arduino էսքիզների գրքույկում ստեղծեք գործիքների գրացուցակ, եթե այն դեռ գոյություն չունի
- Գործիքը բացեք գործիքների գրացուցակում (ճանապարհը նման կլինի /Arduino/tools/ESP8266FS/tool/esp8266fs.jar)
- Վերագործարկեք Arduino IDE- ն
- Բացեք ուրվագիծը (կամ ստեղծեք նորը և պահեք այն)
- Գնացեք ուրվագծերի գրացուցակ (ընտրեք ուրվագիծ> Sուցադրել էսքիզների պանակը)
- Ստեղծեք տվյալների անունով գրացուցակ և ցանկացած ֆայլ, որը ցանկանում եք այնտեղ գտնվող ֆայլային համակարգում: Մենք վերբեռնել ենք մեր HTML էջը webform.html անունով
- Համոզվեք, որ ընտրել եք տախտակ, նավահանգիստ և փակ սերիական մոնիտոր
- Ընտրեք Գործիքներ> ESP8266 Էսքիզ տվյալների վերբեռնում: Սա պետք է սկսի ֆայլերը վերբեռնել ESP8266 ֆլեշ ֆայլային համակարգ: Ավարտելուց հետո IDE կարգավիճակի տողը կցուցադրի SPIFFS Image Uploaded հաղորդագրությունը:
Ֆայլի ֆայլ = SPIFFS.open ("/webform.html", "r");
server.streamFile (ֆայլ, "text/html");
// մի մոռացեք փակել ֆայլը
file.close ();
Քայլ 4: Առաջադրանքների պլանավորում
Այս ձեռնարկում մենք կատարում ենք երկու գործողություն.
- Կարդացեք SHT25- ի տվյալները `օգտագործելով I2C արձանագրությունը
- Տեղադրեք թարմացված տվյալները ամպի մեջ ՝ օգտագործելով ThingSpeak MQTT API
Դրան հասնելու համար մենք օգտագործում ենք TaskScheduler գրադարանը: Մենք նախատեսել ենք երկու տարբեր առաջադրանքներ, որոնք վերաբերում են երկու տարբեր վերահսկողության գործողություններին: սա արվում է հետևյալ կերպ
- Առաջադրանք 1 -ը սենսորի արժեքի ընթերցման համար է: Այս առաջադրանքը կատարվում է 1 վայրկյան, մինչև այն հասնում է 10 վրկ:
- Երբ Task1- ը հասնի իր ժամկետի ավարտին: Մենք միանում ենք տեղական Wifi և MQTT բրոքերին:
- Այժմ Առաջադրանք 2 -ը միացված է, և մենք անջատում ենք Առաջադրանք 1 -ը Առաջադրանք 2 -ը սենսորային տվյալները Thing Speak MQTT բրոքերին հրապարակելու համար է: Այս առաջադրանքը տևում է 20 վայրկյան, մինչև այն հասնի 20 վրկ ժամկետի:
- Երբ Task2- ը լրանում է ժամկետի ավարտին, Առաջադրանք 1 -ը կրկին միացված է, և Task2- ը անջատված է: այստեղ նորից մենք ստանում ենք թարմացված արժեքը, և գործընթացը շարունակվում է
- երբ հետադարձ կապ չի կանչվում կամ սարքն անգործուն է անցնում այն անցնում է Light Sleep ՝ դրանով իսկ խնայելով էներգիան:
// --------- առաջադրանքի հետադարձման նախատիպ ------------ //
անվավեր taskI2CCallback ();
void taskI2CD անջատելի ();
անվավեր taskWiFiCallback ();
void taskWiFiDisable ();
// --------- Առաջադրանքներ ------------ //
Առաջադրանք tI2C (2 * TASK_SECOND, TASK_FOREVER, & taskI2CCallback, & ts, false, NULL, & taskI2CD անջատելի);
Առաջադրանք tWiFi (20* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
// միացնել tI2C tI2C. ակտիվացնել ();
Քայլ 5. ingերմաստիճանի և խոնավության արժեքների ընթերցում SHT25- ից
I2C- ը երկալար ինտերֆեյս է, որը միայն երկու լար է օգտագործում հիմնական սարքի հետ հաղորդակցվելու համար: Մեկը ՝ SCL (Սերիական ժամացույց), իսկ մյուսը ՝ SDA (Սերիական տվյալներ): Յուրաքանչյուր ստրուկ սարք ունի յուրահատուկ հասցե: SHT 25-ն ունի նաև 8-բիթանոց հասցե և դրան հասանելի է 0x44 հասցեով: այն ունի 8 բիթ հասցե, որտեղ 7 բիթը փաստացի հասցե է, իսկ աջից LSB բիթ 0 -ն օգտագործվում է սարքից ընթերցման կամ գրելու ազդանշանի համար: Եթե բիթ 0 -ը դրված է 1 -ի, ապա հիմնական սարքը կարդալու է ստրուկ I2C սարքից: I2C- ն շատ ավելի հուսալի, լայնածավալ և արագ է, և նույնիսկ այն ունի բազմաթիվ ռեժիմներ, ինչը դարձնում է այն շատ ավելի էներգաարդյունավետ
Մենք օգտագործում ենք Wire.h գրադարանը `ջերմաստիճանի և խոնավության արժեքները կարդալու համար: Այս գրադարանը հեշտացնում է i2c հաղորդակցությունը սենսորի և հիմնական սարքի միջև: 0x44- ը SHT25- ի I2C հասցեն է: SHT25- ը գործում է այլ ռեժիմով: Դրա համար կարող եք անդրադառնալ տվյալների թերթիկին: Մենք օգտագործում ենք 0x2C և 0x06 համապատասխանաբար որպես MSB և LSB մեկ կրակոցով աշխատելու համար
Քայլ 6. ThingSpeak- ի արժեքների հրապարակում ThingSpeak MQTT API- ի միջոցով
Մեր ջերմաստիճանի և խոնավության արժեքները ամպին տեղադրելու համար մենք օգտագործում ենք ThingSpeak MQTT API: ThingSpeak- ը IoT հարթակ է: ThingSpeak- ը անվճար վեբ ծառայություն է, որը թույլ է տալիս հավաքել և պահել սենսորների տվյալները ամպի մեջ: MQTT- ը ընդհանուր արձանագրություն է, որն օգտագործվում է IoT համակարգերում `ցածր մակարդակի սարքերն ու տվիչները միացնելու համար: MQTT- ն օգտագործվում է բրոքերից կարճ հաղորդագրություններ փոխանցելու համար: ThingSpeak- ը վերջերս ավելացրել է MQTT բրոքեր, որպեսզի սարքերը կարողանան հաղորդագրություններ ուղարկել ThingSpeak- ին: Այս գրառումից կարող եք հետևել ThingSpeak ալիքի ստեղծման ընթացակարգին
ThingSpeak MQTT
MQTT- ը հրապարակման/բաժանորդագրության ճարտարապետություն է, որը մշակվել է հիմնականում անլար ցանցերի միջոցով թողունակության և էներգիայով սահմանափակ սարքերը միացնելու համար: Դա պարզ և թեթև արձանագրություն է, որն անցնում է TCP/IP վարդակների կամ WebSockets- ի վրայով: MQTT- ը WebSockets- ի միջոցով կարելի է ապահովել SSL- ով: Հրապարակման/բաժանորդագրության ճարտարապետությունը հնարավորություն է տալիս հաղորդագրությունները մղել դեպի հաճախորդի սարքեր, առանց սարքի ՝ սերվերը շարունակաբար հարցում անելու: Հաճախորդը ցանկացած սարք է, որը միանում է բրոքերին և կարող է տեղեկատվություն մուտք գործելու համար հրապարակել կամ բաժանորդագրվել թեմաների: Թեման պարունակում է միջնորդի համար երթուղղման տեղեկատվություն: Յուրաքանչյուր հաճախորդ, որը ցանկանում է հաղորդագրություններ ուղարկել, դրանք հրապարակում է որոշակի թեմայի շուրջ, և յուրաքանչյուր հաճախորդ, որը ցանկանում է հաղորդագրություններ ստանալ, բաժանորդագրվում է որոշակի թեմայի
Հրապարակեք և բաժանորդագրվեք ThingSpeak MQTT- ի միջոցով
- Հրապարակում ալիքների հոսքի ալիքներին /հրապարակում /
- Հրապարակում որոշակի դաշտի ալիքներում/հրապարակում/դաշտեր/դաշտ/
- Բաժանորդագրվեք ալիքի դաշտային ալիքներին/բաժանորդագրվեք //
- Բաժանորդագրվեք մասնավոր ալիքների հոսքի ալիքներին // բաժանորդագրվեք/դաշտեր/դաշտ/
- Բաժանորդագրվեք ալիքի բոլոր ոլորտներին: ալիքներ // բաժանորդագրվել/դաշտեր/feild/
void taskWiFiCallback ()
{
Serial.println ("taskWiFiCallbackStarted");
Serial.print («այս առաջադրանքի համար ընդմիջում ՝ / t»);
Serial.println (tWiFi.getTimeout ());
եթե (! mqttCli.connected ())
{
Serial.println ("Հաճախորդը կապված չէ");
նորից միացնել MQTT ();
}
Լարային թեմաԼար = = ալիքներ/"+Լար (channelID)+"/հրապարակում/"+Լար (գրելAPIKey);
int topicLength = topicString.length ()+1;
char topicBuffer [topicLength];
topicString.toCharArray (topicBuffer, topicLength+1);
Serial.println (topicBuffer);
Լարային տվյալներ String = Լար ("field1 =" + Լար (tempC, 1) + "& field2 =" + Լար (tempF, 1) + "& field3 =" + Լար (խոնավ, 1));
int dataLength = dataString.length ()+1;
բայթ dataBuffer [dataLength];
dataString.getBytes (dataBuffer, dataLength);
mqttCli.beginPublish (topicBuffer, dataLength, false);
Serial.println (mqttCli.write (dataBuffer, dataLength)? "Published": "հրապարակված ձախողվեց");
mqttCli.endPublish ();
//mqttCli.loop ();
}
Քայլ 7. Եղանակի մասին հաշվետվության էլփոստի ծանուցում
Մենք օգտագործում ենք IFTTT հավելվածներ ՝ եղանակային եղանակի մասին հաշվետվություն օգտագործողին էլեկտրոնային փոստով ծանուցելու համար: Այսպիսով, մենք այն իրականացրել ենք ThingSpeak- ի միջոցով: Մենք միջինում գնահատում ենք ջերմաստիճանի և խոնավության 5 ֆեյ արժեքները: Ամեն անգամ, երբ վերջին գրառման արժեքը գերազանցում է միջին արժեքը: Այն կհանգեցնի էլփոստի ծանուցման «տաք օր է»: և երբ այն միջին արժեքից փոքր է: Այն կհանգեցնի էլփոստի ծանուցման «Ինչ գեղեցիկ օր է»: Ամեն օր առավոտյան ժամը 10: 00 -ի սահմաններում (IST) մենք կստանանք էլ. Փոստի ծանուցում
channelID = ******;
iftttURL = 'https://maker.ifttt.com/**************';
humidityData = thingSpeakRead (channelID, 'Fields', 3, 'NumDays', 5); tempData = thingSpeakRead (channelID, 'Fields', 1, 'NumDays', 5);
perHumid = առավելագույնը (խոնավության տվյալները) -ին (խոնավության տվյալները);
humidValue = 0.1*perHumid+min (խոնավության տվյալները);
perTemp = max (tempData) -min (tempData);
tempValue = 0.1*perTemp+րոպե (tempData);
urlTemp = strcat ('https://api.thingspeak.com/channels/', string (channelID), '/fields/1/last.txt');
urlHumid = strcat ('https://api.thingspeak.com/channels/', տող (channelID), '/fields/3/last.txt'); lastTempValue = str2num (վեբ ընթերցում (urlTemp)); lastHumidValue = str2num (վեբ ընթերցում (urlHumid));
եթե (lastTempValue
if (lastTempValue> tempValue || lastHumidValue> humidValue)
plantMessage = 'Շոգ օր է.'; webwrite (iftttURL, 'value1', plantMessage, 'value2', lastTempValue, 'value3', lastHumidValue); վերջ
Քայլ 8: Ընդհանուր ծածկագիր
Ընդհանուր ծածկագիր
Ընդհանուր ծածկագիրը հասանելի է այս GitHub շտեմարանում
Սահմանափակումներ
- Տվյալների հրապարակման հետ կապված որոշ խնդիրներ կան տվյալների մեծ մասի համար հրապարակելու մեթոդով: Այս խնդիրը լուծելու համար մենք օգտագործում ենք գրել () գործառույթը
- SPIFFS- ը նոր տվյալներ SPIFFS- ում բեռնելուց առաջ պետք է ձևաչափել:
- Դուք չպետք է օգտագործեք հետաձգման () գործառույթը: ուշացումը () խոչընդոտում է ֆոնային գործողությանը: Փոխարենը, ստեղծեք ուշացումներ, օգտագործելով millis () - ը միայն անհրաժեշտության դեպքում
Վարկեր
- ESP826WebServer
- Առաջադրանքների ժամանակացույց
- SHT 25
- ThingSpeak MQTT API
- IFTTT
- PubSubClient
Խորհուրդ ենք տալիս:
Blynk հավելվածի միջոցով Nodemcu- ի միջոցով ինտերնետի միջոցով կառավարում. 5 քայլ
Blynk հավելվածի միջոցով Nodemcu- ի միջոցով ինտերնետի միջոցով կառավարելը. Բարև բոլորին, այսօր մենք ձեզ ցույց կտանք, թե ինչպես կարող եք վերահսկել LED- ը սմարթֆոնի միջոցով ինտերնետում
Excel պարբերական հաշվետվություն `6 քայլ
Excel- ի պարբերական հաշվետվություն. Ահա իմ խորհուրդները Excel 2010 -ի պարբերական սպառման հաշվետվությունների համար: Ստորև բերված ձեռնարկի տեսանյութում այս զեկույցը պատմում է էլեկտրաէներգիայի, ջրի, թթվածնի, ազոտի մեկ տոննա պատրաստի արտադրանքի որոշակի սպառման մասին `ըստ շաբաթական, ամսական, եռամսյակի:
Covid Live հաշվետվություն ՝ օգտագործելով Raspberry Pi: 6 քայլ
Covid Live հաշվետվություն ՝ օգտագործելով Raspberry Pi. Ինչպես գիտենք, ամբողջ աշխարհը տուժում է COVID-19 համաճարակից, և գրեթե բոլորը տնից են աշխատում: Մենք բոլորս պետք է լավագույնս օգտագործենք այս տևողությունը ՝ բարելավելու մեր տեխնիկական հմտությունները կամ գրելու որոշ լավ Pythonic սցենարներ: Եկեք տեսնենք մի պարզ Python
Բջջային հավելվածների մշակում ՝ օգտագործելով Adobe XD: 5 քայլ
Բջջային հավելվածների մշակում Adobe XD- ի միջոցով. Ողջույն, բոլորդ: Ես Էլիզաբեթ Կացերեկն եմ, ավագ դպրոցն ավարտող ավագ դպրոցը, և ես ստեղծեցի դա ուսանելի, քանի որ այս լայնորեն կիրառվող հարթակում նկատեցի մի անցք, որը կարող էի լրացնել: Ես կսիրեի այսպիսի ուղեցույցը, երբ սկսեի իմ մեկամյա հետազոտությունը
Ինչպես օգտվել Cydia + հավելվածների և աղբյուրների ցուցակից ՝ 11 քայլ
Ինչպես օգտվել Cydia + հավելվածների և աղբյուրների ցանկից: Այս հրահանգում ես ձեզ ցույց կտամ, թե ինչպես անել հետևյալը. 1. Գտնելով ծրագիրը 2. Cydia- ի արդիականացում 3. Թարմացրեք ձեր դիմումները 4. Նոր ծրագրերի որոնում Նոր ծրագրերի տեղադրում 6. Հեռացնել կամ նորից տեղադրել ծրագրերը 7. Աղբյուրների ավելացում 8. Դիտել և