Оглавление:

Связь Интернета вещей с Dragonboard 410C: 5 шагов
Связь Интернета вещей с Dragonboard 410C: 5 шагов

Видео: Связь Интернета вещей с Dragonboard 410C: 5 шагов

Видео: Связь Интернета вещей с Dragonboard 410C: 5 шагов
Видео: «Сомневаешься, на чем начать проект? Выбирай .NET!» Артем Аралов, DataArt. 2024, Июль
Anonim
Связь IoT с Dragonboard 410C
Связь IoT с Dragonboard 410C

É bastante comum desenvolver ou, até mesmo, comprar um produto IoT for a sua casa. Abrir uma cortina, ligar uma tomada, ajustar a temperatura de um ambiente, monitoramento de segurança, entre outros beneícios de equipamentos IoT.

Agora, seria interessante transformar esses alertas das "coisas" da sua casa, em solicitações de serviço, e ainda melhor, em serviços que voiceê conhece e que já está acostumado. O comerciante "zé da água" não tem condições de entrar num grande marketplace для продажи и суа água e tão pouco ter recursos para adquirir e manter um sistema de pedidos.

Для того, чтобы использовать сервисы como o do seu 'Zé da água', que voiceê semper confiou, será mostrado como montar a base de uma plataforma IoT com a dragonboard, para resolver essa comunicação.

Шаг 1. Подготовьте Sua Dragonboard 410C

Подготовьте Sua Dragonboard 410C
Подготовьте Sua Dragonboard 410C

Neste passo vamos prepara a nossa Drabonboard 410C for se tornar or gateway da nossa estrutura IoT dentro da sua casa.

Primeiramente, vamos instalar um sistema operacional na placa. Вы можете использовать локализацию GPS, добавлять клиентов или клиентов, не регистрируясь, устанавливать операционную систему Linaro 17.04.1, использовать контрольную систему, использовать параметры на странице Dragonboard 410C для 96 досок, нет ссылки.

Используется для установки этой операционной системы, устанавливает библиотеку для использования GPIO на Dragonboard 410C. Para isso, voiceê deve seguir os passos abaixo (abra o console do seu sistema operacional para executar os comandos):

Pré Requisitos libmraa

  • sudo apt-get update
  • sudo apt-cache search pcre
  • sudo apt-get install libpcre3-dev
  • sudo apt-get install git
  • sudo apt-get install cmake
  • sudo apt-get install python-dev
  • sudo apt-get install swig

Instalação mraa

  • sudo git clone
  • sudo mkdir mraa / build && cd $ _
  • sudo cmake.. -DBUILDSWIGNODE = OFF
  • sudo make
  • sudo make install

Для использования библиотеки на Python, которая может быть проинструктирована, вам нужно экспортировать различные варианты окружающей среды Python для библиотеки. Para isso, используйте o editor de texto de sua seekência para seguir os passos abaixo, vamos utilziar o VIM:

  • sudo vim ~ /.bashrc
  • Pressione a teclar i, para iniciar a edição do arquivo
  • adicionar a linha seguinte no final do arquivo: export PYTHONPATH = $ PYTHONPATH: $ (dirname $ (find / usr / local -name mraa.py))
  • Pressione ESC para sair da edição do arquivo e digite ': x!' E enter para salvar e sair do arquivo.

Com isso já consguimos utilizar a biblioteca mraa com Pyhton.

Вам нужно установить программное обеспечение ОС для облегчения работы с GPS (lembrnado que para a utilização dessa parte, recomendamos or uso do sistema operacional Linaro 17.04.1). Нет seu console, выполните команду abaixo:

sudo apt-get install gnss-gpsd gpsd gpsd-clients

Para testar, выполните o código abaixo, também no seu console:

gpsmon –n

OBS: Внутренняя антенна Drabonboard предназначена для использования на форумах в случаях, когда они находятся в разных местах. Até mesmo em locais abertos, leitura pode demorar de 5 a 10 minutos, então não fique preocupado se não exibir as informações prontamente.

Pensando no projeto, com certeza iremos encapsular o (s) hardware (s) num case, e no menor dos cenários, este case estará dentro de uma casa ou apartamento. Параметр разрешения, использование внешних антенн, подключение к Wi-Fi, возможность использования GPS.

НАБЛЮДЕНИЕ: Установлена внешняя антенна без процедуры по простой процедуре, если она не используется для ознакомления с процедурами работы с солдатами на SMD, портал, обеспечивает специальное обслуживание, которое необходимо.

Для реализации переключения между внутренними антеннами и внешними антеннами, необходимо выполнить соответствующие процедуры, чтобы Qualcomm не предоставил документ по ссылке.

НАБЛЮДЕНИЕ: É muito mais fácil de encontrar os components (capacity, resistores e optimtores) в Интернете do que em loja física. O mesmo для антенн, вы можете найти сайт на SmartCore.

Для шлюза нет никакой зависимости от конфигурации и соединения Wi-Fi, через Интернет и использование модуля GSM. Os módulos GSM externos, geralmente needitam de umatensão estável e específica, então vamos criar uma saída de alimentação direct da entrada de alimentação da Dragonboard 410C.

Na imagem de capa deste step, estão destacados os pontos de saída que deverá ser utilizado para a soldagem dos cabos para a alimentação do modulo GSM (ATENÇÃO COM A POLARIDADE).

Чтобы реализовать внутреннее общение, используйте протокол MQTT и определите точку доступа Dragonboard 410C. Вам необходимо установить программное обеспечение Mosquitto, чтобы установить брокер mqtt, com a execução da linha abaixo no seu console:

sudo apt-get install mosquitto

Com iso o software já estará instalado e ativo.

Для определения на Dragonboard 410C с точкой доступа, например:

  • Clique no icone de redes no canto inferior direito
  • Нажмите на них "Редактировать связи"
  • Нажмите на ссылку "Сетевые подключения", нажмите "Добавить".
  • Выберите опцию Wi-Fi и нажмите "Создать".
  • Отмените настройку телефона, введите имя SSID
  • Na mesma tela mude para 'Hotspot' no campo 'Mode'
  • Caso queira include uma senha para a rede, configure-a na aba 'Wi-Fi Security'
  • Для завершения нажмите кнопку "Сохранить"

Получите качественное устройство, которое будет использоваться для эксклюзивного использования Dragonboard 410C, и использовать другого брокера для публикации и подписки.

Com estesparos acima, estamos prontos para seguir com o desenvolvimento.

Шаг 2. Подготовьте Sua Cloud API

Este passo - это алгоритм, который зависит от проекта для проекта. Pode ser que precision ser feita do zero, ou o cloud já existe com необходимая кривая о механизме API, или até mesmo já ter uma API pronta для использования.

Vamos descrever um passo a passo para iniciar uma API básica, pelo menos para o teste deste deste Instructable. Caso queira seguir um tutorial mais complete, sugiro ver or artigo deste link. Em todo caso, sugiro desenvolver algo mais estruturado, caso finalidade do projeto seja comercial.

Primeiramente, Precisamos de um lugar para colocarmos a nossa API, e para não termos gastos com estes testes, иремос использует платформу Heroku. Siga os passos para iniciar a sua aplicação:

  • Доступ к сайту на Heroku, по этой ссылке
  • Нажмите "Sign Up", no canto superior dieito, para iniciar o seu registro
  • Após o registro, em sua dashboard, click em 'New' e escolha a opção 'Create New App'
  • Insira um nome para a sua aplicação
  • Em seguida, нажмите "Create App"
  • Seu app está pronto, podendo ver seu funcionamento clicando em 'Open App', no canto superior dirento
  • Установите приложение Heroku Cli, чтобы оно было развернуто для отдельного приложения, следуя инструкциям по использованию операционной системы, в соответствии с документом, содержащим ссылку
  • Выберите один из следующих инструкций по развертыванию для использования или использования API, используя

Seguindo os passos acima, já temos a pasta na sua máquina, для desenvolver и sua API. Вы можете установить NodeJS и framework Express, следуя инструкциям ниже:

  • curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
  • sudo apt-get install -y nodejs
  • sudo apt-get install npm
  • Caso não esteja utilizando uma distribuição Linux, который использует o Advanced Packaging Tool (APT), или outro sistema operacional, consulte или link
  • Agora выполнить npm install express-generator -g
  • Acesse o diretório que foi realizado os methods da aplicação da Heroku com 'cd _PASTA_SEU_APP_'
  • Создание узла приложения com 'npm init', e os outros comandos abaixo
  • CD../
  • экспресс _PASTA_SEU_APP_
  • cd _PASTA_SEU_APP_
  • npm install

Para deixar dois endpoints preparados, um de GET e um de POST, siga os passo abaixo:

  • Acesse a pasta 'routes'
  • abra o arquivo 'index.js'
  • Inclua o trecho de código abaixo, que irá adicionar as rotas na raiz da sua aplicação para os dois métidos (GET e POST):

router.get ('/', function (req, res, next) {res.setHeader ('Content-Type', 'application / json'); res.send (JSON.stringify ({msg: 'Hello API'}, null, 3));}); router.post ('/', function (req, res, next) {var msg = 'empty'; if (typeof req.body.msg! = 'undefined') msg = req.body.msg; res.setHeader ('Content-Type', 'application / json'); res.send (JSON.stringify ({msg: msg}, null, 3));});

Теперь вы можете реализовать развертывание приложения на Heroku:

  • героку логин
  • git add.
  • git commit -am "начальная фиксация"
  • git push heroku мастер

Com isso voiceê já tem seus endpoints de testes prontos. Для проверки конечных точек, установите программное обеспечение Почтальон, оставьте ссылку. Установите URL-адрес приложения (например: https://_SEU_APP_.herokuapp.com/) и выберите метод GET ou POST и нажмите «SEND». Para o método POST, siga os passos:

  • Clique na aba 'Body'
  • Выберите вариант 'x-www-form-urlencoded
  • Insira o ключ 'msg'
  • Em Value, pode Inserir qualquer mensagem

Com essas Instruções temos a nossa API de testes pronta para o uso.

Шаг 3. Установка и манипуляция по модулю GSM

Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM
Instalando E Manipulando O Modulo GSM

Для того, чтобы не зависеть от подключения к Wi-Fi, вам нужно использовать соединение GSM для работы с данными для использования API-интерфейса, не настраивая ни шага впереди.

После использования гомологов GSM по модулям, тестам можно пользоваться только по модулю и по модулю SIM800L. Este modulo foi produzido e distribuído em massa pelo fabricando, mas sem qualquer homologação, tanto que não está disponível no site do fabricando.

Вы можете использовать физические соединения, вход по модулю GSM и в Dragonboard 410C.

Como mencionado no step 'Prepare a Dragonboard', teremos que regular a tenão para utilizar or modulo. Para isso utilizaremos um Regularador detensão уйти вниз, para diminuir a tensão de entrada. Использовать или Regulador De Tensão Stepdown Buck Conversor Dc Lm2596 3a Nf, для тестирования

Siga os passos abaixo para realizar as conexões físicas:

  • Conecte a saída positiva da Dragonboard, como ilustrado no step 'Prepare a sua Dragonboard', e conecte na entrada 'IN +' do adjustador de tensão
  • Conecte a saída negativa da Dragonboard, como ilustrado no step 'Prepare a sua Dragonboard', e conecte na entrada 'IN -' do adjustador de tensão
  • ВАЖНО: Играйте в Dragonboard, управляйте вспомогательными средствами ума, управляя фендой, регулируйте регулировку скорости передачи данных (OUT + e OUT -) tenha 4.2V. Siga adiante apenas se a saída estiver com esse valor. В этом случае используется окончание по модулю GSM, проверяемое на соответствие требованиям. Este passo deve ser Repetido, semper que houver inclusão de um hardware, pois pode haver variação.
  • Conecte a saída do adjustador de tenão 'OUT +' no pino VCC, indicado na imagem de capa deste step
  • Conecte a saída do adjustador de tenão 'OUT -' no pino GND, indicado na imagem de capa deste step
  • Conecte o pino RXD do modulo GSM no pino 5 UART 0 TX da Dragonboard, ambos indicados nas images de capa deste step
  • Conecte или pino TXD do modulo GSM no pino 7 UART 0 RX da Dragonboard, ambos indicados nas images de capa deste step
  • Conecte или pino GND do modulo GSM no pino 1, 2, 39 OU 40 GND da Dragonboard, ambos indicados nas images de capa deste step. Это основа для создания или трафаретной печати на RX TX

НАБЛЮДЕНИЕ: Нет данных о соединении с антенной по модулю GSM, с указанием NET или IPX ANT, индикаторов на изображении с шагом, соответствующим шагу.

Программное обеспечение Agora vamos ao. Вы можете использовать библиотеку, которая установлена раньше, для реализации последовательного соединения по модулю GSM и Dragonboard 410C.

Siga os passos para importar a biblioteca e testar a comunicação com o módulo:

  • Crie um arquivo com a extensionão.py, como sugestão 'gsm.py'
  • Нет arquivo, inicie importando a biblioteca mrra, e também a biblioteca time para Definir Delays

импорт мраа

Defina uma varável para o caminho da UART que conectamos o modulo GSM

порт = '/ dev / tty96B0'

Создайте UART из библиотеки mraa

uart = mraa. Uart (порт)

Crie uma função para enviar para os comando AT para o modulo GSM

def write (сообщение):

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

Crie um loop for fazer a leitura do modulo GSM

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

  • Salve o arquivo e volte para o console
  • Выполнить o arquivo

Python gsm.py

Digite 'AT', e se tudo conectado corretamente, voiceê irá recber na tela a mensgem 'OK'

Para que nosso módulo não de digitarmos cada comando AT - encontrados neste link - faremos duas funções, вы можете создать соединение с APN и превзойти его использование API nossa.

Primeira função será de conexão:

def connect ():

time.sleep (0,5) запись ("AT") time.sleep (0,5) запись ('AT + CREG = 1') time.sleep (0,5) запись ('AT + COPS = 2') time.sleep (0,5) write ('AT + SAPBR = 3, 1, «Contype», «GPRS»') time.sleep (0.5) write ('AT + SAPBR = 3, 1, «APN», «*****»') time.sleep (0.5) write ('AT + SAPBR = 3, 1, "USER", "*****"') time.sleep (0.5) write ('AT + SAPBR = 3, 1, "PWD"), "*****" ') time.sleep (0.5) write (' AT + SAPBR = 1, 1 ') time.sleep (0.5) write (' AT + SAPBR = 2, 1 ') time.sleep (6)

Sugiro que ехал cada comanda antes de utilizar esta função. Segue algumas observações sobre estes comandos:

  • Для определения соответствия или доблести команды AT + COPS, которая служит для выбора и повторного использования, первично выполняет команду AT + COPS =?, Принимает меры для повторного использования, а также изменяет доблесть на функцию подключения () для индексации и выполнения действий. após o comando AT_COPS =?
  • После того, как команда, определяющая APN, будет работать с SIM-картой, вы получите эту информацию, чтобы получить доступ к APN, используя ее.
  • Repare que a cada

Agora vamos реализует функцию API-интерфейса nossa:

def send (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) write ('AT + HTTPPARA = "USERDATA", "Авторизация: носитель ******** ********* / r / n "') time.sleep (0.5) if m ==' GET ': write (' AT + HTTPACTION = 0 ') else: write (' AT + HTTPPARA = "КОНТЕНТ", "application / x-www-form-urlencoded" ') time.sleep (0.5) write (' AT + HTTPDATA = '+ str (len (d)) +', 10000 ') time.sleep (0.5) запись (str (t)) time.sleep (10) write ('AT + HTTPACTION = 1') time.sleep (6) write ('AT +

Segue algumas observações para estes comandos:

  • Получено 3 параметра. 'p' para o path que será executado da sua API, 'm' para o método que você irá utilizar da sua api (GET / POST /…), e 'd' para os dados enviados em caso do método não for GET
  • Команда 'AT + HTTPS' опционально, без использования api SSL
  • Аргумент 'm' deverá ser enviado no formato querystring (Пример: msg = ola + dragonboard & arg2 = teste &…)
  • Команда 'AT + HTTPPARA = "USERDATA…' является необязательной, если требуется, чтобы определить заголовок algum без запроса

Mais uma vez sugiro rodar cada comando, Individualmente e em ordem, antes da utilização.

Antes de adquirir seu SIM Card, consulte se a operadora trabalha com a mesma tecnologia que o modulo GSM que vê estiver utilizando, mas é aconselhável use or SIM-Card de empresas especializadas em comunicação IoT, por questões de entebilidades.

Com as configurações and implementationacima, estamos prontos para nos comunicarmos com a nuvem através da nossa Dragonboard 410C.

Шаг 4: Подготовка к использованию для обмена сообщениями в Dragonboard

Preparando Dispositivos Para Se Comunicar Com a Dragonboard
Preparando Dispositivos Para Se Comunicar Com a Dragonboard

Neste passo, iremos utilizar a placa de prototipagem NODEMCU ESP8266 ESP-12, como exemplo. Esta e qualquer outra placa de prototipagem, como o nome já diz, é ótima para protótipos, mas no momento em que o hardware for Definido como produto, deve ser desenvolvido um complexo dedicado. Este módulo já Possui WiFi, então irá упрощает коммуникацию.

Пункты comunicarmos com a nossa Dragonboard 410C, Precisamos 2 bibliotecas:

  • ESP8266WiFi> библиотека для активного отдыха на площади
  • PubSubClient> Библиотека для реализации связи с брокером MQTT

Defina como varáveis globais, as Definições da rede Wi-Fi e do broker, ambos da nossa Dragonboard 410C:

  • const char * SSID = "_REDE_DRAGONBOARD_"; // Имя определено как точка доступа на Dragonboard
  • const char * PASSWORD = ""; // Insira o valor da senha se houver Definido na configuração do Hotspot
  • const char * BROKER = "_IP_DRAGONBOARD_"; // Выполнение "ip a" na sua Dragonboard для описания ip da rede interna

Критерий или объект для восстановления Wi-Fi для размещения и экземпляра клиентского MQTT для этого объекта:

  • WiFiClient espWIFI;
  • PubSubClient MQTT (espWIFI);

Для функции настройки, инициируйте соединение WIFI и соединение MQTT:

  • WiFi.begin (SSID, ПАРОЛЬ);
  • MQTT.setServer (БРОКЕР, 1883 г.);
  • MQTT.setCallback (callback_mqtt); // Caso voiceê faça subscribe em algum tópico

Нет функции цикла, можно использовать линию для перехода к циклу MQTT entre em:

MQTT.loop ();

Воспользуйтесь функцией проверки соединения Wi-Fi и брокером, без каких-либо проблем с перерывами. Para isso crie um função com as linhas abaixo, e chame-a na função de loop:

void checkConnections () {

если (! MQTT.connected ()) while (! MQTT.connected ());

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

}

И, наконец, вы можете сделать это еще раз для Drabonboard 410C, после чего выполните следующую команду:

MQTT.publish ('_ NOME_DO_TOPICO_', «Ола Драконборд»);

Não vou entrar em detalhes for example a leitura de sensores e etc, pois vai var muito de projeto para projeto e de hardware para hardware. Basta includesir esta linha onde needário, que os dados serão enviados for a seu broker.

Сделайте это для Dragonboard410C, вам нужно проверить тест на питоне, чтобы узнать, как работает брокер, вам нужно, вам нужно установить вашу библиотеку, которая не является вспомогательной, чтобы сделать брокера. Для этого выполните следующие действия: linhas abaixo no console da Dragonboard 410C:

  • sudo apt-get install python pip
  • pip install paho-mqtt

Agora vamos criar um arquivo python com o nome, como exemplo, mqtt.py. Nele vamos Definir algumas funções que serão explicadas a seguir:

импортировать paho.mqtt.client как mqttimport sys

Брокер = "_IP_DRAGONBOARD_" порт = 1883 тайм-аут = 60 TopicSubscribe = "_MESMO_TOPICO_DISPOSITIVO_EXTERNO_"

def onConnect (клиент, данные пользователя, флаги, rc): client.subscribe (TopicSubscribe)

def onMessage (client, userdata, msg): message = str (msg.payload) print (message)

попробуйте: client = mqtt. Client () client.on_connect = onConnect client.on_message = onMessage client.connect (Брокер, порт, тайм-аут) client.loop_forever () за исключением: sys.exit (0)

Neste arquivo vamos Definimos duas funções, "onConnect" que será chamada no momento em que houver conexão com o broker, e função "onMessage" que será executada quando houver mensagem Recebida nos подписывается на определенные функции "onConnect".

Выполните или arquivo com 'python mqtt.py', и эти тоды как conexões anteriores estiverem sido realizadas com sucesso, voiceêreberá na sua tela os dados que estão sendo enviados pelo seu dispositivo externo, no caso deste exemplo, pelo NODEMC.

Обратите внимание на то, что функция onMessage получена, и вы получите информацию и вызовы на консоли. Então é neste ponto que vê tratará os dados recbidos e no momento certo, enviará via GSM para a sua API, pela função 'send' do seu arquivo de teste gsm.py, que criamos no passo 'Instalando emanulando o modulo GSM'.

Важное наблюдение: Для реализации питания на плакате NODEMCU ESP8266 ESP-12, в частности, в запросе к документу с указанием ссылки. Muito cuidado neste momento, pois uma simples falha de inversão de polos pode queimar a placa, mas caso isso aconteça a boa noticia é que tem um preço que coefica a troca rapidamente.

Шаг 5: Рассмотрим Финайс

Установите эту конфигурацию, чтобы описать предыдущие шаги, голосовое общение или другое устройство IoT в мире, дополнительное оборудование Dragonboard 410C.. Сенсоры и исходящие вызовы, которые используются без внешнего устройства, должны быть подготовлены и реализованы в облаке API, используются повторно для аппаратных приложений на Dragonboard, и используются в качестве формы, в которой используются данные о проектах, которые являются критериями для выполнения проекта.. Para Definir como produto final, sugerimos apĺicar as tecnologias e Процедуры адекватные

O uso de apps e aplicações de gestão, para os comerciantes ligados aos serviços, deixamos em aberto também, bastando trabalhar bem sua API, e consumindo através destas frentes.

Рекомендуемые: