Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

Pessoal, alguém já testou o alcance do ESP para com o roteador? no caso o nodemcu por exemplo.

 

Pergunto, pois por exemplo, em um sistema de medição de umidade de solo de uma plantação o roteador ficaria em um ponto recebendo as leituras dos ESP´s, mas qual será o limite de alcance?

Link para o comentário
Compartilhar em outros sites

Já se falou isso no início do tópico (tem inclusive o link do teste). Com antenas omini normais e com a antena interna do ESP conseguem mais de 300m em espaço aberto, com antenas melhores direcionais conseguem alcance de até 3 km (ou até mais dependendo da antena, mas no teste conseguiram esta ordem de grandeza).

Link para o comentário
Compartilhar em outros sites

@ViniciusKruz eu o instalei ano passado, mexi pouco com ele.

Como mencionei anteriormente, estou usando o PhoneGap e estou gostando bastante!

Alem disso, eu alterei muito o meu projeto: fiz o App totalmente pelo PhoneGap, salvando as informações de IP CLIENTE tudo em localStorage, e o webserver será apenas para poder configurar a rede em cada esp8266 inicialmente.

Com essa modificação que fiz, ficou 10000x mais rápido, tanto o aplicativo, quando o acionamento do relê!

 

Vou carregar umas fotos, mas para não "poluir" o tópico, vou deixá-las em spoiler.

 

De brincadeira, fiz alguns apps que tinha em mente, e não deixa a desejar em nada! Os plugins são tops!!

 

 

 


IMG_4280.JPG

IMG_4281.JPG

IMG_4282.JPG

IMG_4283.JPG
 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@rodrigocirilo  voce pode aumentar o alcance com uma antena... No esp aquela "linhazinha" é a antena dele, deve chegar a n maximo uns 5 metros, SE chegar, mas se voce fizer uma gambiarra para antena externa o alcance pode chegar ha uns 100 metros ou mais, o que é o suficiente para áreas rurais.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

23 horas atrás, lucianolcoa disse:

@rodrigocirilo  voce pode aumentar o alcance com uma antena... No esp aquela "linhazinha" é a antena dele, deve chegar a n maximo uns 5 metros, SE chegar, mas se voce fizer uma gambiarra para antena externa o alcance pode chegar ha uns 100 metros ou mais, o que é o suficiente para áreas rurais.

O teste que fizeram que deu 300m foi com a antena interna do ESP8266, com antena externa o alcance é maior.

 

Vocês que conhecem o Atom, estou testando ele (gostei da interface, achei ele muito mais intuitivo, tudo a mão) e ele parece ser muito mais fácil de usar e poderoso (talvez) que o Eclipse, mas como eu uso biblioteca de terceiros nele ? Parecia ser fácil mas eu não estou conseguindo.

Link para o comentário
Compartilhar em outros sites

Em 17/02/2017 às 08:03, rodrigocirilo disse:

Pessoal, alguém já testou o alcance do ESP para com o roteador? no caso o nodemcu por exemplo.

 

Pergunto, pois por exemplo, em um sistema de medição de umidade de solo de uma plantação o roteador ficaria em um ponto recebendo as leituras dos ESP´s, mas qual será o limite de alcance?

 

Encontrei os links com os testes de velocidade, olhe e babe.

Citação

 

Fizeram um teste num ESP8266 e chegaram a 366m com a antena normal (PCB) com um roteador com antena comum, mas com boas antenas direcionais conseguiram a 4,28Km de alcance. Tem este link no youtube com o teste que eles fizeram, o alcance é impressionante para algo tão pequeno.

 

http://hackaday.com/2014/09/26/esp8266-distance-testing/

 

https://www.youtube.com/watch?v=7BYdZ_24yg0

 

 

Recordar é viver !

 

adicionado 3 minutos depois

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Papibakigrafo Instalei o PhoneGap e comparando com o XDK tem vantagens e desvantagens, no XDK, já está a IDE praticamente pronta mas me parece que só compila para IOS e Android, já o PhoneGap, pelo que entendi, compila pra uma infinidade de sistemas, só que pra ele funcionar tem que instalar uma IDE separada, entendi errado? 

 

Estou sem internet esses dias, estou conectando pela morta(ops, digo, vivo) se eu demorar pra responder não esquenta não. A internet está tão ruim que não vou nem terminar a instalação do PhoneGap agora, vou esperar a instalação da nova internet primeiro.

adicionado 4 minutos depois

@rodrigocirilo Isso que você ta querendo vai funcionar melhor com um xbee: https://www.sparkfun.com/products/8742

 

Dá pra formar uma rede mesh e um vai repetindo a informação pro outro até chegar no ESP8266, as distâncias vão desde 1km  até 45km

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Senhores,

 

Estou tentando compilar o meu programa no ATOM (ainda aperfeiçoando o programa de sincronismo mas colocando mais algumas informações uteis) e está dando o erro de compilação abaixo. Eu não estou compreendendo bem o porque do erro, mas imagino que seja alguma diferença de funcionamento dele em relação ao Eclipse e ao Arduino IDE (neles não estava tendo este tipo de erro), como corrigir isto ?

 

Citação

D:/ESP8266/PlatformIO/Teste2/src/Teste2.ino:103:13: error: expected ',' or '...' before numeric constant

String user = UsuarioPadrao; // usu�rio da web

^

lib\BME280\src/BME280I2C.h:65:18: note: in expansion of macro 'SDA'

bool begin(int SDA, int SCL);

^

D:/ESP8266/PlatformIO/Teste2/src/Teste2.ino: In function 'char* convStrToCharArr(String)':

 

 

Vai abaixo o trecho do código em referência (coloquei um pouco mais pois pode ser útil ao entendimento, mas a linha em referência é a 103, que é a penúltima, coloquei o código desde a linha 1 até a 104, a 103 é:

String user = UsuarioPadrao; // usuário da web

.

 

/*
 * ESP8266 NodeMCU V0.9 Endereço MAC:18fe34e77366
 * Posições da memória EEPROM AT24C32
 * 0    a 31   : SSID (Wifi)
 * 32   a 99   : Senha (Wifi)
 * 100  a 119  : Usuário do login web
 * 120  a 189  : Senha do login web
 * 200  a 203  : IP
 * 204  a 207  : Gateway
 * 208  a 211  : Sub-rede
 * 212  a 271  : Servidor NTP
 *
 *
 *
 * 4078 a 4081 : Diferença entre Hora Servidor NTP e Hora DS3231 (signed long, microssegundos)
 * 4082 a 4085 : Tempo Decorrido entre Hora Anterior Servidor NTP e Hora Atual (unsigned long, segundos)
 * 4086 a 4089 : Hora Último Acerto (unsigned long, ustamp)
 *
 * 4093        : Registrador de Deriva Térmica do DS3231 (signed byte)
 *
 * 4094 e 4095 : EEPROM AT24C32 Teste de Integridade da EEPROM (o endereço final é 4095 para 4KBytes)
 *
 */
#define end_SSID 0
#define tam_SSID 32
#define end_Senha_Wifi tam_SSID
#define tam_Senha_Wifi 68
#define end_Usuario (end_Senha_Wifi + tam_Senha_Wifi)
#define tam_Usuario 20
#define end_Senha_Login (end_Usuario + tam_Usuario)
#define tam_Senha_Login 70

#define end_Servidor_NTP 212 // endereço logo após a Sub-rede
#define tam_Servidor_NTP 70



#define end_diferenca_ustamp 4082
#define end_ustamp 4086
#define end_diferenca_acerto 4078
#define end_reg_deriva 4093


//#include <osapi.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
//#include <EEPROM.h>  // EEPROM virtual
#include <IPAddress.h>
#include <Esp.h>
#include <Wire.h>
#define SDA 4 // SDA = PIN 4 = GPIO4 = D2 (ESP-12 V0.9)
#define SCL 5 // SCL = PIN 5 = GPIO5 = D1 (ESP-12 V0.9)
#include <WiFiUdp.h>
#include <RtcDS3231.h>  // Biblioteca - Rtc_by_Makuna
//RtcDS3231 Rtc;
RtcDS3231<TwoWire> Rtc(Wire);
/*#include <RTC.h>
RTC Rtc;*/
#include <LiquidCrystal_I2C.h> // Biblioteca - fmalpartida-new-liquidcrystal-bb6d545c00c3
// Set the LCD address to 0x27 for a 20 chars and 4 line display
#define Endereco_LCD 0x27
#define Col_LCD 20
#define Lin_LCD 4
LiquidCrystal_I2C  lcd(Endereco_LCD,2,1,0,4,5,6,7,3,POSITIVE);
//#include <BME280.h>
#include <BME280I2C.h>
BME280I2C bme280(5, 2, 1, 1, 0, 4);
//BME280 bme280(5, 2, 1, 1, 0, 4);
// Indoor Navigation : normal mode, standby time = 0.5ms
// pressure ×16, temperature ×2, humidity ×1, filter = x16
// Current Consumption = 633 ?A
// RMS Noise = 0.2 Pa/1.7 cm
// Data Output Rate = 25Hz
// Filter Bandwidth = 0.53 Hz
// Response Time (75%) = 0.9 s

//double temp = 0.0, pressure = 0.0, humid = 0.0;
float temp = 0.0, pressure = 0.0, humid = 0.0, altitude = 0.0;
#define nivel_do_mar (float)1013.25 // pressão em hPa ao nível do mar
ADC_MODE(ADC_VCC);

extern "C" {
#include "user_interface.h"
}


/*char dia[]="01";
 char _mes[]="01";
 char ano[]="2010";
 char hora[]="00";
 char minuto[]="00";
 char segundo[]="00";*/

//#define MEM_ALOC_SIZE 512 // tamanho da memória EEPROM

char ssid[] = "Sua Rede";
char password[] = "Senha da Rede";

#define UsuarioPadrao "admin"
#define SenhaPadrao "admin"

String user = UsuarioPadrao; // usuário da web
String pwd = SenhaPadrao; // senha da web

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Intrudera6 rapaz, dei uma procurada pra te ajudar, mas não consegui nada! Mas acredito que seja algo à variável! =/

 

@ViniciusKruz terminei o meu app todo em HTML + CSS + JQuery, para a automação residencial. Até a programação de liga/desliga consegui fazer e salvar na eeprom, e tudo dinâmicamente! =)

 

