Агуулгын хүснэгт:

LoRa IoTea шийдлийг үзнэ үү: 5 алхам
LoRa IoTea шийдлийг үзнэ үү: 5 алхам

Видео: LoRa IoTea шийдлийг үзнэ үү: 5 алхам

Видео: LoRa IoTea шийдлийг үзнэ үү: 5 алхам
Видео: Double Your Stable Diffusion Inference Speed with RTX Acceleration TensorRT: A Comprehensive Guide 2024, Долдугаар сарын
Anonim
LoRa IoTea шийдлийг үзнэ үү
LoRa IoTea шийдлийг үзнэ үү

Цайны тариалангийн талбайд мэдээлэл цуглуулах автомат систем. Энэ нь хөдөө аж ахуйн ухаалаг мэдээлэл цуглуулах нэг хэсэг юм.

Алхам 1: Энэхүү төсөлд ашигласан зүйлс

Тоног төхөөрөмжийн бүрэлдэхүүн хэсгүүд

  • Гроув - Нүүрстөрөгчийн давхар ислийн мэдрэгч (MH -Z16)
  • Гроув - Дижитал гэрэл мэдрэгч
  • Grove - Тоосны мэдрэгч (PPD42NS)
  • Гроув-хүчилтөрөгчийн мэдрэгч (ME2-O2-Ф20)
  • Хөрсний чийг ба температур мэдрэгч
  • LoRa LoRaWAN гарц - Raspberry Pi 3 бүхий 868MHz багц
  • Grove - Temp & Humi & Barometer Sensor (BME280)

Програм хангамж, онлайн үйлчилгээ

Microsoft Visual Studio 2015

Алхам 2: Түүх

Ухаалаг хөдөө аж ахуй бол эд зүйлсийн интернет технологийг уламжлалт хөдөө аж ахуйд ашиглах, мэдрэгч, програм хангамж ашиглан хөдөө аж ахуйн үйлдвэрлэлийг гар утас эсвэл компьютерийн платформ ашиглан хянах, уламжлалт хөдөө аж ахуйг илүү "ухаалаг" болгох явдал юм.

Сычуань мужийн Яань мужийн зүүн хойд хэсэгт орших Мэндинг ууланд уулын нуруу нь баруунаас зүүн тийш ногоон тэнгисээр урсдаг. Далайн түвшнээс дээш 1100 метрийн өндөрт байрлах 50мг (= 3.3 га) талбай бүхий Мэндингийн цай үйлдвэрлэгч цөөхөн хүмүүсийн нэг болох 36 настай Дэнгийн хувьд энэ бол хамгийн танил үзэгдэл юм. Дэн цай үйлдвэрлэгчдийн гэр бүлээс гаралтай боловч гэр бүлийнхээ өв залгамжлалыг авч явах нь тийм ч амар ажил биш юм. “Манай цай маш сайн чанарыг хангахын тулд органик орчинд өндөр өндөрт ургадаг. Гэхдээ үүнтэй зэрэгцэн ургалтын нягт бага, өртөг өндөр, нахиалах нь жигд бус байгаа нь цай хураахад хэцүү болгодог. Тийм ч учраас өндөр уулын цай нь бага ургац бөгөөд үнэ цэнийг нь зах зээлд тусгадаггүй. Дэн сүүлийн хоёр жилийн турш өндөр үнэ бүхий цайны үнэ цэнийг сурталчлахын тулд хэрэглэгчдийн мэдлэгийг дээшлүүлэхийг хичээж ирсэн. Тэрээр Seeed -ийн IoTea технологийг хэрэгжүүлэх тариалангийн талбай хайж буй Фантай уулзахдаа шийдэлд төгс тохирсон байна. Seeed IoTea шийдэл нь цай тариалагчдад цай тариалах уламжлалт арга барилаа өөрчлөхгүйгээр таримал ургамлыг илүү сайн удирдан зохион байгуулах, тариалангийн орчны бодит мэдээллийг нээлттэй тавцан дээр танилцуулах зорилготой юм.

Мэдрэгч, зангилаа, гарцаас бүрдсэн IoTea нь тариалалт, үйлдвэрлэлийн явцад температур, чийгшил, CO2, O2, PM, гэрэлд өртөх зэрэг цайны чанарт нөлөөлж болох хүчин зүйлийн бодит мэдээллийг цуглуулдаг. Мэдээллийг мэдрэгчээр цуглуулж, зангилаагаар гарц руу, эцэст нь үүл рүү илгээдэг бөгөөд вэбсайт дээрх эцсийн үйлчлүүлэгчдэд хүртээмжтэй болгодог.

