Мазмұны:

Қаралған LoRa IoTea шешімі: 5 қадам
Қаралған LoRa IoTea шешімі: 5 қадам

Бейне: Қаралған LoRa IoTea шешімі: 5 қадам

Бейне: Қаралған LoRa IoTea шешімі: 5 қадам
Бейне: ГЕОГРАФИЯ НАУРЫЗ ҰБТ-2021. ДАЙЫНДЫҚ! 2024, Қараша
Anonim
LoRa IoTea шешімін көріңіз
LoRa IoTea шешімін көріңіз

Шай плантациясында қолданылатын ақпаратты автоматты жинау жүйесі. Бұл ауылшаруашылық туралы ақпаратты жинаудың бөлігі.

1 -қадам: Бұл жобада қолданылатын заттар

Аппараттық компоненттер

  • Grove - көмірқышқыл газының сенсоры (MH -Z16)
  • Grove - сандық жарық сенсоры
  • Grove - шаң сенсоры (PPD42NS)
  • Grove-оттегі сенсоры (ME2-O2-Ф20)
  • Топырақ ылғалдылығы мен температура сенсоры
  • LoRa LoRaWAN шлюзі - Raspberry Pi 3 бар 868 МГц жиынтығы
  • Grove - Temp & Humi және барометр сенсоры (BME280)

Бағдарламалық жасақтама және онлайн қызметтері

Microsoft Visual Studio 2015

2 -қадам: Әңгіме

Ақылды ауыл шаруашылығы - бұл дәстүрлі ауыл шаруашылығын неғұрлым ақылды ету үшін мобильді немесе компьютерлік платформалар арқылы ауылшаруашылығы өндірісін басқару үшін сенсорлар мен бағдарламалық қамтамасыз етуді қолдана отырып, Интернет заттарын дәстүрлі ауыл шаруашылығына қолдану.

Сиань Яаньның солтүстік -шығысындағы Мендинг тауында, тау жотасы жасыл теңізде батыстан шығысқа қарай созылады. Бұл 36 жастағы Дэнг үшін өте жақсы таныс көрініс, өз ұрпағының мендинг шай өндірушілерінің бірі, теңіз деңгейінен 1100 м биіктікте орналасқан 50 мм (= 3,3 га) плантациясы бар. Дэн шай қайнатушылар отбасынан шыққан, бірақ отбасылық мұраны жалғастыру оңай жұмыс емес. «Біздің шайлар жоғары сапада органикалық ортада өсіріледі, бұл оның керемет сапасын қамтамасыз етеді. Бірақ сонымен бірге өсу тығыздығы төмен, бағасы жоғары және бүршіктері біркелкі емес, бұл шай жинауды қиындатады. Сондықтан биік таулар әдетте аз өнім болып табылады және олардың құндылығы нарықта көрсетілмейді ». Соңғы екі жылда Дэнг тұтынушылардың биік тау туралы құндылығын жоғарылату үшін олардың хабардарлығын арттыруға тырысады. Және ол Seeed’s IoTea технологиясын енгізу үшін плантацияны іздейтін Фанмен кездескенде, шешімге тамаша сәйкестік табылды. Seeed IoTea шешімі шай фермерлеріне шай өсірудің дәстүрлі әдістерін өзгертпестен плантацияларды жақсы басқаруға көмектесуге және ашық алаңда плантациялардан экологиялық деректерді ұсынуға бағытталған.

Датчиктерден, түйіндерден және шлюздерден тұратын IoTea температура мен ылғалдылықты, СО2, О2, РМ және жарық әсерін қосқанда өсіру мен өндіру процесінде шайдың сапасына әсер етуі мүмкін факторлардың нақты уақыттық деректерін жинайды. Деректерді түйіндер шлюзге, соңында бұлтқа жіберетін сенсорлар арқылы жинайды және веб -беттегі соңғы тұтынушыларға қол жетімді болады.

3 -қадам: аппараттық қосылым

1 -қадам: шлюзге қосылу

Шлюз қорапта бөлек орнатылады. Жылу тарату мәселесін ескере отырып, біз 2 желдеткішті қостық. Бірі Raspberry Pi жылу таратуға арналған, екіншісі ішкі және сыртқы ауа айналымына арналған. Шлюз қорабы фермерлердің үйінде орналасқан, сондықтан оның қуат мәселесін қарастырудың қажеті жоқ.

Кескін
Кескін

