Բովանդակություն:
- Քայլ 1: Այս նախագծում օգտագործվող բաները
- Քայլ 2: Պատմություն
- Քայլ 3: Սարքաշարի միացում
- Քայլ 4: Softwareրագրային ապահովման ծրագրավորում
- Քայլ 5: Գործողություն
Video: Տեսել եք IoTea LoRa լուծումը (թարմացում 1811) ՝ 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Ինտերնետ+ -ն այժմ տարածված հասկացություն է: Այս անգամ մենք փորձեցինք ինտերնետը և գյուղատնտեսությունը, որպեսզի թեյի այգին վերածվի ինտերնետի թեյի:
Քայլ 1: Այս նախագծում օգտագործվող բաները
Սարքավորման բաղադրիչներ
- Grove - ածխածնի երկօքսիդի սենսոր (MH -Z16)
- Grove - թվային լույսի ցուցիչ
- Grove - Փոշու տվիչ (PPD42NS)
- Grove-թթվածնի տվիչ (ME2-O2-Ф20)
- Հողի խոնավության և ջերմաստիճանի տվիչ
- LoRa LoRaWAN Gateway - 868 ՄՀց հավաքածու Raspberry Pi 3 -ով
- Grove - Temp & Humi & Barometer Sensor (BME280)
Softwareրագրային ապահովման ծրագրեր և առցանց ծառայություններ
Microsoft Visual Studio 2015
Քայլ 2: Պատմություն
Մենգդինգ լեռան վրա ՝ Յաան քաղաքից ՝ Սիչուան, լեռնաշղթան անցնում է արևմուտք -արևելք կանաչ ծովով: 36-ամյա Դենի համար, որն իր սերնդի Mengding թեյ պատրաստողներից շատ քիչ է, սա ամենահայտնին է ՝ ծովի մակարդակից 1100 մ բարձրության վրա գտնվող 50 մու (= 3.3 հա) պլանտացիայով: Դենգը թեյագործների ընտանիքից է, բայց ընտանիքի ժառանգությունը կրելը հեշտ գործ չէ: «Մեր թեյերը աճեցվում են բարձր բարձրության վրա` օրգանական միջավայրում `դրա գերազանց որակը ապահովելու համար: Բայց միևնույն ժամանակ, աճի խտությունը ցածր է, արժեքը `բարձր, և ծիլերը անհարթ են, ինչը դժվարացնում է թեյի բերքը: Ահա թե ինչու բարձր լեռնային թեյերը սովորաբար փոքր բերք են և դրանց արժեքները շուկայում չեն արտացոլվում »: Վերջին երկու տարիների ընթացքում Դենը փորձում էր բարձրացնել սպառողների տեղեկացվածությունը բարձր լեռնային թեյի վերաբերյալ` դրանց արժեքը բարձրացնելու համար: Եվ երբ նա հանդիպեց Ֆանին, ով պլանտացիա էր փնտրում ՝ Seeed’s IoTea տեխնոլոգիան ներդնելու համար, լուծման համար կատարյալ համընկնում ստեղծվեց:
Քայլ 3: Սարքաշարի միացում
Այս ծրագրի սարքավորումները կարելի է բաժանել 4 մասի ՝ Power, տվիչներ, Node և Gateway: Հետևյալ հոդվածը ցույց կտա ձեզ, թե ինչպես այն լրացնել քայլ առ քայլ:
Հզորության մաս
Power Part- ը հիմնականում պարունակում է Արևային վահանակ և լիթիումի մարտկոց, եթե պարզապես ցուցադրման համար կառուցեք այս նախագիծը, կարող եք անտեսել դրանք: Կամ կարող եք հետևել Նախորդ ձեռնարկին ՝ հանգույցի հզորությունը տեղադրելու համար:
Սենսորների մաս
Սենսորների մասում, բազմաթիվ սենսորների պատճառով, մենք օգտագործեցինք եղանակային կայան, ինչպես նաև պատրաստեցինք ակրիլային բրա ՝ դրանք տեղադրելու համար:
Ինչպես տեսնում եք վերևի նկարում, Digital Light Sensor- ը միշտ վերևում է, որպեսզի այն կարողանա հավաքել լուսավորության մասին տեղեկատվություն: Senերմություն առաջացնող տվիչները տեղադրված են ակրիլային փակագծի մեջտեղում, ինչպիսիք են O2 սենսորը, փոշու սենսորը և CO2 սենսորը: Վերջապես, ջերմաստիճանի և խոնավության տվիչ ակրիլային փակագծի ներքևում:
Բացի այդ, հողի ջերմաստիճանի և խոնավության սենսորը տեղադրված է միայնակ հողում: Հանգույցի մաս
Node Part- ը Seeeduino LoRaWan- ն է, որը տեղադրված է Անջրանցիկ տուփի մեջ, այն միանում է հոսանքին և տվիչներին Jրային հոդերի միջոցով: Դրանց թվում ՝ փոշու տվիչը միանում է LoRaWan- ի թվային կապին D3- ին, CO2 սենսորը `կապում D4 և D5, հողային տվիչը` կապում D6 և D7, O2 ցուցիչին `անալոգային P1- ին և Light Sensor & Barometer Sensor- ին` I2C պորտին:
ՈEՇԱԴՐՈԹՅՈՆ. 10k Resistor- ը պետք է ավելացվի Soil Sensor- ի Blue (Data) մալուխի և Red (Vcc) մալուխի միջև:
Seeeduino LoRaWan- ը մեկ -մեկ հավաքում է տվիչների արժեքը և դրանք LoRa- ով ուղարկում Gateway: Տվյալների ձևաչափը, ինչպես ստորև.
{
[0], /* Օդի ջերմաստիճան (℃)* /[1], /* Օդի խոնավություն (%)* /[2], /* Բարձրություն (մ) բարձր բայթ* /[3], /* Բարձրություն (մ) ցածր բայթ */[4],/ * CO2 կոնցենտրացիա (PPM) բարձր բայթ */[5],/ * CO2 կոնցենտրացիա (PPM) ցածր բայթ */[6],/ * Փոշու կոնցենտրացիա (հատ/0.01cf) բարձր բայթ */[7],/ *Փոշու կոնցենտրացիան (հատ/0.01cf) ցածր բայթ */[8],/ *Լույսի ինտենսիվությունը (լյուքս) բարձր բայթ */[9],/ *Լույսի ինտենսիվությունը (լյուքս) ցածր բայթ */ [10], /* O2 կոնցենտրացիան (%)* /[11], /* Հողի ջերմաստիճանը (℃)* /[12], /* Հողի խոնավությունը (%)* /[13], /* Մարտկոցի լարումը (V) */ [14]/ *Սենսորային սխալի կոդ */}
Սենսորային սխալի կոդի բայթում յուրաքանչյուր բիթ ունի տարբեր նշանակություն, ինչպես ստորև.
{
բիթ 0: 1; / * Բարոմետրերի ցուցիչի սխալ */ բիթ 1: 1; / * CO2 ցուցիչի սխալ */ բիթ 2: 1; / * Փոշու տվիչի սխալ */ bit3: 1; / * Լույսի ցուցիչի սխալ */ բիթ 4: 1; / * O2 ցուցիչի սխալ */ bit5: 1; / * Հողի ցուցիչի սխալ */ վերապահված է ՝ 2; / * Վերապահված է */}
Դարպասի մաս
Gateway Part- ը ազնվամորի Pi է, որը միացրել է Gateway մոդուլը RHF0M301–868 և PRI 2 Bridge RHF4T002 մոդուլները, այն տեղադրվել է Անջրանցիկ տուփի մեջ և միացվել հոսանքի և USB տեսախցիկին Waterրային հոդերի միջոցով: Քանի որ այն օգտագործում է մասնագիտացված որոնվածը, այն կազմաձևելու համար հետևեք Seeed Wiki- ին:
Քայլ 4: Softwareրագրային ապահովման ծրագրավորում
Որպես ապարատային կապ, ծրագրային ծրագրավորումը նույնպես կարող է պառակտվել, այն կարելի է բաժանել 3 մասի ՝ հանգույց, դարպաս և կայք:
Հանգույցի մաս
Node Part- ի պահանջվող վարորդների մեծ մասն արդեն պարունակվում է orig_driver պանակում: Հետևյալ գրադարանները պետք է տեղադրվեն ձեռքով.
Adafruit_ASFcore
Քանի որ նախագիծը բարդ է, խորհուրդ ենք տալիս Arduino IDE- ի փոխարեն օգտագործել Microsoft Visual Studio- ն: Visual Micro կոչվող հավելումը կարող է օգնել ձեզ համատեղել Arduino նախագիծը ՝ օգտագործելով Visual Studio- ն: Լրացուցիչ տեղեկությունների համար կտտացրեք այստեղ:
Ավելի լավ ընթեռնելիության և պահպանելիության համար այս անգամ մենք օգտագործում ենք Օբյեկտ-կողմնորոշված ծրագրավորում: Այս նախագծի դասային դիագրամը հետևյալն է.
Այդ սենսորների համար, որոնք արդեն ունեն OOP վարորդ, մենք փաթեթավորեցինք այն ՝ այս նախագիծը հարմարեցնելու համար, մյուսների համար մենք վերաշարադրեցինք նրանց վարորդներին ՝ օգտագործելով OOP: Միջին ծրագրերի շերտի սենսորային դասը օգտագործվում է իրական սենսորների միջերեսները միավորելու համար, օրինակ ՝ բարոմետրերի տվիչը կարող է միաժամանակ հավաքել ջերմաստիճանը, խոնավությունը և բարձրությունը, ուստի այն ունի 3 միջերես `ջերմաստիճանը, խոնավությունը և բարձրությունը ձեռք բերելու համար: Բայց նրանք ունեն տարբերության մեթոդի անվանում, ինչը սենսորների արժեք ձեռք բերելու ծրագիրը կդարձնի ավելի բարդ, ինչպես սա.
բարոմետր-> getTemperature ();
բարոմետր-> getHumidity (); բարոմետր-> getAltitude (); //… other_sensor-> getSomeValue (); //…
Բայց օգտագործելով OOP- ը, այն այսպիսին է թվում.
համար (auto i = 0; i getValue ();
}
Մենք նաև փաթեթավորեցինք Application դաս, այն իրականացնում է IApplication ինտերֆեյս, IoTea.ino- ում setup () և loop () մեթոդը կարող է զանգահարել setup () և loop () մեթոդը Application object- ում:
Նշում. USB սերիան օգտագործվում է ՄԻԱՅՆ վրիպազերծման համար: Վրիպազերծումից հետո, խնդրում ենք մեկնաբանել, որ այն սկզբնավորման կոդ է setup () եղանակով:
Դարպասի մաս
Gateway Part- ի Python ծրագիրը տնային թղթապանակում օգտագործվում է լուսանկարներ վերցնելու և դրանք ամեն ժամ Amazon S3 սերվերում վերբեռնելու համար: Օգտագործելուց առաջ համոզվեք, որ fswebcam- ն արդեն տեղադրված է ձեր Raspberry Pi- ում.
sudo apt-get update && sudo apt-get տեղադրել fswebcam
Եթե ցանկանում եք լուսանկարներ վերբեռնել, կազմաձևեք ձեր AWS- ը ՝ հետևելով հետևյալ քայլերին: Նախ, տեղադրեք AWS SDK և AWS CLI ձեր Raspberry Pi- ին ՝ օգտագործելով հետևյալ հրամանները.
sudo pip տեղադրել boto3
sudo pip տեղադրել awscli
և այնուհետև գործարկեք AWS CLI:
sudo aws կազմաձևել
Կարգավորեք ձեր AWS մուտքի բանալու ID- ն, AWS գաղտնի մուտքի ID- ն և լռելյայն տարածաշրջանի անունը:
Եթե չեք սիրում ձեր լուսանկարները վերբեռնել, կարող եք բաց թողնել AWS- ի կազմաձևման քայլերը և մեկնաբանել ծածկագրերը photo.py- ում վերբեռնման վերաբերյալ: Ամեն անգամ Raspberry Pi- ն գործարկելուց հետո այս ծրագիրը գործարկելու համար կարող եք /etc/init.d ֆայլում ստեղծել ֆայլի անվան լուսանկար և դրան գրել հետևյալ կոդը.
#!/bin/bash
# /etc/init.d/photo ### ՍԿՍԵԼ INIT INFO # Ապահովում է ՝ seeed_photo # Պահանջվում է-Սկիզբ.: 0 1 6 # Կարճ նկարագրություն. Լուսանկարում initscript # նկարագրություն. Այս ծառայությունն օգտագործվում է լուսանկարներ կառավարելու համար ### END INIT INFO սկզբում «$ 1» գործ) արձագանք «Սկսեք լուսանկարել» /home/rxhf/photo.py &;; դադար) արձագանք «Դադարեցրեք լուսանկարվելը» սպանել $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{տպել $ 2}');; *) արձագանք «Օգտագործում. ծառայության լուսանկարի մեկնարկ | դադար» ելք 1;; esac ելք 0
սահմանել կատարման թույլտվություն
sudo chmod 777 /etc/init.d/ լուսանկար
sudo chmod 777 /home/rxhf/photo.py
և փորձարկիր այն
sudo /etc/init.d/ լուսանկար սկսել
Եթե խնդիր չկա, դադարեցրեք այն և ավելացրեք այն գործարկման ծրագրին
sudo /etc/init.d/ լուսանկար կանգառ
sudo update-rc.d լուսանկարների կանխադրված
ՈEՇԱԴՐՈԹՅՈՆ. Եթե ցանկանում եք գործարկել դարպասը Raspberry Pi- ի գործարկումից հետո, Seeed Wiki- ում դարպասի մեկնարկային կոդերը ավելացրեք /etc/rc.local հասցեին, թող այն նման լինի.
#!/bin/sh -e
# # rc.local # # Այս սցենարը կատարվում է յուրաքանչյուր բազմակի օգտագործողի մակարդակի վերջում: # Համոզվեք, որ հաջողության դեպքում սցենարը «դուրս կգա 0» -ից կամ սխալի դեպքում ցանկացած այլ # արժեքից: # # Այս սցենարը միացնելու կամ անջատելու համար պարզապես փոխեք կատարման # բիթերը: # # Լռելյայն այս սցենարը ոչինչ չի անում: # Տպեք IP հասցեն _IP = $ (hostname -I) || ճիշտ է, եթե ["$ _IP"]; ապա printf "Իմ IP հասցեն է %s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io ելք 0
Կայք
Մենք տեղադրեցինք կայքը CentOS 7. -ում: Հետևյալ քայլերը ցույց կտան, թե ինչպես տեղակայել:
Քայլ 1. Տեղադրեք Python3
sudo yum -y տեղադրել epel -release
sudo yum -y տեղադրել python36
Քայլ 2. Տեղադրեք Python pip և վիրտուալ միջավայր
wget
sudo python36 get-pip.py sudo pip տեղադրել virtualenv
Քայլ 3. Կլոնավորեք մեր կայքը GitHub- ից
sudo yum -y տեղադրել git
git կլոն
Քայլ 4. Ստեղծեք և ակտիվացրեք վիրտուալ միջավայրը
virtualenv -p python36 iotea -hb
cd iotea-hb աղբյուր bin/ակտիվացնել
Քայլ 5. Տեղադրեք կախյալ գրադարաններ
pip տեղադրել pymysql
pip install dbutils pip install flask pip install websocket-client pip install cofigparser
Քայլ 6. Ստեղծեք տվյալների բազա
sudo yum -y տեղադրել mariadb mariabd -server
sudo systemctl միացնել mariadb sudo systemctl սկսել mariadb mysql -uroot -p
և այնուհետև օգտագործեք iotea_hb.sql ՝ աղյուսակ ստեղծելու համար:
Քայլ 7. Ստեղծեք db.ini և գրեք այս կոդերը դրան
[դբ]
db_port = 3306 db_user = արմատ db_host = localhost db_pass = db_name = iotea
փոխել db.ini- ի ուղին db.py- ում
# db.py- ում
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
Քայլ 8. Փոխեք նավահանգիստը app.py- ում և սկսեք կայքը.
# app.py- ում
#app.run (կարգաբերում = Trueշմարիտ, նավահանգիստ = 6000) app.run (կարգաբերում = Trueշմարիտ, նավահանգիստ = 8080)
# տերմինալում
pip տեղադրել gunicorn gunicorn -w 5 -b 0.0.0.0:8080 հավելված ՝ հավելված
այժմ այցելեք 127.0.0.1:8080 ձեր վեբ դիտարկիչում, կարող եք տեսնել կայքը, բայց իրական ժամանակի տվյալները չեն ցուցադրվում:
Քայլ 9. Ստացեք loriot տվյալներ
Բացեք մեկ այլ տերմինալ, կրկին մուտք գործեք վիրտուալ միջավայր և գործարկեք loriot հավելվածը.
cd iotea-hb
աղբյուր աղբարկղ/ակտիվացնել gunicorn loriot: հավելվածը
Մի քիչ սպասեք, կտեսնեք վեբ կայքում ցուցադրվող տվյալները կամ կարող եք փոխել wss- ը loriot.py- ում ՝
# loriot.py- ում
#ws = ստեղծել_կապ ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = ստեղծել_կապ ()
Քայլ 5: Գործողություն
Դուք կարող եք այցելել մեր կայքերը ՝ իրական ժամանակի տվյալները դիտելու համար.
- Յաանում
- Ույցի համար
Խորհուրդ ենք տալիս:
Blu Media Robot (Թարմացում) ՝ 7 քայլ
Blu Media Robot (Update). Blu- ը ռոբոտ է, որը աշխատում է makeblock մայր տախտակի և ազնվամորու էլեկտրոնիկայի համար այն մասերի ցանկում, որոնք դուք կարող եք գնել makeblock- ից, ինչպես և ես սկզբում, այժմ ես ունեմ 3D տպիչ (wanahoa i3 +) և կարող եք ներբեռնել այն տարբեր մասեր ՝ դրանք տպելու համար
Տեսեք LoRa IoTea լուծումը ՝ 5 քայլ
Տես LoRa IoTea լուծում. Տեղեկատվության հավաքման ավտոմատ համակարգ, որը կիրառվում է թեյի պլանտացիայի համար: Այն գյուղատնտեսական տեղեկատվության խելացի հավաքագրման մի մասն է
Տեսել եք IoTea LoRa լուծումը (Azure- ի հետ, թարմացում 1812) ՝ 5 քայլ
Տեսած IoTea LoRa լուծում (Azure- ի հետ, թարմացում 1812). Microsoft Azure- ը ամպային ծառայություն է, որն ապահովում է ավելի հզոր և կայուն հաշվարկային հզորություն: Այս անգամ մենք փորձեցինք դրան ուղարկել մեր IoTea տվյալները
Տեսել եք Studio CAN -BUS V2.0 Hacking - Starting: 5 Steps
Տեսած Studio CAN -BUS V2.0 Hacking - Սկիզբ Նախնական իմացությունը, թե ինչպես սկսել, միշտ ցավոտ և ժամանակատար է ցանկացած նախագծում: Բայց քանի դեռ չեք իմացել ձեր շրջապատը, գրեթե միշտ կցանկանայիք, որ ինչ -որ մեկը ունենար
Վերջին MacOS/Hackintosh High Sierra 10.13 USB Wifi վարորդի «Ապագա ապացույց» լուծումը ՝ օգտագործելով Raspberry Pi: 4 քայլ
Վերջին MacOS/Hackintosh High Sierra 10.13 USB Wifi վարորդի «Ապագայի ապացույց» լուծումը ՝ օգտագործելով Raspberry Pi. Վերջին macOS/Hackintosh- ի ամենաանհիասանելի խնդիրներից մեկը USB wifi վարորդի առկայությունն է: Ես ունեմ 3 wifi USB, որոնցից ոչ մեկը չի աշխատում ամենավերջինում: macOS High Sierra 10.13 Իմ վերջին USB WiFi- ն panda անլար է, սակայն macO- ի վարորդի աջակցությունը