Алхам 3: Тоног төхөөрөмжийн холболт

Алхам 1: Гарцын холболт

Гарцыг хайрцагт тусад нь суулгасан болно. Дулаан алдалтын асуудлыг анхаарч үзээд бид 2 фен нэмсэн. Нэг нь Raspberry Pi -ийн дулаан ялгаруулахад зориулагдсан, нөгөө нь дотоод болон гадаад агаарын солилцоонд зориулагдсан. Гарцны хайрцгийг тариачны гэрт байрлуулсан тул цахилгаан хангамжийн асуудлыг авч үзэх шаардлагагүй болно.

Зураг
Зураг

Алхам 2: зангилааны холболт

Зангилаа нь өгөгдлийн төгсгөл бөгөөд бүх анхны өгөгдлийг эндээс авдаг. Зангилаанд холбогдсон 6 мэдрэгч байдаг бөгөөд хөрсний чийг ба температур мэдрэгчээс гадна бусад мэдрэгчийг халхавчны хайрцагт хийдэг.

Зураг
Зураг
Зураг
Зураг

Зангилааг ус үл нэвтрэх хайрцагт байрлуулна. Зангилаатай илүү сайн холбогдохын тулд бид адаптер самбар хийдэг. Эцэст нь бид энэ самбарын схемийг татаж авах линкийг өгөх болно. Доор үзүүлсэн шиг мэдрэгчийн кабелийг адаптерийн самбар дээр терминал блокоор залгасан болно. Бид 3 MOS хоолой (SI2301) ашиглан мэдрэгч ба сэнсийг асаах, унтраахыг хянах унтраалгын хэлхээг бий болгодог. Фенийг хөргөхөд ашигладаг. Бид самбар дээр температур мэдрэгч (DS18B20) суурилуулсан байна. Энэ нь хайрцгийн дотоод температурыг хэлж өгч, дараа нь микроконтроллер сэнс асаах эсэхээ шийддэг. Бид хар тугалганы хүчлийн батерейны хүчдэлийг хэмжих хэд хэдэн резистор ашиглан хүчдэл хуваагч хэлхээ хийдэг. Эцэст нь бид дараа нь өргөтгөх, дибаг хийх зорилгоор 3 IIC интерфэйс болон самбар дээрх цуваа портыг нөөцөлсөн.

Зураг
Зураг

Зангилааны цахилгаан хангамжийн асуудлын талаар ярилцъя. Зангилааг цайны талбайд санамсаргүй байдлаар байрлуулсан тул цахилгаан хангамжийн уламжлалт аргыг ашиглахаа больсон. Нарны эрчим хүчний шийдлийг ашиглах нь сайн санаа юм. Одоогийн байдлаар зах зээл дээр санал болгож буй олон шийдэл байдаг. Бид өөрсдийн хэрэгцээнд нийцсэн нэгийг нь сонгож болно. Бидний сонгосон шийдэлд нарны зай, нарны цэнэг хянагч, хар тугалганы хүчлийн батерей гэсэн 3 хэсэг багтсан болно. Нарны энергийг илүү сайн олж авахын тулд бид нарны хавтанг хаалтны дээд талд тавьж, өнцгийг нь нар руу харж байгаа эсэхийг нь тохируулна. Бид нарны цэнэг хянагчийг зангилаа бүхий нэг хайрцагт байрлуулсан. Хайрцаг дотор нэмэлт зай байхгүй тул хар тугалганы хүчлийн батерейг байрлуулахын тулд ус нэвтэрдэггүй шинэ хайрцаг хайх шаардлагатай болсон.

Зураг
Зураг
Зураг
Зураг
Зураг
Зураг

Алхам 4: Програм хангамжийн тохиргоо

Зангилаа

Энэ хэсэгт бид зангилааны програм хангамжийн үндсэн тохиргоог танилцуулах болно.

DataFormat

Гарц руу зангилаанаас байршуулсан өгөгдөл:

гарын үсэггүй тэмдэгт 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]: CO2 -ийн концентраци өндөр найман, ppm

Lora_data [5]: CO2 -ийн концентраци бага найман

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]: Зайны хүчдэл, v

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 -ийг нээж, алдааны кодыг арван зургаат оруулахад та ямар мэдрэгч алдаатай болохыг хурдан мэдэх болно. Татаж авах линк нь энэ нийтлэлийн төгсгөлд байна.