2 -қадам: түйінге қосылу

Түйін деректердің терминалы болып табылады және барлық бастапқы деректер осы жерден алынады. Түйінге 6 сенсор қосылған, топырақтың ылғалдылығы мен температурасы сенсорынан басқа, біз басқа сенсорларды қалқаның қорабына саламыз.

Кескін
Кескін
Кескін
Кескін

Түйін су өткізбейтін қорапқа салынған. Түйінге жақсы қосылу үшін біз адаптер тақтасын жасаймыз. Соңында, біз осы тақтаның схемасын жүктеу сілтемесін береміз. Төменде көрсетілгендей, сенсорлардың кабельдері адаптер тақтасына терминалды блоктар арқылы қосылады. Біз сенсорлар мен желдеткішті қосу мен өшіруді басқару үшін коммутаторлық схемаларды құру үшін 3 MOS түтігін (SI2301) қолданамыз. Желдеткіш салқындату үшін қолданылады. Бізде тақтада температура сенсоры (DS18B20) орнатылған. Ол қораптың ішкі температурасын айта алады, содан кейін микроконтроллер желдеткішті қосуды шешеді. Қорғасын-қышқылды аккумулятор кернеуін өлшеу үшін кернеу бөлгіш тізбегін құру үшін біз бірнеше резисторды қолданамыз. Ақырында, біз кейінірек кеңейту мен күйін келтіру үшін тақтада 3 IIC интерфейсін және сериялық портты сақтаймыз.

Кескін
Кескін

Түйіннің электрмен жабдықтау мәселесі туралы сөйлесейік. Түйін шай плантациясына кездейсоқ орналастырылған, сондықтан электрмен жабдықтаудың дәстүрлі әдісі қолданылмайды. Күн энергиясын қолдану шешімі жақсы идея. Қазіргі уақытта нарықта көптеген шешімдер бар. Біз олардың қажеттіліктеріне сәйкес келетін біреуін таңдай аламыз. Біз таңдаған шешімде 3 бөлік бар: күн батареясы, күн зарядының реттегіші және қорғасын қышқылының батареясы. Күн энергиясын жақсы түсіру үшін біз кронштейннің жоғарғы жағына күн панелін орнатып, оның бұрышын күнге қарайтындай етіп реттейміз. Біз күн зарядының реттегішін торабы бар қорапқа қойдық. Қорапта қосымша орын жоқ болғандықтан, қорғасын қышқылды батареяны орналастыру үшін су өткізбейтін жаңа қорапты табуға тура келді.

Кескін
Кескін
Кескін
Кескін
Кескін
Кескін

4 -қадам: Бағдарламалық жасақтаманы конфигурациялау

Түйін

Бұл бөлімде біз түйіннің негізгі бағдарламалық жасақтамасын енгіземіз.

DataFormat

Шлюзге түйін жүктеген деректер:

белгісіз char Lora_data [15] = {0, 1, 2, 3,, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};

Әр деректер битінің мағынасы:

Lora_data [0]: Ауа температурасы, ℃

Lora_data [1]: ауаның ылғалдылығы, %

Lora_data [2]: Биіктігі сегіз, м

Lora_data [3]: Төменгі сегіздік биіктік

Lora_data [4]: СО2 концентрациясы жоғары сегіз, ppm

Lora_data [5]: СО2 концентрациясы төмен сегіз

Lora_data [6]: шаң концентрациясы жоғары сегіз, дана/0.01cf

Lora_data [7]: Шаңның концентрациясы төмен сегіз

Lora_data [8]: Жарықтың қарқындылығы жоғары сегіз, люкс

Lora_data [9]: Жарықтың қарқындылығы төмен сегіз

Lora_data [10]: O2 концентрациясы, % (шикі деректер 1000 -ға бөлінеді)

Lora_data [11]: Топырақ температурасы, ℃

Lora_data [12]: Топырақтың ылғалдылығы, %

Lora_data [13]: Батарея кернеуі, т

Lora_data [14]: сенсорлардың қате коды

Қате коды:

Lora_data [14] = [бит7, бит6, бит5, бит4, бит3, бит2, бит1, бит0]

Әр биттің мағынасы:

бит 0: 1 ---- Temp & Humi & Barometer Sensor (BME280) қатесі

бит 1: 1 ---- Көмірқышқыл газының сенсоры (MH-Z16) қатесі

