Guia do Arduino MKR1000 – Como usar o Arduino MKR1000 em projetos IoT

Tempo de leitura: 5 minutes

Este guia do Arduino MKR1000 descreve como programar o Arduino para enviar tweets. Em mais detalhes, neste projeto Arduino, usaremos o Arduino MKR1000. Este é um projeto interessante de Internet das coisas em que o Arduino MKR1000 usará serviços em nuvem para enviar tweets. Durante o guia de programação do Arduino, usaremos o Temboo que fornece um conjunto de serviços interessantes para enviar tweets.

O que aprenderemos durante este guia do Arduino MKR1000?

Aprenderemos vários aspectos relacionados ao Arduino MKR1000 como:

  • Como conectar DHT11 e BMP180 ao Arduino MRK1000
  • Como enviar dados para a nuvem

 

Visão geral do projeto do Guia do Arduino MKR1000

Antes de mergulhar nos detalhes do guia do Arduino MKR1000 e descrever como invocar um serviço de nuvem do Arduino MKR1000, é útil ter uma visão geral do projeto.
Este projeto Arduino IoT explora dois sensores diferentes:

  • Um sensor de temperatura e umidade conectado ao Arduino (DHT11/DHT22)
  • Um sensor de pressão conectado ao Arduino (BMP 180)

A figura abaixo mostra os detalhes da fiação, descrevendo as conexões entre o MKR1000 e esses dois sensores:

Além disso, este projeto usa a plataforma Temboo IoT e Twitter, portanto, se você quiser testá-lo, terá que criar duas contas gratuitas.

 

Especificações do Arduino MKR1000

Como você já deve saber, o Arduino MKR1000 é a última placa de desenvolvimento feita especificamente para projetos de IoT. Arduin MKR1000 oferece uma solução prática para fabricantes que desejam construir projetos de IoT. Esta placa de desenvolvimento tem WiFi integrado. Arduino MKR1000 usa Atmel ATSAMW25 SoC. Este SoC é projetado especificamente para projetos de IoT. As principais características deste SoC são:

  • 32 bits
  • 48 MHz
  • Núcleo ARM
  • 3,3 V

É importante notar que esta placa de desenvolvimento usa 3,3 V em vez de 5V como Arduino Uno. É importante lembrar porque a tensão do pino de E/S deve ser inferior a 3,3 V, caso contrário, há o risco de danificar a placa.

 

Ler a pressão de temperatura e umidade usando Arduino MKR1000

O código de programação do Arduino para ler os dados do sensor de temperatura e do sensor barométrico é mostrado abaixo:

#include "DHT.h"
#include <Adafruit_BMP085.h>

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);
Adafruit_BMP085 bmp;
void setup() {
  dht.begin();
  bmp.begin();
}

void loop() {
  float h = dht.readHumidity();
  // Lê a temperatura como Celsius (o padrão)
  float t = dht.readTemperature();
  float presPa = bmp.readPressure();
  float presMb = presPa * 1013.25 / 101325;
}

Neste sketch, o sensor DHT11 está conectado ao PINO 2, enquanto o BMP180 tem 4 conexões: TERRA, VCC (3,3 V), SDA e RELÓGIO. A conexão com o MKR1000 é muito fácil.

 

Como configurar o Twitter para permitir conexões do Arduino

Para usar o Twitter do Arduino MKR1000, é fundamental criar um app no Twitter. Para tanto, basta fornecer algumas informações. Uma vez que o aplicativo esteja configurado fornecendo todas as informações necessárias, podemos recuperar as chaves para autenticar nosso Arduino MKR1000.

A primeira etapa é criar o aplicativo do Twitter:

A próxima etapa é criar as chaves para usar posteriormente no Temboo:

Ok .. lembre-se do código acima porque você deve usá-lo na configuração do Temboo.

Agora é hora de ir para o código do Arduino. Como primeiro passo, é necessário fornecer informações ao Choreo Temboo. Esse processo é simples, você só precisa copiar e colar os valores recuperados durante a etapa de configuração do aplicativo:

Como programar o Arduino para enviar tweets

Antes de começar a enviar tweets do Arduino, é necessário descrever como conectar o Arduino ao WiFi.

Como conectar o Arduino MRK1000 ao WiFi

Antes de enviar tweets invocando os serviços Temboo, é necessário estabelecer uma conexão WiFi usando o código abaixo:

#include <SPI.h>
#include <WiFi101.h>
char ssid[] = "xxxxx"; //seu SSID de rede (nome)
char pass[] = "pppp"; //sua senha de rede
int status = WL_IDLE_STATUS; //o status do rádio Wifi

WiFiClient client;

void setup() {
Serial.begin(9600);
Serial.print("Starting…");
// verifique a presença do escudo:
if (WiFi.status() == WL_NO_SHIELD) {
   Serial.println("Shield WiFi não presente");
   // não continue:
   while (true);
}

// tentativa de conexão com a rede Wifi:
while ( status != WL_CONNECTED) {
  Serial.print("Tentando se conectar ao WPA SSID: ");
  Serial.println(ssid);
  //Conecte-se à rede WPA/WPA2:
  status = WiFi.begin(ssid, pass);

  // aguarde 10 segundos pela conexão:
  delay(10000);
}

Este código é o mesmo usado nos exemplos do Arduino MKR1000. Substitua o ssid e a variável pass pelo valor usado em sua rede sem fio. Agora tudo está pronto e podemos usar o código Choreo para enviar tweets:

void loop() {
  String msgText = "Temperatura é " + String(t,2) + "C e umidade " + String(h,2) + " Press is " + String(presMb,2) + ". Have fun!";

  Serial.println("Msg ["+msgText+"]");
  TembooChoreo SendDirectMessageChoreo(client);

  // Invoque o cliente Temboo
  SendDirectMessageChoreo.begin();

  // Defina as credenciais da conta Temboo
  SendDirectMessageChoreo.setAccountName(TEMBOO_ACCOUNT);
  SendDirectMessageChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
  SendDirectMessageChoreo.setAppKey(TEMBOO_APP_KEY);

  // Definir entradas do Choreo
  String AccessTokenValue = "……";
  SendDirectMessageChoreo.addInput("AccessToken", AccessTokenValue);
  String ConsumerKeyValue = "…….";
  SendDirectMessageChoreo.addInput("ConsumerKey", ConsumerKeyValue);
  String ConsumerSecretValue = "……";
  SendDirectMessageChoreo.addInput("ConsumerSecret", ConsumerSecretValue);
  String ScreenNameValue = "xxxxxx xxxxxx";
  SendDirectMessageChoreo.addInput("ScreenName", ScreenNameValue);
  String TextValue = "Temperatura é…"; // Adicione o valor lido dos sensores
  SendDirectMessageChoreo.addInput("Text", msgText);
  String AccessTokenSecretValue = "….";
  SendDirectMessageChoreo.addInput("AccessTokenSecret", AccessTokenSecretValue);

  // Identifique o Choreo a ser executado
  SendDirectMessageChoreo.setChoreo("/Library/Twitter/DirectMessages/SendDirectMessage");

  // Execute o Choreo; quando os resultados estiverem disponíveis, imprima-os em série
  SendDirectMessageChoreo.run();

  while(SendDirectMessageChoreo.available()) {
    char c = SendDirectMessageChoreo.read();
    Serial.print(c);
  }
  SendDirectMessageChoreo.close();

  Serial.println("\nEsperando…\n");
}

Executando o sketch no Arduino MKR1000 o resultado é mostrado abaixo:

e

No final deste guia do Arduino, com sorte, você sabe como criar um projeto Arduino IoT usando o Arduino MKR1000 e como integrar o Arduino MKR1000 com sistemas externos. Além disso, você sabe como invocar um serviço remoto usando o Arduino MRK1000. Este projeto do Arduino MKR1000 pode ser estendido ainda mais e podemos usar o mesmo método para enviar outros tipos de alertas como alarmes ou podemos adquirir diferentes tipos de dados usando outros sensores. Além disso, este guia do Arduino descreve como usar o sensor de temperatura Arduino DHT11 e como usar o sensor de pressão bmp180.

 

Visits: 1 Visits: 1194556