Achei um firmware interessante: ESPEasy! Alguém já ouviu falar? Ele é totalmente configurável! Achei interessante: http://www.letscontrolit.com/wiki/index.php/ESPEasy#ESP_Easy_web_interface

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Eu travei, não estou conseguindo ir para lugar nenhum, não estou conseguindo fazer mais nada no ATOM e nem consigo sair dos outros problemas para conseguir compilar alguma coisa tanto no Eclipse ou no Arduino IDE. Acredito que o erro seja uma diferença na sintaxe do C compilado no Atom em relação a IDE do Arduino e do Eclipse, acho que o problema pode estar aqui:

 

Citação

char ssid[] = "Sua Rede";

char password[] = "Senha da Rede";

 

ou aqui:

Citação

#define UsuarioPadrao "admin"

#define SenhaPadrao "admin"

 

E me aborreci tanto que larguei de lado e parei de pensar no assunto para não encher o saco. Não gosto de ficar muito tempo parado dando murro em ponta de faca e não fazendo nada que preste sem sair do lugar.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Pessoal uma duvida rapida aqui. Aquela struct do renato aloi. Eu precisava converter a char em String, pra funcionar uma parada maneira que to tentando implementar...

 

O ***** e que, a char não vira String -_-'

 

Tentei com String o codigo e funcionou, mas quero salvar na struct e depois converter em String.

 

Alguem tem uma luz de converter char em String no arduino?

Link para o comentário
Compartilhar em outros sites

@Papibakigrafo  ta dando erro mano, vou colocar parte do meu codigo.. Essa transformação tem que ir para uma biblioteca e como string ela vai

 

#include <EEPROM.h>

#include <ESP8266WebServer.h>
   // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).

// Locais dos itens da configuração
#define VERSION_START  500
#define CONFIG_START   6
#define CONFIG_VERSION "1a"
String telegram ="xxxxxxxxxxxxxxxaaaaaaaaaaaaaaaa22222222222222";
              
#define BOT_SCAN_MESSAGE_INTERVAL 1000 //Intervalo para obter novas mensagens
long lastTimeScan;  // Ultima vez que buscou mensagem
bool ledStatus = false; // Estado do LED
bool relayStatus = false; // Estado do Relê

int botao= D5;
int led=D4;
int led1=D0;



// Estrutura de configuração da EEPROM
struct ConfigStruct
{
char token[50];
  IPAddress ip;
  IPAddress gateway;
 
} wifiConfig;


ESP8266WebServer server(80);

String leitura(wifiConfig.token);


WiFiClientSecure client;

UniversalTelegramBot bot(leitura, client);

 

adicionado 12 minutos depois

Nesse codigo se eu colocar a string telegram no lugar de leitura em bot, ela vai, agora tentando converter a leitura nos cambalaxos eu travo :(

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@lucianolcoa Então, acredito que seja a leitura na biblioteca.

 

Eu estava usando para substituir a variável UTC (salvava via POST o valor na EEPROM, mas para recuperar na multiplicação, retornava 0, vai saber Deus porque kkkk):

int16_t utc = -3; //UTC -3:00 Brazil

NTPClient timeClient(ntpUDP, "a.st1.ntp.br", utc * 3600, 60000); //PEGA O HORÁRIO EXATO

No webserver, aparecia certinho quanso salvava na EEPROM, mas quando usava a variável para multiplicar, dava erro.

 

No seu caso, está acontecendo a mesma coisa, então, acredito que as bibliotecas não conseguem ler esse dado em forma de Struct.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!