бит 2: 1 ---- Шаң датчигі, PPD42NS қатесі

бит 3: 1 ---- Сандық жарық сенсорының қатесі

бит 4: 1 ---- Оттегі сенсоры (ME2-O2-Ф20) қатесі

бит 5: 1 ---- Топырақ ылғалдылығы мен температура сенсорының қателігі

бит 6: резервтелген

бит 7: резервтелген

Біз Error_code_transform.exe жасадық, оны ашамыз және он алтылық жүйеде қате кодын енгіземіз, сіз қай сенсордың қате екенін тез білесіз. Жүктеу сілтемесі осы мақаланың соңында.

Параметрлерді реттеу: а) Мәліметтерді беру циклы

// seeedtea.ino

#анықтайтын интервал_ уақыты 600 // секунд

Деректерді беру циклін өзгерту үшін бұл параметрді өзгертуге болады. Әр циклде деректерді жинауға шамамен 1 минут кетеді. Сондықтан бұл мәнді 60 секундтан аз өзгерту ұсынылмайды.

б) Шаң датчигінің қыздыру уақыты

//seeedtea.ino

#30000 Алдын ала қыздыру уақытын анықтаңыз // DustSensor қыздыру уақыты, миллисекунд //Dust_other.cpp #30000 уақытты анықтайды // іріктеу уақыты30с

в) кернеу коэффициенті

//POWER_Ctrl.cpp

#defineBattery_oeefficient 0.159864 // ADC мәні × Battery_effeff = батарея_күштігі

Бұл екі параметр кернеуді бөлу схемасына негізделген.

d) Желдеткіштің ашылу температурасының табалдырығы

//POWER_Ctrl.cpp

#defineFan_start_temp 45 // температура табалдырығы #500Fan_start_light жарығы // жарық қарқындылығы

Егер нақты температура шекті мәннен асып кетсе, желдеткіш суыта бастайды.

д) O2 датчигінің инициализация параметрі

// Оттегі.cpp

#анықтауO2_ пайызы 208.00 //20.8%

f) макро коммутатор

//seeedtea.ino

#defineLORA_RUN // Пікірден кейін Лораны инициализациялау және деректерді беру тоқтатылады #defineSENSOR_RUN // Пікірден кейін экстернальсорлар жұмысын тоқтатады //POWER_Ctrl.cpp #defineFAN_ON // Тек форестинг, Практикалық қосымшаны түсіндіру қажет /**** *** DS18B20 басқару режимі **********************/ #defineSlower_Mode // Баяу режим температураны қосады. Пікір қалдыру - бұл жылдам режим

g) Пинсті картаға түсіру

D2: жарықдиодты индикатор және сыртқы қалпына келтіру микроконтроллеріIIC: SCL және SDA

// Шаңды_т.б

#defineDust_pin 3 // Шаң датчигі //CO2.cpp #defineCO2_serial Serial1 // hardwareserial портын қолданыңыз (D0 & D1) //seeedtea.ino #definedataPin 6 // Топырақ деректерінің түйіні #defineclockPin 7 // Топырақ сағатының түйреуіші // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Желдеткіш #defineAir_CtrlPin 10 // торға салынған датчиктерді басқару түйреуіші #defineSoil_CtrlPin 11 // Топырақ ылғалдылығы мен температура сенсорының қосқышының штыры #аккумуляторлық_көздік_көзі А2 / /Күн батареясының кернеуін өлшеңіз // Оттегі.h #анықтаңызO2_pin A1 // O2 сенсоры

h) Күзетші таймері

Күзетші таймері жүйенің жұмыс күйін бақылау үшін қолданылады. Жүйе қалыпты жұмыс істемесе, түйін ұзақ уақыт бойы үздіксіз жұмыс істей алатындай етіп қалпына келтіріледі.

Анықталатын кітапхана:

  • Adafruit_SleepyDog.h жобаға қосылды
  • Adafruit_ASFcore-master.zip жоба қалтасына салынған және оны Arduino IDE-ге қолмен қосу қажет.

Қатысты функциялар:

Күзетшіні қосу

int WatchdogSAMD:: қосу (int maxPeriodMS, bool isForSleep)

Енгізу параметрлері:

Int maxPeriodMS: күту уақыты миллисекундтарда. Рұқсат етілген максимум - 16000 миллисекунд.

қайтару мәні:

Int түрі, нақты күту уақытын қайтарыңыз

Бақылауды қалпына келтіру

void WatchdogSAMD:: reset ()

«Итті тамақтандыру» деп аталатын күзетші таймерін қалпына келтіру үшін осы функцияға қоңырау шалыңыз. Қалпына келтірусіз күту уақытынан асып кету түйіннің қайта жүктелуіне әкеледі.

Күзетшіні тоқтату

void WatchdogSAMD:: disable ()

Шлюз

Бұл бөлімде біз Loriot серверіне қалай қосылуға болатынын айтамыз.

1 -қадам: Loriot Server шлюзін тіркеу

а) Жаңа пайдаланушыға алдымен тіркелгі қажет, тіркеу мекенжайын басыңыз. Тіркелу үшін Пайдаланушы атын, Құпия сөзді және электрондық пошта мекенжайын енгізіңіз, тіркеуден кейін сізге электрондық хат жіберіледі, оны іске қосу үшін электрондық поштаның нұсқауларын орындаңыз.

b) Сәтті белсендіруден кейін, кіру үшін осында басыңыз. Әдепкі деңгей - «Қауымдастық желісі», ол 1 шлюзді (RHF2S001) және 10 түйінді қолдайды.

в) Бақылау тақтасына кіріңіз -> Шлюз, шлюзді қосу үшін шлюзді қосу түймесін басыңыз.

d) Raspberry Pi 3 таңдаңыз

e) төмендегідей орнатыңыз:

  • Радио фронды -> RHF2S001 868/915 МГц (SX1257)
  • АВТОБУС -> SPI

f) RHF2S001 MAC мекенжайын b8: 27: eb: xx: xx: xx форматында толтырыңыз. Сондай -ақ, шлюздің орналасқан жері туралы ақпаратты енгізіңіз.

g) Тіркеуді аяқтау үшін «Raspberry Pi шлюзін тіркеу» түймесін басыңыз.

Кескін
Кескін

h) Конфигурация бетіне кіру үшін тіркелген шлюзді нұқыңыз, «Жиіліктер жоспарын» қолмен ауыстырыңыз, сіздің жоспарыңыз мұнда RHF2S001 түрінің түрімен анықталады, қол жетімді жоспар CN470, CN473, CN434, CN780, EU868, таңдалғаннан кейін бетті жаңартыңыз. дәл арнаны алу үшін. Бұл викиде біз EU868 таңдаймыз.

i) Терминалдағы пәрменді іске қосыңыз:

cd /home/rxhf/loriot/1.0.2

sudo systemctl stop pktfwd sudo gwrst wget > -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io

j) Finish gateway registration. You will see the gateway is Connected now. Next is to register node.

Кескін
Кескін

2 -қадам: Loriot Server Connect Node құрылғысы

а) Қол жетімді шлюз арналарын алыңыз

Ағымдағы шлюз арналарын бақылау тақтасы -> шлюз -> сіздің шлюзден алуға болады, сіз төмендегі суреттегідей қол жетімді арналарды көре аласыз.

Кескін
Кескін

b) Seeeduino LoRAWAN GPS (RHF3M076) конфигурациясы

ArduinoIDE сериялық мониторын ашыңыз, төмендегі пәрменді түртіңіз.

Seeeduino_LoRAWAN GPS -тің әдепкі арнасын растау үшін сізде 3 арна болады. Егер қол жетімді арна болмаса, Seeeduino_LoRAWAN арналарын төмендегі пәрмен бойынша өзгертуге болады.

+ch = 0 кезінде, 868.1

кезінде+ch = 1, 868,3 кезінде+ch = 2, 868,5

Содан кейін тексеру үшін+ch пернесін қайта пайдалануға болады.

c) Seeeduino_LoRAWAN GPS -ті ABP NodeLog ретінде Loriot серверіне қосыңыз, Басқару тақтасы -> Қолданбалар -> SimpleApp түймесін басыңыз. Элементтердің астында ABP импорттауды енгізу түймесін басыңыз

  • DevAddr: Seeeduino_LoRAWAN GPS «AT+ID» пәрмені арқылы өтеді (Ескертпе: Loriot қос нүктелі қосқышты қолдамайды, қолмен жою қажет)
  • FCntUp: Setto 1
  • FCntDn: Setto 1
  • NWKSKEY: әдепкі мән 2B7E151628AED2A6ABF7158809CF4F3C
  • APPSKEY: әдепкі мән 2B7E151628AED2A6ABF7158809CF4F3C
  • EUI: DEVEUI, Seeeduino_LoRAWAN GPS «AT+ID» пәрмені арқылы өтеді