Параметрийн тохируулга: a) Мэдээлэл дамжуулах мөчлөг

// seeedtea.ino

#тодорхойлох интервал_ цаг 600 // секунд

Өгөгдөл дамжуулах мөчлөгийг өөрчлөхийн тулд энэ параметрийг өөрчилж болно. Цикл бүрт өгөгдөл цуглуулахад 1 минут орчим болдог. Тиймээс энэ утгыг 60 секундээс бага болгохыг зөвлөдөггүй.

б) Тоосны мэдрэгчийг халаах хугацаа

//seeedtea.ino

#DepinePreheat_time 30000 // DustSensor-ийн дулаарах хугацаа, миллисонд //Dust_other.cpp #30000 цагийг тодорхойлох

в) Хүчдэлийн коэффициент

//POWER_Ctrl.cpp

#defineBattery_coefficient 0.159864 // ADC утга × Battery_coefficient = battery_voltage

Эдгээр хоёр параметрийг хүчдэл хуваагчийн хэлхээнд үндэслэн тооцоолно.

d) Сэнсний нээлтийн температурын босго

//POWER_Ctrl.cpp

#тодорхойлохFan_start_temp 45 // temperaturethreshold #defineFan_start_light 500 // гэрлийн эрч хүч

Бодит температур босго давсан тохиолдолд сэнс хөрч эхэлнэ.

e) O2 мэдрэгчийг эхлүүлэх параметр

// хүчилтөрөгч.cpp

#тодорхойлохO2_хувь 208.00 //20.8%

f) Макро шилжүүлэгч

//seeedtea.ino

#defineLORA_RUN // Тайлбар хийсний дараа Лора эхлүүлэх ба өгөгдөл дамжуулах нь зогсох болно #DefineSENSOR_RUN // Тайлбарын дараа гадны мэдрэгчид ажиллахаа болино //POWER_Ctrl.cpp #Fef_ON_Fan_ON // Зөвхөн туршилт хийх, Практик програмыг тайлбарлах шаардлагатай /**** *** DS18B20 хяналтын горим **********************/ #defineSlower_Mode // Удаан горим нь температурыг нэгтгэдэг. Сэтгэгдэл бичих нь хурдан горим юм

g) Пин зураглал

D2: LED үзүүлэлт ба гадаад тохиргооны микроконтроллерIIC: SCL ба SDA

// Тоос_нөгөө.h

#defineDust_pin 3 // Dust sensor //CO2.cpp #defineCO2_serial Serial1 // hardwareserial port (D0 & D1) //seeedtea.ino #definedataPin 6 // Хөрсний өгөгдлийн зүү #defineclockPin 7 // Хөрсний цагны зүү // POWER_Ctrl. h #defineDS18B20_pin 8 // DS18B20 #defineFan_pin 9 // Fan #defineAir_CtrlPin 10 // Нүхний хайрцагт байрлуулсан мэдрэгчийг хянах зүү #defineSoil_CtrlPin 11 // Хөрсний чийг ба температур мэдрэгчийн унтраалгын зүү #Аккумуляторын зайн_зураг_A2 / /Нарны хавтангийн хүчдэлийг хэмжих // Хүчилтөрөгч.h #тодорхойлохO2_pin A1 // O2 мэдрэгч

h) Watchdog таймер

Watchdog таймер нь системийн ажиллаж буй байдлыг хянахад ашиглагддаг. Систем хэвийн бус ажиллаж байх үед зангилаа дахин тохируулагдах бөгөөд ингэснээр удаан хугацаанд тасралтгүй ажиллах боломжтой болно.

Лавлах номын сан:

  • 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 Gateway бүртгэл

a) Шинэ хэрэглэгч эхлээд данс бүртгүүлэх шаардлагатай бөгөөд бүртгэлийн хаягийг дарна уу. Бүртгүүлэхийн тулд хэрэглэгчийн нэр, нууц үг, имэйл хаягаа бөглөнө үү, бүртгүүлсний дараа танд имэйл илгээх болно, идэвхжүүлэхийн тулд имэйл дэх зааврыг дагана уу.

b) Идэвхжүүлсний дараа энд дарж нэвтэрнэ үү. Анхдагч түвшин нь "Олон нийтийн сүлжээ" бөгөөд энэ нь 1 гарц (RHF2S001) болон 10 зангилааг дэмждэг.

c) Хяналтын самбар -> Гарц руу ороод Gateway нэмэх дээр дарж Gateway -ийг нэмнэ үү.

d) Raspberry Pi 3 -ийг сонгоно уу

e) Дараах байдлаар тохируулна уу.

  • Радио урд хэсэг -> RHF2S001 868/915 МГц (SX1257)
  • АВТОБУС -> ТХН

f) RHF2S001 -ийн MAC хаягийг b8: 27: eb: xx: xx: xx форматаар бөглөнө үү. Мөн Gateway байршлын мэдээллийг оруулна уу.

g) Бүртгэлийг дуусгахын тулд "Raspberry Pi гарцыг бүртгүүлэх" дээр дарна уу.

Зураг
Зураг

h) Бүртгэгдсэн гарц дээр дарж тохиргооны хуудас руу ороод "Давтамжийн төлөвлөгөө" -г гараар солино уу, таны төлөвлөгөөг эндээс RHF2S001 төрлийн төрлөөр сонгоно, боломжтой төлөвлөгөө нь CN470, CN473, CN434, CN780, EU868, сонгогдсоны дараа хуудсыг сэргээнэ үү. яг суваг авахын тулд. Энэ викид бид EU868 -ийг сонгоно.

i) Шаваасны терминал дахь тушаалыг ажиллуулна уу:

cd /home/rxhf/loriot/1.0.2

sudo systemctl зогсоох 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 төхөөрөмж

a) Гарцын сувгийг авах

Одоогийн гарцын сувгуудыг Dashboard -> Gateway -> Your Gateway дээрээс авах боломжтой бөгөөд та доорх зураг дээрх байгаа сувгуудыг харж болно.

Зураг
Зураг

b) Seeeduino LoRAWAN GPS (RHF3M076) тохиргоо

ArduinoIDE -ийн цуваа дэлгэцийг нээгээд доорх тушаалыг дарна уу.

+ch -д

Seeeduino_LoRAWAN GPS -ийн үндсэн сувгийг баталгаажуулахын тулд та 3 суваг авах болно. Хэрэв боломжтой суваг байхгүй бол та Seeeduino_LoRAWAN -ийн сувгуудыг доорх командыг ашиглан өөрчилж болно.

үед+ch = 0, 868.1

үед+ch = 1, 868.3 үед+ch = 2, 868.5

Дараа нь дахин шалгахын тулд+ch дарна уу.

c) Seeeduino_LoRAWAN GPS -ийг Loriot сервер дээр ABP NodeLog болгон нэмээд Dash Board -> Applications -> 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" командыг авдаг.
Зураг
Зураг

Төхөөрөмж импортлох товчийг дарж төхөөрөмжийг импорт хийж дуусгана уу. Одоо Dashboard-> Applications -> 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 virtualenv суулгана уу

б) python3 виртуал орчинг бий болгох

virtualenv -p python3 iotea

в) виртуал орчныг эхлүүлж, iotea директорыг оруулна уу

эх сав/идэвхжүүлэх

г) оршин буй орчин

идэвхгүй болгох

Python3

а) суулгах

yum суулгах epel-release

python36 суулгаарай

б) PyMySQL, DBUtils, Flask, websocket-client, configparser номын санг суулгах

pymysql -ийг pip суулгах

pip install dbutils pip install колбо pip install websocket-client pip install configparser

Gunicorn

a) суулгах (Python3 орчинд)

gunicorn -ийг суулгах

б) колбоны төслийг ажиллуулах (iotea төслийн лавлах дор)

gunicorn -w 5 -b 0.0.0.0:5000 апп: апп

в) loriot өгөгдлийг авахын тулд websocket-clint ажиллуулах

gunicorn loriot: апп

d) Gunicorn процессын модыг үзэх

pstree -ap | grep gunicorn

Удирдагч

а) суулгах (root хэрэглэгч)

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/

e) нээлттэй иота үйлчлэх

superviosrctl reload #тохиргооны файлыг дахин ачаална

superviosrctl start loriot #нээлттэй loriot өгөгдөл хүлээн авах superviosrctl start iotea #иота колбоны програмыг нээх

е) бусад нийтлэг үйл ажиллагаа

supervisorctl reload # тохиргооны файлыг дахин ачаална

supervisorctl update supervisorctl start xxx supervisorctl stop xxx supervisorctl status xxx supervisorctl help # more command үзэх

Nginx

а) суулгах

yum суулгах -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

Зөвлөмж болгож буй: