Índice:
- Etapa 1: Equipamentos de que precisamos..
- Etapa 2: Conexões de Hardware
- Etapa 3: Código
- Etapa 4: Funcionamento do Código
- Etapa 5: aplicativos e recursos
- Etapa 6: Recursos para ir mais longe
Vídeo: Orientação do mapa por meio do servidor da Web: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Internet of Things, (IoT) é um dos tópicos populares no planeta atualmente. E está crescendo rapidamente a cada dia com a Internet. A Internet das Coisas está transformando casas simples em casas inteligentes, onde tudo, desde as luzes até as fechaduras, pode ser controlado a partir de seu smartphone ou desktop. Este é o luxo que todos desejam ter.
Nós sempre brincamos com as ferramentas que temos e continuamos trabalhando para ir para a próxima etapa de nossos limites. Tentamos dar aos nossos clientes uma visão das tecnologias e ideias mais recentes. Para que possa transformar a sua casa em casas elegantes e desfrutar do sabor do luxo sem muito esforço.
Hoje, pensamos em trabalhar em um dos tópicos mais importantes da IoT - Orientação de Mapas Digitais.
Construiremos um servidor web através do qual poderemos monitorar os movimentos de qualquer dispositivo ou coisa (cabe a você, quem você quer espionar;)). Você sempre pode pensar em atualizar este projeto para o próximo nível com algumas modificações e não se esqueça de nos dizer nos comentários abaixo.
Vamos começar então.. !!
Etapa 1: Equipamentos de que precisamos..
1. Sensor LSM9DS0
O sensor 3 em 1 fabricado pela STMicroelectronics, o LSM9DS0 é um sistema em pacote com um sensor de aceleração linear digital 3D, um sensor digital de taxa angular 3D e um sensor magnético digital 3D. O LSM9DS0 tem uma escala completa de aceleração linear de ± 2g / ± 4g / ± 6g / ± 8g / ± 16g, uma escala completa de campo magnético de ± 2 / ± 4 / ± 8 / ± 12 gauss e uma taxa angular de ± 245 / ± 500 / ± 2000 dps.
2. Adafruit Huzzah ESP8266
O processador ESP8266 da Espressif é um microcontrolador de 80 MHz com front-end WiFi completo (como cliente e ponto de acesso) e pilha TCP / IP com suporte DNS também. O ESP8266 é uma plataforma incrível para o desenvolvimento de aplicativos IoT. O ESP8266 fornece uma plataforma madura para aplicativos de monitoramento e controle usando a Arduino Wire Language e o Arduino IDE.
3. Programador USB ESP8266
seu adaptador host ESP8266 foi projetado especificamente pela Dcube Store para a versão Adafruit Huzzah do ESP8266, permitindo a interface I²C.
4. Cabo de conexão I2C
5. Cabo Mini USB
A fonte de alimentação do cabo mini USB é a escolha ideal para alimentar o Adafruit Huzzah ESP8266.
Etapa 2: Conexões de Hardware
Em geral, fazer conexões é a parte mais fácil deste projeto. Siga as instruções e imagens e não terá problemas.
Em primeiro lugar, pegue o Adafruit Huzzah ESP8266 e coloque o programador USB (com porta I²C para dentro) nele. Pressione o Programador USB suavemente e concluiremos essa etapa com a maior facilidade (veja a imagem acima).
Conexão do Sensor e Adafruit Huzzah ESP8266 Pegue o sensor e conecte o cabo I²C com ele. Para a operação adequada deste cabo, lembre-se de que a saída I²C SEMPRE se conecta à entrada I²C. O mesmo teve que ser seguido para o Adafruit Huzzah ESP8266 com o Programador USB montado sobre ele (veja a imagem acima).
Com a ajuda do Programador USB ESP8266, é muito fácil programar o ESP. Tudo o que você precisa fazer é conectar o sensor ao programador USB e pronto. Preferimos usar este adaptador porque torna muito mais fácil conectar o hardware. Não se preocupe em soldar os pinos do ESP ao sensor ou ler os diagramas de pinos e a ficha técnica. Podemos usar e trabalhar em vários sensores simultaneamente, você só precisa fazer uma corrente. Sem esses programadores USB plug and play, há muito risco de fazer a conexão errada. Uma fiação ruim pode matar seu wi-fi e também seu sensor.
Observação: o fio marrom deve sempre seguir a conexão de aterramento (GND) entre a saída de um dispositivo e a entrada de outro dispositivo.
Alimentação do circuito
Conecte o cabo Mini USB no conector de alimentação do Adafruit Huzzah ESP8266. Ilumine e voila, estamos prontos para ir!
Etapa 3: Código
O código ESP para o sensor Adafruit Huzzah ESP8266 e LSM9DS0 está disponível em nosso repositório github.
Antes de prosseguir com o código, certifique-se de ler as instruções fornecidas no arquivo Leiame e configurar seu Adafruit Huzzah ESP8266 de acordo com ele. A configuração do ESP levará apenas 5 minutos.
O código é longo, mas está na forma mais simples que você pode imaginar e você não terá dificuldade em entendê-lo.
Para sua conveniência, você também pode copiar o código ESP de trabalho para este sensor aqui:
// Distribuído com licença de livre arbítrio.// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas. // LSM9DSO // Este código foi desenvolvido para funcionar com o Mini Módulo TCS3414_I2CS I2C disponível em dcubestore.com.
#incluir
#incluir
#incluir
#incluir
// O endereço LSM9DSO Gyro I2C é 6A (106)
#define Addr_Gyro 0x6A // LSM9DSO O endereço Accl I2C é 1E (30) #define Addr_Accl 0x1E
const char * ssid = "seu ssid";
const char * password = "sua senha"; int xGyro, yGyro, zGyro, xAccl, yAccl, zAccl, xMag, yMag, zMag;
Servidor ESP8266WebServer (80);
void handleroot ()
{dados internos não assinados [6];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Gyro); // Seleciona o registro de controle 1 Wire.write (0x20); // Taxa de dados = 95 Hz, X, Y, eixo Z habilitado, ligue Wire.write (0x0F); // Parar a transmissão I2C Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Gyro); // Seleciona o registro de controle 4 Wire.write (0x23); // 2000 dps em escala real, atualização contínua Wire.write (0x30); // Parar a transmissão I2C Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Accl); // Seleciona o registro de controle 1 Wire.write (0x20); // Taxa de dados de aceleração = 100 Hz, X, Y, eixo Z habilitado, ligue Wire.write (0x67); // Pare a transmissão I2C no dispositivo Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Accl); // Seleciona o registro de controle 2 Wire.write (0x21); // Seleção de escala completa +/- 16g Wire.write (0x20); // Parar a transmissão I2C Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Accl); // Seleciona o registro de controle 5 Wire.write (0x24); // Alta resolução magnética, taxa de dados de saída = 50Hz Wire.write (0x70); // Parar a transmissão I2C Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Accl); // Seleciona o registro de controle 6 Wire.write (0x25); // Escala completa magnética +/- 12 gauss Wire.write (0x60); // Parar a transmissão I2C Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr_Accl); // Seleciona o registro de controle 7 Wire.write (0x26); // Modo normal, modo de conversão magnética contínua Wire.write (0x00); // Parar a transmissão I2C Wire.endTransmission (); atraso (300);
for (int i = 0; i <6; i ++) {// Iniciar I2C Transmission Wire.beginTransmission (Addr_Gyro); // Selecione o registro de dados Wire.write ((40 + i)); // Parar a transmissão I2C Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr_Gyro, 1);
// Leia 6 bytes de dados
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb if (Wire.available () == 1) {data = Wire.read (); }}
// Converta os dados
int xGyro = ((dados [1] * 256) + dados [0]); int yGyro = ((dados [3] * 256) + dados [2]); int zGyro = ((dados [5] * 256) + dados [4]);
for (int i = 0; i <6; i ++) {// Iniciar I2C Transmission Wire.beginTransmission (Addr_Accl); // Selecione o registro de dados Wire.write ((40 + i)); // Parar a transmissão I2C Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr_Accl, 1);
// Leia 6 bytes de dados
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb // zAccl lsb, zAccl msb if (Wire.available () == 1) {data = Wire.read (); }}
// Converta os dados
int xAccl = ((dados [1] * 256) + dados [0]); int yAccl = ((dados [3] * 256) + dados [2]); int zAccl = ((dados [5] * 256) + dados [4]);
for (int i = 0; i <6; i ++) {// Iniciar I2C Transmission Wire.beginTransmission (Addr_Accl); // Selecione o registro de dados Wire.write ((8 + i)); // Parar a transmissão I2C Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr_Accl, 1);
// Leia 6 bytes de dados
// xMag lsb, xMag msb, yMag lsb, yMag msb // zMag lsb, zMag msb if (Wire.available () == 1) {data = Wire.read (); }}
// Converta os dados
int xMag = ((dados [1] * 256) + dados [0]); int yMag = ((dados [3] * 256) + dados [2]); int zMag = ((dados [5] * 256) + dados [4]);
// Dados de saída para monitor serial
Serial.print ("Eixo X de rotação:"); Serial.println (xGyro); Serial.print ("Eixo Y de rotação:"); Serial.println (yGyro); Serial.print ("Eixo Z de rotação:"); Serial.println (zGyro); Serial.print ("Aceleração no eixo X:"); Serial.println (xAccl); Serial.print ("Aceleração no eixo Y:"); Serial.println (yAccl); Serial.print ("Aceleração no eixo Z:"); Serial.println (zAccl); Serial.print ("Campo magnético no eixo X:"); Serial.println (xMag); Serial.print ("Campo magnético no eixo Y:"); Serial.println (yMag); Serial.print ("Arquivo magnético no eixo Z:"); Serial.println (zMag);
// Saída de dados para o servidor web
server.sendContent ("
DCUBE STORE
www.dcubestore.com
"" Mini Módulo Sensor I2C LSM9DS0
);
server.sendContent ("
Eixo X de rotação = "+ String (xGyro)); server.sendContent ("
Eixo Y de rotação = "+ String (yGyro)); server.sendContent ("
Eixo Z de rotação = "+ String (zGyro)); server.sendContent ("
Aceleração no eixo X = "+ String (xAccl)); server.sendContent ("
Aceleração no eixo Y = "+ String (yAccl)); server.sendContent ("
Aceleração no eixo Z = "+ String (zAccl)); server.sendContent ("
Arquivo magnético no eixo X = "+ String (xMag)); server.sendContent ("
Arquivo magnético no eixo Y = "+ String (yMag)); server.sendContent ("
Arquivo magnético no eixo Z = "+ String (zMag)); atraso (1000);}
void setup ()
{// Inicializar a comunicação I2C como MASTER Wire.begin (2, 14); // Inicializar a comunicação serial, definir a taxa de transmissão = 115200 Serial.begin (115200);
// Conecte-se à rede WiFi
WiFi.begin (ssid, senha);
// Aguarde a conexão
while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } Serial.println (""); Serial.print ("Conectado a"); Serial.println (ssid);
// Obtenha o endereço IP de ESP8266
Serial.print ("endereço IP:"); Serial.println (WiFi.localIP ());
// Inicie o servidor
server.on ("/", base manual); server.begin (); Serial.println ("servidor HTTP iniciado"); }
void loop ()
{server.handleClient (); }
Etapa 4: Funcionamento do Código
Agora, baixe (ou git pull) o código e abra-o no IDE do Arduino.
Compile e carregue o código e veja a saída no Serial Monitor.
Nota: Antes de fazer o upload, certifique-se de inserir sua rede SSID e senha no código.
Copie o endereço IP do ESP8266 do Monitor Serial e cole-o no seu navegador. Você verá uma página da web com eixo de rotação, aceleração e leitura do campo magnético nos 3 eixos.
As saídas do sensor no Serial Monitor e no Web Server são mostradas na imagem acima.
Etapa 5: aplicativos e recursos
O LSM9DS0 é um pacote de sistema com um sensor 3D de aceleração linear digital, um sensor 3D digital de taxa angular e um sensor 3D magnético digital. Ao medir essas três propriedades, você pode obter uma grande quantidade de conhecimento sobre o movimento de um objeto. Medindo a força e a direção do campo magnético da Terra com um magnetômetro, você pode aproximar sua direção. Um acelerômetro em seu telefone pode medir a direção da força da gravidade e estimar a orientação (retrato, paisagem, plano, etc.). Quadricópteros com giroscópios integrados podem detectar oscilações ou inclinações repentinas. Podemos usar isso no Sistema de Posicionamento Global (GPS).
Alguns outros aplicativos incluem navegação interna, interfaces de usuário inteligentes, reconhecimento avançado de gestos, dispositivos de entrada de jogos e realidade virtual, etc.
Com a ajuda do ESP8266, podemos aumentar sua capacidade para um comprimento maior. Podemos controlar nossos aparelhos e monitorar o desempenho de nossos desktops e dispositivos móveis. Podemos armazenar e gerenciar os dados online e estudá-los a qualquer momento para modificações. Mais aplicativos incluem automação residencial, rede de malha, controle sem fio industrial, monitores do bebê, redes de sensores, eletrônicos vestíveis, dispositivos com reconhecimento de localização Wi-Fi, sinalizadores de sistema de posição Wi-Fi.
Etapa 6: Recursos para ir mais longe
Para obter mais informações sobre LSM9DS0 e ESP8266, verifique os links abaixo:
- Folha de dados do sensor LSM9DS0
- Diagrama de fiação LSM9DS0
- Folha de dados ESP8266
Recomendado:
ESP 8266 Nodemcu RGB LED Strip controlado por um servidor remoto da Web: 4 etapas
ESP 8266 Nodemcu RGB LED Strip controlado por um servidor remoto da Web: Neste instructables, aprenderemos como converter um nodemcu em um IR remoto da faixa de LED RGB e que nodemcu remoto deve ser controlado por uma página da web hospedada em um celular ou pc por nodemcu
Relógio de animação SMART LED conectado à web com painel de controle baseado na web, servidor de hora sincronizado: 11 etapas (com imagens)
Relógio de animação SMART LED conectado à web com painel de controle baseado na web, servidor de tempo sincronizado: a história desse relógio remonta há muito tempo - mais de 30 anos. Meu pai foi o pioneiro dessa ideia quando eu tinha apenas 10 anos de idade, muito antes da revolução do LED - na época em que os LEDs tinham 1/1000 do brilho de seu atual brilho ofuscante. Um verdadeiro
ESP8266-NODEMCU $ 3 Módulo WiFi nº 2 - Controle de pinos sem fio por meio da PÁGINA DA WEB: 9 etapas (com imagens)
ESP8266-NODEMCU Módulo 2 WiFi de $ 3 - Controle de pinos sem fio por meio da página da web: Um novo mundo desses micro-computadores chegou e essa coisa é o ESP8266 NODEMCU. Esta é a primeira parte que mostra como você pode instalar o ambiente do esp8266 em seu IDE arduino por meio do vídeo de introdução e como as partes em
Controlando o carro RC por meio de uma interface da Web: 6 etapas (com imagens)
Controlando o carro RC por meio de uma interface da web: Olá amigos, Neste instrutível, vou ensiná-los a fazer um carro RC por meio de uma interface da web. Vamos controlá-lo sem fio por meio de um servidor nosso. Usando o método que mostrarei a você, não precisaremos usar um receptor RC. Para hospedar a web
Execute qualquer item alimentado por bateria por meio de alimentação CA: 4 etapas
Use qualquer item alimentado por bateria através da alimentação CA .: Você já não teve baterias suficientes para um objeto? Ou você já perdeu o adaptador de um objeto e quis usá-lo novamente? Ou apenas quer fazer algumas faíscas legais no seu quarto?