Кескін
Кескін

Құрылғыны импорттауды аяқтау үшін Құрылғыны импорттау түймесін басыңыз. Енді бақылау тақтасы -> қосымшалар -> SampleApp таңдаңыз, сіз жаңа қосылған ABP түйінін көресіз.

Кескін
Кескін

d) Seeeduino_LoRAWAN деректерін жіберу

НАЗАР АУДАРЫҢЫЗ! Бұл жай ғана сынақ.

ArduinoIDE сериялық мониторына оралыңыз, пәрменді жіберіңіз:

AT+CMSGHEX = «0a 0b 0c 0d 0e»

Содан кейін Бақылау тақтасы -> Қолданбалар -> SampleApp -> Құрылғы тармағына өтіңіз, EUI немесе DevAddr түйіндік құрылғысын басыңыз, сіз мұнда жіберген деректерді таба аласыз.

Кескін
Кескін

Толық ақпарат алу үшін мына уикиге жүгініңіз.

5 -қадам: Сайт құрылысы

Қатысты құралдар

  • виртуалды желі
  • Python3
  • Gunicorn
  • Жетекші
  • Nginx
  • MySQL

Біз CentOS7 -ді тестілеу ортасы ретінде қолданамыз

виртуалды желі

Python3 автономды өндіріс ортасын құру үшін virtualenv пайдаланыңыз

а) орнату

pip virtualalv орнатыңыз

б) python3 виртуалды ортасын құру

virtualenv -p python3 иотасы

в) виртуалды ортаны іске қосыңыз және iotea каталогына кіріңіз

бастапқы қоқыс жәшігі/белсендіру

г) қоршаған орта

өшіру

Python3

а) орнату

yum epel-release орнатыңыз

python36 орнатыңыз

б) тәуелді кітапхананы PyMySQL, DBUtils, Flask, websocket-client, configparser орнату

pip pymysql орнатыңыз

pip install dbutils pip install flask pip install websocket-client pip install configparser

Gunicorn

а) орнату (Python3 ортасында)

пистолетпен мылтық орнатыңыз

б) колбаның жобасын іске қосыңыз (iotea жобасының каталогында)

gunicorn -w 5 -b 0.0.0.0:5000 қолданба: қолданба

в) loriot деректерін алу үшін webcocket-clint іске қосыңыз

gunicorn loriot: қосымша

г) Gunicorn технологиялық ағашын қарау

pstree -ap | grep gunicorn

Жетекші

а) орнату (түпкі пайдаланушы)

pip орнату жөніндегі қадағалаушы

б) конфигурациялық файлдарды құру

echo_supervisord_conf> /etc/supervisord.conf

в) каталог құру және каталог конфигурациясын енгізу

mkdir -p /etc/supervisor/conf.d

/Etc/supervisord.conf өңдеңіз және файлдың соңындағы [қосу] астындағы файлдар өрісін өзгертіңіз.

';' Жою қажет екенін ескеріңіз. осы екі жолдың алдында, бұл түсініктеме символы.

[қамтиды]

Файлдар = /etc/supervisor/conf.d/*.conf

/Etc/supervisor/conf.d/ енгізуді білдіреді. Келесі конфигурация файлы технологиялық конфигурация файлы ретінде пайдаланылады (бақылаушы бақылайды).

d) кіріс конфигурациясы (iotea каталогында)

cp iotea.conf /etc/supervisor/conf.d/

cp loriot.conf /etc/supervisor/conf.d/

д) ашық йота суы

superviosrctl reload #конфигурация файлын қайта жүктейді

superviosrctl start loriot #open loriot мәліметтерді қабылдау

f) басқа ортақ операциялар

supervisorctl reload # конфигурация файлын қайта жүктейді

supervisorctl update supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl анықтама # қосымша команданы қарау

Nginx

а) орнату

yum install -y nginx

б) конфигурация

cp NginxIotea.conf /etc/nginx/conf.d/

в) Nginx іске қосыңыз

systemctl nginx.service бастау

MySQL

а) байланысты параметрлер

user = 'root'

passwd = '1234' db = 'iotea' порт = 3306

б) файл

iotea_iotea.sql

в) конфигурация файлы

db.ini

Ұсынылған: