Мазмұны:
- 1 -қадам: Бұл жобада қолданылатын заттар
- 2 -қадам: Әңгіме
- 3 -қадам: аппараттық қосылым
- 4 -қадам: Бағдарламалық жасақтаманы конфигурациялау
- 5 -қадам: Сайт құрылысы
Бейне: Қаралған LoRa IoTea шешімі: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Шай плантациясында қолданылатын ақпаратты автоматты жинау жүйесі. Бұл ауылшаруашылық туралы ақпаратты жинаудың бөлігі.
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
Ұсынылған:
Қарапайым жарық диодты желілік ток реттегіші, қайта қаралған және нақтыланған: 3 қадам
Қарапайым қуат светодиодты сызықтық ток реттегіші, қайта қаралған және нақтыланған: бұл нұсқаулық Дэннің ток реттегішінің сызықтық тізбегінің қайталануы болып табылады. Оның нұсқасы, әрине, өте жақсы, бірақ түсінікті болу үшін бірдеңе жетіспейді. Бұл менің бұл мәселені шешуге тырысуым. Егер сіз Дэннің нұсқасын түсінсеңіз және жасай алсаңыз
Қаралған IoTea LoRa шешімі (1811 жаңарту): 5 қадам
Қаралған IoTea LoRa шешімі (1811 жаңарту): Интернет+ қазір танымал ұғым. Бұл жолы біз Интернет -плюс ауыл шаруашылығын пайдаланып, шайды Интернет -шайға айналдырдық
Қаралған IoTea LoRa шешімі (Azure көмегімен, 1812 жаңарту): 5 қадам
Қаралған IoTea LoRa шешімі (Azure, 1812 жаңартуы бар): Microsoft Azure - бұл қуатты және тұрақты есептеу қуатын қамтамасыз ететін бұлтты қызмет. Бұл жолы біз оған IoTea деректерін жіберуге тырыстық
Arduino жобасы: GPS қадағалау шешімі үшін RF1276 LoRa модулінің сынақ диапазоны: 9 қадам (суреттермен)
Arduino жобасы: GPS қадағалауға арналған RF1276 сынақ диапазоны LoRa модулі Шешім: Байланыс: USB - SerialNeed: Chrome браузері қажет: 1 X Arduino Mega қажеттілігі: 1 X GPS қажет: 1 X SD картасы қажет: 2 X LoRa модем RF1276 Функция: Arduino GPS мәнін жіберу негізгі базаға - Dataino Server Lora модуліндегі деректердің негізгі базасы: Ультра ұзақ қашықтық
Роботты қалай құруға болады - BeetleBot V2 (қайта қаралған): 23 қадам (суреттермен)
Роботты қалай құруға болады - BeetleBot V2 (Қайта қаралған): Бұл MythBusters стилінде қайта қаралған қоңыз роботының нұсқаулары! Мен бастапқыда қоңыз қоңызының 1 нұсқасы туралы нұсқаулық жасадым. Енді сізге осы керемет роботтың жаңа нұсқасын көрсететін уақыт келді. Бұл жаңа нұсқаны құру әлдеқайда оңай