Mundarija:

Comunicação IoT Com a Dragonboard 410C: 5 qadam
Comunicação IoT Com a Dragonboard 410C: 5 qadam

Video: Comunicação IoT Com a Dragonboard 410C: 5 qadam

Video: Comunicação IoT Com a Dragonboard 410C: 5 qadam
Video: Qualcomm launches its premium 820E embedded platform for IoT developers 2024, Iyul
Anonim
IoT Comunicação Dragonboard 410C
IoT Comunicação Dragonboard 410C

Bu, albatta, IoT -ni o'rnatish uchun juda ko'p vaqt talab qiladi. Abrir kortina, uy sharoitida, har qanday muhitda, monitorda, shuningdek, IoT uskunalari bilan jihozlangan.

Agora, "transisteres inesantes" iboralari "coisas" ni o'z ichiga oladi, bu xizmatlar, shuningdek, xizmatlar, xizmatlar, ovozli xizmatlar va boshqa xizmatlar. Buyuk bozorda "zé da água" o'yinlari katta miqdordagi bozorni sotib olish va sotish uchun zarur bo'lgan barcha ma'lumotlarni o'z ichiga oladi.

Siz "Zé da água", "ovozli aloqa", "ovozli aloqa", "ajdaho taxtasi" va "IoT" platformalaridagi eng yaxshi xizmatlardan foydalanishingiz mumkin.

1 -qadam: Sua Dragonboard 410C tayyorlang

Sua Dragonboard 410C tayyorlang
Sua Dragonboard 410C tayyorlang

Drabonboard 410C uchun shlyuzlar va nossa qurilmalari IoT protsessorlari yordamida o'rnatiladi.

Boshlang'ich, operatsion tizimni o'rnatish. GPS -ni o'rnatish, mijozlarni ro'yxatga olish uchun hech qanday vaqt talab qilinmaydi, tizimli operatsion tizim Linaro 17.04.1, shuningdek, Dragonboard 410C va 96boards -da havola qilingan.

Operatsion tizimni o'rnatish, GPIO -dan foydalanish uchun biblioteca libmraa o'rnatish, Dragonboard 410C. Qolaversa, abaixo (masalan, operatsion tizimning konsoli) operatsion tizimni boshqaradi:

Oldindan talablar

  • sudo apt-get yangilanishi
  • sudo apt-cache qidiruvi pcre
  • sudo apt-get libpcre3-dev ni o'rnating
  • sudo apt-get install git
  • sudo apt-get install cmake
  • sudo apt-get install python-dev
  • sudo apt-get install swig

O'rnatish

  • sudo git klon
  • sudo mkdir mraa/build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = O'chirilgan
  • sudo qilish
  • sudo make install

Python, biblioteca va biblioteca -ni ishlatish mumkin, bu esa ko'rsatmali, shuningdek, biblioteka uchun Python -ni eksport qilish imkonini beradi. Shunday qilib, VIM tahrirlovchisidan foydalanib, matn tahrirlovchisidan foydalaning:

  • sudo vim ~/.bashrc
  • matbuot va axborot vositalarini bosish kerak
  • hech qanday yakuniy arquivo yo'q: eksport PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find /usr /local -name mraa.py))
  • "ESC" tugmachasini bosish: "x!" e kirgizib yuboring.

Python -dan foydalanib, biblioteca -ni ishlating.

Shunday qilib, GPS -ni o'rnatish uchun dasturlar (masalan, Linaro 17.04.1 operatsion tizimida foydalanish tavsiya etiladi), hech qanday konsol yo'q, uni bajaring:

sudo apt-get gnss-gpsd gpsd gpsd-client ni o'rnating

Sinov paytida, konsolni ishga tushiring, konsol yo'q:

gpsmon - n

OBS: Internetda Drabonboard antennasi mavjud bo'lib, u har qanday holatda ham amalga oshiriladi. Ma'lumotni o'rnatish 5 yoki 10 minutdan keyin amalga oshiriladi.

Hisob -kitoblarni amalga oshirish uchun hech qanday imkoniyat yo'q, u holda apparat (lar) ning raqamli holati, shuningdek, hech qanday ma'lumot yo'q, bu sizning shaxsiy ma'lumotlaringiz. Qabul qilgichlar, tashqi antennalar, Wi-Fi va GPS-ga ulanish.

OBS: SMD, portanto va maxsus xizmatlarni sotib olish uchun zarur bo'lgan eng oddiy protseduralar.

Qachonki, tashqi antennalar bilan aloqa o'rnatilsa, Qualcomm hech qanday havolaga ega emas.

OBS: Komponentlar (kondansatörler, rezistorlar va indutorlar) Internetda joylashgan. Antennalar, SmartCore -da hech qanday ma'lumot yo'q.

Bu shlyuzni sozlashda, Wi -Fi tarmog'iga ulanish va Internetga ulanish, GSM -ni ishlatish imkoniyatiga ega. GSM tashqi qurilmalari, shuningdek, Dragonboard 410C -ni o'rnatish uchun zarur bo'lgan barcha ma'lumotlarni o'z ichiga oladi.

Bu qadam GSM (ATENCOM COM POLARIDADE) modullari orqali amalga oshirilishi mumkin.

MQTT protokoli bilan bir qatorda, Internetda ham Dragonboard 410C ulanish nuqtasi aniqlangan. Dasturiy ta'minot Mosquitto -ni ishga tushirish uchun hech qanday vositachi emas, balki hech qanday konsol yo'q:

sudo apt-get chivinni o'rnating

Bu dasturiy ta'minotni o'rnatish va o'rnatish.

Ma'lum bo'lishicha, Dragonboard 410C ulanish nuqtasi, kirish nuqtasi:

  • Clique no icone de redes no canto inferior direito
  • Ulanishlarni tahrirlash
  • "Tarmoq ulanishlari" va "Qo'shish" tugmachalari mavjud.
  • Wi-Fi-ni tanlang va "Yaratish" ni tanlang.
  • Ma'lumotni qayta sozlash, SSID -ni o'rnatish kerak
  • "Hotspot" uchun "rejim" uchun hech qanday ma'lumot yo'q.
  • "Wi-Fi xavfsizligi" ni sozlash va sozlashni o'z ichiga oladi.
  • "Saqlash" tugmachasini bosing

Dragonboard 410C ni ajratib ko'rsatish uchun, u har qanday broker va subscrever -ni tanlang.

Tayyorgarlik ishlari, bu sizning xohishingizga ko'ra.

2 -qadam: Sua Cloud API -ni tayyorlang

Bu sizning loyihangizga bog'liq emas. Nolinchi marta aniq bo'lsa, siz API -ni o'rnatishingiz yoki bulutli bulutli havola qilishingiz kerak, bu API -ni ishlatishga imkon beradi.

Ma'lumotni o'chirish uchun API -dan foydalanish mumkin, lekin men buni tushunaman. O'qituvchini to'ldiring, havola bilan bog'laning. Bu, albatta, savdo -sotiq, savdo -sotiq, o'yin -kulgi, o'yin -kulgi, o'yin -kulgi.

Boshlang'ich, API va nossa -ni aniqlab olish uchun, test sinovlari, shuningdek, har qanday turdagi platoforma yordamida amalga oshiriladi. Siz buni amalga oshirishingiz mumkin:

  • Saytga kiring, havolani bosing
  • "Ro'yxatdan o'tish" buyrug'i bilan ro'yxatdan o'tish mumkin emas
  • Ro'yxatdan o'tish paneli, boshqaruv paneli, "Yangi" va "Yangi ilova yaratish" opsiyalari.
  • Shuni esda tutish kerakki, bu noma'lum
  • Masalan, "Ilova yaratish" ni tanlang.
  • "Ilovani ochish" tugmachasini bosish bilan hech qanday ustunlik yo'q.
  • O'rnatish - bu har qanday dasturni ishga tushirish, operatsion tizimni o'rnatish va o'rnatish uchun hujjatlarni o'rnatish.
  • Bu API -ni o'rnatish va tarqatish bo'yicha ko'rsatmalarni tarqatish, ularni tarqatish

Aniqroq aytganda, siz makaronni, shuningdek, API -ni ishlatishingiz mumkin. NodeJS -ning ekspress -konstruktsiyasi, masalan, Express orqali:

  • curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
  • sudo apt -get install -y nodejs
  • sudo apt-get npm ni o'rnating
  • Linuxni tarqatish uchun ilg'or qadoqlash vositasi (APT) dan foydalaning, operatsion tizimni yoki havolani ko'ring.
  • Agora npm ekspress -generatorini o'rnatadi
  • Boshqaruv protokoli va protokoli ham Heroku com "cd _PASTA_SEU_APP_" orqali amalga oshiriladi.
  • "Npm init" tugmachasini kirgizish kerak, bu esa o'z navbatida.
  • CD../
  • tezkor _PASTA_SEU_APP_
  • CD _PASTA_SEU_APP_
  • npm o'rnatish

Oxirgi nuqtalar tayyorlanmoqda, GET e um de POST, va boshqalar:

  • Makaron "marshrutlari" ga kiring
  • abra yoki arquivo 'index.js'
  • Mana shu savollarga javob berish uchun, siz ham o'z vazifangizni bajarishingiz mumkin (POST OLISH):

router.get ('/', funktsiyasi (req, res, keyingisi) {res.setHeader ('Content-Type', 'application/json'); res.send (JSON.stringify ({msg: 'Salom API'}), null, 3));}); router.post ('/', funktsiya (req, res, keyingisi) {var msg = 'bo'sh'; agar (tipof req.body.msg! = 'aniqlanmagan') msg = req.body.msg; res.setHeader ('Content-Type', 'application/json'); res.send (JSON.stringify ({msg: msg}, null, 3));});

Siz Heroku dasturini ishga tushirish haqida o'ylaysiz:

  • tizimga kirish
  • git qo'shing.
  • git commit -am "dastlabki majburiyat"
  • git push master

Oxirgi nuqta test sinovlari. Oxirgi nuqtalarni tekshirish uchun Postman, Postman dasturlari, havolalar o'rnatiladi. Url va seu ilovasi (masalan: https://_SEU_APP_.herokuapp.com/) yoki "YUBORISH" buyrug'i bilan POSTni oling. O'tkazib yuborilgan postlar uchun:

  • "Tana" kliki
  • X-www-forma-url-kodlangan
  • "Xabar" tugmachasini bosing
  • Qimmatli qog'ozlar, men uchun eng yaxshi javob

Bu erda siz API -ni sinovdan o'tkazishingiz mumkin.

3 -qadam: GSM modulini o'rnatish

Instalando E Manipulando yoki modulli GSM
Instalando E Manipulando yoki modulli GSM
Instalando E Manipulando yoki modulli GSM
Instalando E Manipulando yoki modulli GSM

Wi -Fi tarmog'iga bog'liq bo'lmagan holda, GSM -ni ishlatib, hech qanday API -ni ishlatib bo'lmaydi, lekin hech qanday oldinga qadam qo'ymaydi.

GSM homologadosining bir xil modullari, masalan, SIM -karta protsessual protsessual protsessual protsessual protsessor va oddiy SIM -karta protokoli. Bu ishlab chiqarishni taqsimlash va tarqatish uchun eng yaxshi usul bo'lib, u hech kimga o'xshamaydi, bu erda hech qanday sayt ishlab chiqarilmaydi.

Grafika va Dragonboard 410C modullari bilan bir qatorda, bu fayllar ham ishlaydi.

"Ajdaho taxtasini tayyorlang", deb hech qanday qadam tashlamaymiz, chunki bu modullar uchun kerak. Qoidaga ko'ra, siz o'z lavozimingizni o'zgartirishingiz kerak. Quvvat konvertori DC Lm2596 3a Nf registratori de Tensão.

Ma'lumotlar almashinuvining bir qismi sifatida:

  • Ajdaho taxtasi bilan bog'laning, "Ajdaho taxtasini tayyorlang" va "IN +" tugmachalarini bosish kerak emas.
  • Dragonboard -ni yoqing va "Ajdaho taxtasini tayyorlang" va "IN -" ni o'rnatishga hech qanday qadam qo'yilmadi.
  • MUHIM: Ajdaho taxtasini to'plang, u holda siz 4,2V kuchlanishli (OUT + e OUT -) trimpotni boshqarishingiz kerak. Bu juda qimmatga tushadigan narsa. Bu GSM modulidan foydalanish uchun juda zarur. Takrorlash mumkinki, qo'shimcha qurilmalar, shuningdek, har xil turdagi uskunalar mavjud.
  • "OUT +" tugmachasini VCC -ni o'chirib qo'yish kerak, shuning uchun qadamni belgilang.
  • "O'chirish" -"GND pino yo'q", degan ma'noni anglatadi.
  • RXD modulli GSM bilan pino yo'q 5 UART 0 TX da Dragonboard, bir vaqtning o'zida qadamlarni tasvirlab beradi.
  • TXD modulli modulli GSM pino yo'q 7 UART 0 RX da Dragonboard, bu qadamni tasvirlab beradi.
  • GND modulli GSM pino 1, 2, 39 OU 40 GND va Dragonboard -ga ulanmagan bo'lsa, bu qadamni tasvirlab beradi. RX TX -dan foydalanish uchun mablag 'ajratish kerak

OBS: GSM modulli emas, balki NET yoki IPX ANT -ga ulangan antenna, shuningdek, bu qadamni tasvirlab beradi.

Agora vamos ao uchun dasturiy ta'minot. Siz biblioteca -ni o'rnatishingiz mumkin, bu esa GSM va Dragonboard 410C -ni ulash uchun mo'ljallangan.

Biblioteka va boshqa saytlar ro'yxati quyidagicha:

  • "Gsm.py" va "kengaytmali" fayllarni yig'ing.
  • Biblioteca mrra, biblioteka vaqtini aniqlab, kechiktirishga ruxsat yo'q.

mraa import qilish

Siz UART va GSM modullari bilan bir qatorda turli xil parametrlarni tanlashingiz mumkin

port = '/dev/tty96B0'

UART dasturini biblioteca saytidan o'rnating

uart = mraa. Uart (port)

GSM modulini ishlatib bo'lmaganda, bu sizning vazifangizdir

def yozish (msg):

uart.write (bytearray (str (msg)+'\ n', 'utf-8'))

Modulli GSM -ga ulanish uchun pastadir

while True: r = uart.read (128) if r! = '': print (r.decode ('UTF-8')) i = str (input ()) write (i) time.sleep (0.5)

  • Quvvat va konsolni saqlang
  • Arquivo -ni bajaring

python gsm.py

"AT" raqamini tanlang va "OK" tugmachasini bosing

AT - raqamli aloqa operatorlari AT - raqamli havolalar - bu havola - bu sizning vazifalaringiz, APN va boshqa API -lardan foydalanish.

Boshlang'ich funktsiya:

def ulanish ():

time.sleep (0.5) yozish ("AT") time.sleep (0.5) write ('AT+CREG = 1') time.sleep (0.5) write ('AT+COPS = 2') time.sleep (0.5) yozish ('AT+SAPBR = 3, 1, "Contype", "GPRS"') time.sleep (0.5) yozish ('AT+SAPBR = 3, 1, "APN", "*****"') time.sleep (0.5) yozish ('AT+SAPBR = 3, 1, "USER", "*****"') time.sleep (0.5) write ('AT+SAPBR = 3, 1, "PWD"), "*****" ') vaqt. uyqu (0.5) yozish (' AT+SAPBR = 1, 1 ') vaqt. uyqu (0.5) yozish (' AT+SAPBR = 2, 1 ') vaqt. uxlash (6)

Sugiro que rada cada comanda antes de utilizar esta função minib ketdi. Segue algumas observações sobre estes comandos:

  • AT+COPS -ni bir -biriga bog'lab qo'yish kerak bo'lsa, AT+COPS -ni ishga tushirish kerakmi, nima qilish kerak? AT_COPS = nima bilan bog'liq?
  • Sim -karta bilan bog'liq bo'lgan APN -ni aniqlashda ham, APN -dan foydalanish uchun ham ma'lumotni sotib olish mumkin.
  • Qayta tiklaning

Nossa API -ni ishga tushirish uchun dasturlar:

def yuborish (p, m, d = ''):

write ('AT+HTTPINIT') time.sleep (0.5) write ('AT+HTTPSSL = 1') time.sleep (0.5) write ('AT+HTTPPARA = "CID", 1') time.sleep (0.5) write ('AT+HTTPPARA = "URL", "_URL_APP_HEROKU _/'+p+'"') time.sleep (0.5) yozish ('AT+HTTPPARA = "USERDATA", "Avtorizatsiya: Tashuvchi ******** ********* / r / n "') time.sleep (0.5) if m ==' Get": write ('AT+HTTPACTION = 0') else: write ('AT+HTTPPARA) = "CONTENT", "application/x-www-form-urlencoded" ') time.sleep (0.5) write (' AT+HTTPDATA = '+str (len (d))+', 10000 ') time.sleep (0.5) yozish (str (t)) time.sleep (10) write ('AT+HTTPACTION = 1') time.sleep (6) write ('AT+HTTPTERM')

Algumasni kuzatish mumkin:

  • 3 parametrni qaytarish funktsiyasi. API -ni ishga tushirish uchun "p" ni tanlang va "ap" (GET/POST/…) va "GET" uchun eng muhim vazifalarni bajaring.
  • "AT+HTTPS" buyrug'i ixtiyoriy, SSL -ni ishlatmang.
  • So'rovlar satrlari formatlanmagan (masalan: msg = ola+dragonboard & arg2 = teste va …)
  • "AT+HTTPPARA =" USERDATA … "ixtiyoriy, agar kerak bo'lsa, sarlavhani belgilash kerak emas.

Ma'lum bo'lishicha, bu sizning shaxsiy hayotingiz, shaxsiy hayotingiz va shaxsiy hayotingiz uchun zarurdir.

SIM -kartani tanlashda, GSM texnologiyasi va texnologiyasi GSM texnologiyasi, SIM -karta bilan ishlash, IoT bilan aloqa o'rnatish, shuningdek, Internet -kartalar bilan ishlash, operatsion tizimni o'rnatish uchun javob beradi.

Dragonboard 410C ni o'rnatish va o'rnatishning eng oson usuli - bu tizimni o'rnatish.

4 -qadam: Komunikarni ajdaho taxtasiga tayyorlang

Ajdaho taxtasi uchun qulayliklar yaratildi
Ajdaho taxtasi uchun qulayliklar yaratildi

Nestem, NODEMCU ESP8266 ESP-12 prototipini ishlatadi, masalan. Protestipagemning eng yaxshi vazifasi - bu protseduralar, o'yinlar, protokollar, shuningdek, hech qanday aniqlik yo'qligi uchun qo'shimcha qurilmalar. Bu Wi -Fi tarmog'iga ulanishning eng oson usuli hisoblanadi.

Dragonboard 410C, nossa comunicarmos va 2 biblioteka uchun aniq ma'lumotlar:

  • ESP8266WiFi> biblioteka va boshqa ma'lumotlar ro'yxati
  • PubSubClient> MQTT brokerlari bilan biblioteka bo'yicha maslahatlar

Ma'lum bo'lishicha, Wi-Fi brokerining aniq ta'rifi, Dragonboard 410C va nossa:

  • const char* SSID = "_REDE_DRAGONBOARD_"; // Hotspot yoki Dragonboard -ning aniq ta'rifi
  • const char* PASSWORD = ""; // "Hotspot" ni sozlashda hech qanday qiyinchilik yo'q
  • const char* BROKER = "_IP_DRAGONBOARD_"; // Dragonboard -ni o'chirish yoki o'chirish uchun "ip -a" ni bajaring

MQTT mijozlari uchun Wi-Fi-ni o'rnatish jarayoni quyidagicha:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

O'rnatish, WIFI va MQTT -ni o'rnatish:

  • WiFi.begin (SSID, PASSWORD);
  • MQTT.setServer (BROKER, 1883);
  • MQTT.setCallback (callback_mqtt); // Caso você faça obunaga yozing

Loop yo'q, MQTT uchun hech qanday muammo yo'q:

MQTT.loop ();

WIFI va vositachilar o'rtasida hech qanday muammo bo'lmaganda, siz bu muammolarni hal qilishingiz mumkin. Qisqa vaqt ichida funxão com linhas abaixo, a chame-a na função de loop kabi:

void checkConnections () {

if (! MQTT.connected ()) while (! MQTT.connected ());

if (WiFi.status ()! = WL_CONNECTED) {WiFi.begin (SSID, PASSWORD); while (WiFi.status ()! = WL_CONNECTED);}

}

Oxirgi bosqichda, Drabonboard 410C uchun eng yaxshi dasturlar mavjud:

MQTT.publish ('_ NOME_DO_TOPICO_', "Ola Dragonboard");

Sensor va hk, masalan, uskuna va qurilmalar uchun eng yaxshi namunalar. Bu, albatta, kerak bo'lganda, siz brokerni sotib olishingiz mumkin.

Dragonboard410C va viktorinalar, python va boshqa vositachilar, shuningdek, brokerlar, bibliotekalar va bibliotekalar ham, brokerlar ham. Parollar, shuningdek, Dragonboard 410C konsoli bo'lmagan linhas abaixo sifatida bajariladi:

  • sudo apt-get python pip ni o'rnating
  • paho-mqtt ni o'rnatish

Python -ni ishlatishdan oldin, masalan, mqtt.py. Ma'lumotlar aniqlansa, ular quyidagicha ta'riflanadi:

paho.mqtt.client -ni mqttimport sys sifatida import qilish

Broker = "_IP_DRAGONBOARD_" porti = 1883 vaqti tugashi = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_""

def onConnect (mijoz, foydalanuvchi ma'lumotlari, bayroqlar, rc): client.subscribe (TopicSubscribe)

def onMessage (mijoz, foydalanuvchi ma'lumotlari, xabar): xabar = str (xabar to'lash) chop etish (xabar)

harakat qilib ko'ring: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Broker, port, timeout) client.loop_forever () tashqari: sys.exit (0)

Aloqa uchun hech qanday imkoniyat yo'q, bu "broker", "aloqa uzatish" buyrug'i bilan, "xabar berish" funktsiyasini bajaradi va "bog'lanish" xizmatiga obuna bo'lmaydi.

"Python mqtt.py" buyrug'ini bajaring, chunki siz buni amalga oshirishingiz mumkin.

Eslatib o'tamiz, onMessage -da konsol haqida ma'lumot yo'q. GSM orqali API -ni o'chirish, GSM orqali uzatish va tekshirish uchun gsm.py -ni "GSM" orqali yuborish, "GSM -ni o'rnatish" buyrug'ini bajaring.

Muhim kuzatuvlar: NODEMCU ESP8266 ESP-12, maxsus hujjatlar va havolalar bilan maslahatlashing. Qachonki, bu juda oson, lekin bu juda oddiy, lekin bu juda tez sodir bo'ladi.

5 -qadam: Finishlarni ko'rib chiqing

Oldindan sozlamalar konfiguratsiya qilinadi, bu erda IoT va undan keyin Dragonboard 410C -ni o'rnatish juda oson bo'ladi, dasturiy ta'minot dasturiy ta'minot dasturlari, dasturiy ta'minot dasturlari.. Aniqlash kerakki, hech qanday tashqi havola mavjud emas, bu API bulutli dasturiy ta'minot, shuningdek dragonboard -ning qo'shimcha qurilmalari, shuningdek, o'yin -uskunalar va dasturlarni o'rnatish uchun mo'ljallangan dasturlar.. O'yinning yakuniy bosqichi yakuniy bo'lib, u texnologiya va protseduralar talablariga javob beradi.

Bu ilovalar, masalan, xizmatlar, xizmatlar, o'yinlar, dasturlar, API -lar va boshqa ilovalar.

Tavsiya: