Wifi Bee

Introdução

Wifi Bee é um XBee Pro tomada autônoma compatível com nó MCU, útil para Rede de Sensores sem Fios. Ele integra Microchip IEEE 802.11 Wi-Fi módulo transceptorMRF24WB0MA e um AVR MCU ATmega328P 8bits. O Smart e o XBee Pro Soquete compatível com uma perspectiva inteligente,  torna-o muito fácil de integrar em seu produto. ATmega328P poderia ser programado diretamente sob o IDE de código aberto Arduino quando você ligá-lo ao UartSBee ou Grove – XBee portador . Os pinos de SPI em MCU são ligados aos pinos correspondentes do MRF24WB0MA para comunicar uns com os outros, enquanto alguns dos outros pinos (DIO, AD, PWM, etc.) são levados para fora para os pinos 20 de 2,0 milímetros de pinos macho. Por favor, note que não há firmware dedicado para Wifi Bee ainda agora, mas você pode usar o firmware deWiShield de AsyncLabs. Por favor, certifique-se de que você pode usá-lo antes de comprar.

Modelo: WLS48188P

350px-Seeedstudio_Wifibee_MRF24WB0MA

Características

  • Cabeçalhos compatíveis xbee
  • Programável usando Arduino IDE
    • Arduino Duemilanove bootloader pré-programado
  • Suporta baixa potência e baixa taxa de dados Wi-Fi.
  • 802.11b compatível
  • WEP, WPA-PSK, WPA2-PSK Segurança
  • LEDs para PWR e indicação de conexão Wi-Fi.

Idéias de Aplicação

  • Rede local sem fio
  • Rede de Sensores sem fio usando Grove – XBee Transportador
  • Conectividade com a Internet
  • Construa aplicativos de rede sem fim, com uIP TCP / IP Stack
    • Ideal para pessoas que querem aprender e experimentar com TCP / IP Stack

Esquemático

750px-Wifi_Bee_v0.91b

Especificação chave

Item Mínimo Típico Máximo
Operar tensão 3.0V 3.3V 3.6V
Temperatura de trabalho 0 ° C a + 70 ° C
Freqüência de trabalho 16MHz
MCU ATmega328P

Mecânicas Dimensões

Wifi Bee é de 27,2 milímetros x 35,7 milímetros de tamanho.

Equipamento

450px-Seeedstudio_WifiBee_Parts

 

Definição e classificação Pin

Pino # Tipo Pad Descrição Arduino Pin Número
3V3 1 Fornecimento de entrada VCC, + 3.3V
TX 2 Saída Uart porta Tx 1 (DIO)
RX 3 Entrada Porta Uart Rx 0 (DIO)
PB0 4 Input / Output ATmega328P PB0 8 (DIO)
! REAJUSTE 5 Entrada ATmega328 porta Repor
PD7 6 Input / Output ATmega328P PD7 7 (DIO)
PD6 7 Input / Output ATmega328P PD6 6 (DIO)
PD5 8 Input / Output ATmega328P PD5 5 (DIO)
! DTR 9 Entrada Usado para programar o ATmega328P
GND 10 GND GND
PC1 11 Input / Output ATmega328P PC1 1 (entrada analógica) / 15 (DIO)
PC0 12 Input / Output ATmega328P PC0 0 (entrada analógica) / 14 (DIO)
AD7 13 Entrada ATmega328P ADC7 7 (entrada analógica)
VREF 14 Entrada Porta ATmega328P AREF
AD6 15 Entrada ATmega328P ADC6 6 (entrada analógica)
INT1 16 Input / Output ATmega328P PD3 3 (DIO)
PC3 17 Input / Output ATmega328P PC3 3 (entrada analógica) / 17 (DIO)
PC2 18 Input / Output ATmega328P PC2 2 (entrada analógica) / 16 (DIO)
SCL 19 Input / Output ATmega328P PC5 5 (entrada analógica) / 19 (DIO)
SDA 20 Input / Output ATmega328P PC4 4 (entrada analógica) / 18 (DIO)

Uso

Instalação de hardware

400px-Bee_Stem_Connected_to_Wifi_BEE_and_A_Twig

Grove – XBee Carrier – Conectado a Wifi Abelha e alimentado por USB

Programação

Configuração de rede sem fio

Esta seção apresenta uma visão geral sobre como configurar uma rede doméstica com um roteador WiFi apropriado para Wifi Bee.

 

 

600px-WifiBee_Network_Architecture

Wireless Sensor Network – Demonstração de Arquitetura com Wifi Abelha Nodes

  1. Entre para interface de configuração web do roteador Wi-Fi usando um navegador web. Normalmente, um endereço IP padrão como 192.168.0.1 e um ID de login:admin e Senha: senha é fornecida pelo fabricante do roteador. Usa isto.
  2. No caso acima, o endereço IP 192.168.0.1 router é também o endereço IP do gateway da rede sem fio. A máscara de sub-rede para esse endereço IP é255.255.255.0
  3. Defina um nome ou SSID para a rede sem fio. Vamos configurá-lo para homenetwork. Esse nome será usado ao longo do tutorial.
  4. Qualquer nó que conecta a um roteador recebe um endereço IP através de DHCP. Mas, Wifi Bee não suporta DHCP. Temos de atribuir um endereço IP estático.Muitos roteadores fornecem reserva de endereço usando o endereço MAC para dispositivos de rede. Na seção de configuração da LAN do roteador sem fio, reserva de endereço IP 192.168.0.4 para Wifi Bee.
    1. Digite o endereço IP a ser reservada como 192.168.0.4. Este é o endereço IP de Wifi Bee
    2. Você precisa digitar o endereço MAC exibido na Wifi Abelha na forma de AB: CD: EF: GH: IJ: KL
    3. Dê o nome do dispositivo como WIFIBEE. Este nome pode ser qualquer palavra e não muito importante.
  5. Configure as opções de segurança da rede. Wifi Bee suporta Open (Segurança desativada), WEP (Wired Equivalent Privacy), WPA-PSK (Wi-Fi Protected Access Pre-Shared Key) e WPA2-PSK (Wi-Fi Protected Access 2 com chave pré-compartilhada). Definir uma opção de segurança adequado. Essa configuração é usada por Wifi Bee para estabelecer conexão.
    1. Vamos definir a opção de segurança para WPA-PSK.
    2. Modo WPA-PSK requer WPA-PSK Segurança Encryption chave de rede. Defina esta chave para 12345678
  6. Consulte o guia do usuário do roteador para a configuração de outra configuração como se conectar a internet, etc ..

Baixando e configurar a biblioteca para executar os exemplos de aplicação

Os exemplos de aplicação usa a biblioteca WiSheild de Asynclabs. Não há outra firmware dedicado para Wifi Bee. Esta biblioteca usa uip pilha TCP / IP de Adam Dunkels.Esta biblioteca é fornecida sob a GPL v2 pelo autor original. Assim, qualquer aplicação que pode ser construído com WiShield também deve ser compatível com GPLv2.

  1. Faça download da biblioteca de WiShield .
  2. Extraia o conteúdo para bibliotecas Arduino diretório / / WiShield.
  3. A biblioteca vem com muitos exemplos de aplicação. Ele é escrito de uma forma configurável de modo que apenas a funcionalidade necessária é construído. Isso economiza FLASH.
    • Esta configuração é feita em /libraries/WiShield/apps-conf.h.
    • Descomente o modo desejado para o aplicativo que você está construindo como web-server ou WEB-CLIENT ou aplicativo de soquete, etc .. em arquivo/libraries/WiShield/apps-conf.h.
    • Por exemplo, se você quiser construir um Web Application Server a APP_WEBSERVER #define deveria ter sido uncommented e todos os outros modos são comentados. Esta mudança exige reconstruir da biblioteca. Daí fechar e re-aberto Arduino IDE.
  4. Vamos construir o exemplo WebServer.
    • Defina a configuração do modo como APP_WEBSERVER em /libraries/WiShield/apps-conf.h.
    • Abrir bibliotecas / WiShield / examples / WebServer / esboço / WebServer.pde em Arduino IDE
    • Defina o local_ip [] array para {} 192,168,0.4. Este endereço IP Wifi Bee como configurado acima.
    • Defina o gateway_ip [] array para {} 192,168,0,1. Este é o endereço IP do roteador como configurado na configuração da rede acima.
    • Defina o subnet_mask [] array para {} 255,255,255,0. Esta é a máscara de sub-rede para a rede local sem fio.
    • Definir SSID prog_char [] para {“homenetwork”}. Esse nome também foi atribuído durante a configuração da rede.
    • O próximo passo é definir o security_type para opções de segurança configuradas durante a configuração da rede. Situado a 2 (ou seja, WPA), conforme configurado no roteador Wi-Fi.
      • //unsigned char security_type = 2; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2
    • Também definir const prog_char security_passphrase[] PROGMEM = {"12345678"}
  5. O esboço WebServer.pde modificado parece com o código listado abaixo.
  6. Defina o tipo de placa de Arduino Duemilanove e compilar o esboço.
  7. Enviá-lo Wifi Abelha e pressione o botão Reset
  8. Se tudo correr bem o Wifi Bee conecta a homenetwork e o LED azul (LED Wi-Fi) brilha
  9. Abra um navegador da web a partir de um PC conectado à homenetwork e digite a URL http://192.168.0.4
  10. Você iria receber a mensagem Hello World!! I am WifiBee. Hello World!! I am WifiBee.

 / * 
   * Servidor Web: exemplo WebServer.pde Modificada.  
   * Um exemplo de servidor web simples usando a biblioteca WiShield e WiBee.  
   * /

 #include <WiShield.h>

 #define WIRELESS_MODE_INFRA 1
 #define WIRELESS_MODE_ADHOC 2

 // parâmetros de configuração sem fio ----------------------------------------
 unsigned char local_ip [] = {192, 168, 0, 4}; // endereço IP de Wifi Bee
 unsigned char gateway_ip [] = {192, 168, 0, 1}; // router ou gateway IP address
 unsigned char subnet_mask [] = {255, 255, 255, 0}; // máscara de sub-rede para a rede local sem fio
 const ssid prog_char [] = {PROGMEM "homenetwork"}; // máximo de 32 bytes

 unsigned char security_type = 2; // 0 - aberto;  1 - WEP;  2 - WPA;  3 - WPA2

 // WPA / WPA2
 prog_char const security_passphrase [] = {PROGMEM "12345678"}; // máximo 64 caracteres.  O nome da rede.

 // WEP chaves de 128 bits
 // chaves amostra HEX
 wep_keys prog_uchar [] = {PROGMEM 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // chave 2
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // chave 3
				 };

 // Configurar o modo sem fio
 // Infra-estrutura - se conectar ao AP
 // Adhoc - se conectar a outro dispositivo WiFi
 unsigned char wireless_mode = WIRELESS_MODE_INFRA;

 unsigned char ssid_len;
 unsigned char security_passphrase_len;
 // ------------------------------------------------ ---------------------------

 void setup ()
 {
	 WiFi init (.);
 }

 // Este é o site que é servido pelo servidor web
 webpage prog_char const [] = {PROGMEM "HTTP / 1.1 200 OK \ r \ n Content-Type: text / html. \ r \ n \ r \ n <center> <h1> Olá mundo !! Estou WifiBee </ h1 > </ center> "};

 void loop ()
 {
	 . WiFi run ();
 }

Exemplos

Servidor Web simples que envia valor do sensor ao navegador Web

  • Use a configuração de rede, como descrito acima.
  • Use a Grove – XBee portador para a programação e poder.
  • Configurar aplicativos de conf.h, de tal forma que apenas o modo APP_WISERVER é usado.
  • Compilar e carregar o seguinte esboço para Wifi Bee usando Arduino IDE, como descrito por exemplo acima.
  • Pressione o botão de reset. Aguarde até que o Wifi Bee se conectar à rede Wi-Fi (LED azul acende).
    • Informações detalhadas da comunicação de rede pode ser visto; se, terminal de porta serial é aberta em Arduino IDE (com 57600 baud).
  • Abra um navegador da web a partir de um PC conectado à homenetwork e digite a URL http://192.168.0.4
  • WifiBee serve o valor do sensor para o browser. O código HTML é escrito de tal maneira que auto refresca a cada 10 segundos.

 

/ * 
 * Um esboço simples que usa WiServer e Seeedstudios Wifi abelha para servir uma página web. 
 * Um sensor analógico está ligado a A2 de Wifi Bee (usar Grove - XBee Carrier).  Este valor é enviado para o Cliente (um navegador da web).  A página HTML é preparado com base no valor do sensor.  Ele também tem direção Para refrescar-se automaticamente. 
 / * Este exemplo baseia-se SimpleServer.pde.  
 / * Para que este exemplo funcione, modificar o arquivo de aplicativos de conf.h como abaixo;  apenas no modo APP_WISERVER está habilitado:  
  -------------------------------------------------- ------------------ 

  // Aqui, incluem o arquivo de cabeçalho para o aplicativo (s) que usamos em nosso projeto. 
  // # Definir APP_WEBSERVER 
  // # Definir APP_WEBCLIENT 
  // # Definir APP_SOCKAPP 
  // # Definir APP_UDPAPP 
  #define APP_WISERVER 
  -------------------------------------------------- -------------------- 
  * /

 #include <WiServer.h>

 #define WIRELESS_MODE_INFRA 1
 #define WIRELESS_MODE_ADHOC 2

 // parâmetros de configuração sem fio ----------------------------------------
 unsigned char local_ip [] = {192, 168, 0, 4}; // endereço IP do WifiBee
 unsigned char gateway_ip [] = {192, 168, 0, 1}; // router ou gateway IP address
 unsigned char subnet_mask [] = {255, 255, 255, 0}; // máscara de sub-rede para a rede local
 const ssid prog_char [] = {PROGMEM "homenetwork"}; // máximo de 32 bytes

 unsigned char security_type = 2; // 0 - aberto;  1 - WEP;  2 - WPA;  3 - WPA2

 // WPA / WPA2
 prog_char const security_passphrase [] = {PROGMEM "12345678"}; // máximo 64 caracteres

 // WEP chaves de 128 bits
 // chaves amostra HEX
 wep_keys prog_uchar [] = {PROGMEM 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // chave 2
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // chave 3
				 };

 // Configurar o modo sem fio
 // Infra-estrutura - se conectar ao AP
 // Adhoc - se conectar a outro dispositivo WiFi
 unsigned char wireless_mode = WIRELESS_MODE_INFRA;
 unsigned int SensorValue;
 unsigned char ssid_len;
 unsigned char security_passphrase_len;
 // Fim de parâmetros de configuração sem fio ----------------------------------------

 int contador;
 // Esta é a nossa função porção página que gera páginas web
 boolean sendMyPage (char * URL) {

     // Verifique se os jogos URL pedido "/"
     if (strcmp (URL, "/") == 0) {
         // Impressão de Uso WiServer e funções println para escrever o conteúdo da página
         WiServer print ("<html>.");

         // Instrua o browser web para refersh a cada 10 segundos
         . WiServer print ("<head> <meta http-equiv = \" Atualizar \ "content = \" 10 \ "> </ head>"); 
         WiServer println ("<H1> WifiBee Conectado ... <H1>.");
         WiServer print ("<H2> Sensor Valor =.");
         . WiServer impressão (SensorValue); //A2 está conectado a um sensor exernal. O valor RAW é enviado para o cliente.
         WiServer print ("</ h2> </ html>.");
         return true;
     }
     // URL não encontrado
     return false;
 }

 void setup () {

   // Inicializar WiServer e tê-lo usar a função sendMyPage para servir páginas
   . WiServer init (sendMyPage);

   // Ativa a saída de série e pedir WiServer para gerar mensagens de log (opcional)
   Serial . begin ( 57600 ) ;
   . WiServer enableVerboseMode (true);
 }

 void loop () {
   SensorValue = analogRead (A2); // A2 está conectado a um sensor exernal via interface em Grove Grove - XBee Transportador.
   // Run WiServer
   WiServer server_task ().;
   delay (10);
 }

 

Cliente Web simples que envia sensor de feeds para Pachube.com

This section will be revised later

  • Use a configuração de rede, como descrito acima.
  • Use a Grove – XBee portador para a programação e poder.
  • Configurar aplicativos de conf.h, de tal forma que apenas o modo APP_WISERVER é usado.
  • Compilar e carregar o seguinte esboço para Wifi Bee usando Arduino IDE, como descrito por exemplo acima.
  • Pressione o botão de reset. Aguarde até que o Wifi Bee se conectar à rede Wi-Fi (LED azul acende).
    • Informações detalhadas da comunicação de rede pode ser visto; se, terminal de porta serial é aberta em Arduino IDE (com 57600 baud).
  • Wifi Bee alimenta periodicamente os dados para Pachube.com

 

/ * 
*Um esboço simples que usa WiServer biblioteca e WifiBee de Seeedstudio para enviar sensor de
   * Alimentar para pachube.com; 
   * Esta versão é modificado SimpleClient.pde.  Direitos de autor cabe ao autor original.  
 / * Para que este exemplo funcione, modificar o arquivo de aplicativos de conf.h como abaixo;  apenas no modo APP_WISERVER está habilitado:  
  -------------------------------------------------- ------------------ 
  // Aqui, incluem o arquivo de cabeçalho para o aplicativo (s) que usamos em nosso projeto. 
  // # Define APP_WEBSERVER 
  // # Define APP_WEBCLIENT 
  // # Define APP_SOCKAPP 
  // # Define APP_UDPAPP 
  #define APP_WISERVER 
  -------------------------------------------------- -------------------- 
  * /


 #include <WiServer.h>

 #define WIRELESS_MODE_INFRA 1
 #define WIRELESS_MODE_ADHOC 2

 // parâmetros de configuração sem fio ----------------------------------------
 unsigned char local_ip [] = {192, 168, 0, 4}; // endereço IP do WifiBee
 unsigned char gateway_ip [] = {192, 168, 0, 1}; // router ou gateway IP address
 unsigned char subnet_mask [] = {255, 255, 255, 0}; // máscara de sub-rede para a rede local
 const ssid prog_char [] = {PROGMEM "homenetwork"}; // máximo de 32 bytes

 unsigned char security_type = 2; // 0 - aberto;  1 - WEP;  2 - WPA;  3 - WPA2

 // WPA / WPA2
 prog_char const security_passphrase [] = {PROGMEM "12345678"}; // máximo 64 caracteres

 // WEP chaves de 128 bits
 // chaves amostra HEX
 wep_keys prog_uchar [] = PROGMEM 
 {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // chave 2
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // chave 3
 };

 // Configurar o modo sem fio
 // Infra-estrutura - se conectar ao AP
 // Adhoc - se conectar a outro dispositivo WiFi
 unsigned char wireless_mode = WIRELESS_MODE_INFRA;

 unsigned char ssid_len;
 unsigned char security_passphrase_len;
 // Fim de parâmetros de configuração sem fio ----------------------------------------


 // Funções que imprime os dados a partir do servidor
 void printData (char * dada, int len) {

   // Imprima os dados retornados pelo servidor
   // Observe que os dados não é null-rescindido, podem ser divididos em pacotes menores, e
   // Inclui o cabeçalho de HTTP.
   while (len -> 0) {
     Serial . print ( * ( data ++ ) ) ;
   } 
 }

 int SensorValue = 0;
 // Prepara dados para o feed
 anular pachubefeedData () 
 {
    SensorValue = analogRead (A2); // Leia sensor analógico ligado a A2 (Use Grove - Interface XBee Carrier)
    WiServer. print ( sensorValue ) ;
 }



 // Endereço IP para pachube.com
 uint8 ip [] = {173, 203, 98, 29};

 Char hostName [] = "www.pachube.com \ n X-PachubeApiKey: YOUR_API_KEY_HERE \ n Connection: close"; // Substitua YOUR_API_KEY_HERE, com a sua chave API
 caractere url [] = "/api/12345.csv?_method=put"; // Substitua 12345 com o seu número de alimentação

 // Um pedido que os postos de dados para Pachube
 POSTrequest postPachubeFeed (ip, 80, hostname, url, pachubefeedData);


 void setup () {
     // Inicializar WiServer (vamos passar NULL para a função principal que serve uma vez que não precisa servir páginas web)
   . WiServer init (NULL);

   // Ativa a saída de série e pedir WiServer para gerar mensagens de log (opcional)
   Serial começar (57600).;
   . WiServer enableVerboseMode (true);

   // Já a função ProcessData chamado quando dados são devolvidos pelo servidor
   . postPachubeFeed setReturnFunc (printData);
 }


 Quando os dados devem ser recuperados // Tempo (em Millis)
 long updateTime = 0;

 void loop () {

   // Verifique se é hora de enviar uma atualização
   if (millis ()> = updateTime) {
     postPachubeFeed submit ().;    
     // Enviar uma outra atualização após um min
     updateTime + = 60;
   }

   // Run WiServer
   WiServer server_task ().;

   delay (10);
 }

 

Lista de materiais (BOM) / Lista de peças

 
Parte Quantidade Valor Pacote
C1 1 10u C_TAN_3X3.5
C2, C3 2 1U 0603
C4 1 100n 0603
J1 1 CK_2X3_2.0 CK_2X3_2.0
PWR 1 vermelho LED0603
R1 1 10k 0603
R2, R3, R4, R5, R7 5 4.7k 0603
R6 1 1k 0603
U1 1 OPEN_BEE XBEE_EXT_SMD
U3 1 MRF24WB0MA MRF24WB0MA
U4 1 ATmega328P_MU1040 MLF32X
WIFI 1 azul LED0603
X1 1 16MHz XTAL_3X2

Apoio

Se você tiver dúvidas ou outras idéias de design melhores, você pode ir ao nosso fórum ou deseja discutir.

 

Recursos

 

Link: http://www.seeedstudio.com/wiki/Wifi_Bee

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s