Ir para o conteúdo
Tiago CUnha

Projeto de Aptidão Profissional (Arduino)

Mensagens Recomendadas

Tiago CUnha

A minha PAP é a seguinte: c/ arduinos Wifi's connectar um relógio (feito por mim) a um contador de tempo bilhar, e deste modo através do relógio conseguir visualizar o tempo decorrido e o preço a pagar.

Estou c dificuldades, por exempli nao estou a consgeuir conectar os dois arduinos Wifi shield (o código em C que arranjei não funciona).

 

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Que shield estás a usar?

Que código estás a usar?

O que é que não funciona?

Os dois Arduinos estão a ligar a um access point? Ou está um configurado como access point e o outro como cliente?

Porque é que não actualizas a hora através duma ligação a um servidor NTP em vez de usares dois arduinos? Não seria melhor um RTC para tomar conta do tempo e ser ajustado quando necessário??


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago CUnha
7 minutos atrás, bubulindo disse:

Que shield estás a usar?

Que código estás a usar?

O que é que não funciona?

Os dois Arduinos estão a ligar a um access point? Ou está um configurado como access point e o outro como cliente?

Porque é que não actualizas a hora através duma ligação a um servidor NTP em vez de usares dois arduinos? Não seria melhor um RTC para tomar conta do tempo e ser ajustado quando necessário??

Eu sou um bocado novato nisto... código em C

Eu como estou na escola nao consigo ligar a rede wifi deles, vou testar logo em casa.

O código que eu fui buscar é de um arduino Wifi da Sparkfun, http://blog.filipeflop.com/wireless/arduino-wifi-shield-cc3000.html

N é para ajustar a hora, o objetivo é quando tirarem as bolas dos contadores de tempo bilhar, o tempo começar a contar tanto no contador como no relógio, para o cliente conseguir verificar o tempo através do relógio e não ter que ir até ao balcão.

CERTOS termos não percebo muito bem...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

E o shield que estás a usar é um CC3000 ???

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Acho que os termos que utilizei são bastante claros para alguém que vai mexer com Wi-Fi... ou pelo menos serão fáceis de encontrar no Google.

Eu acho que é para ajustar a hora... porque vais ter de mostrar aos jogadores de alguma forma qual o tempo que ainda tem disponível... e como tal terás de "perguntar" pelo tempo repetidamente. Daí ter falado dum servidor NTP (existem exemplos de NTP directamente na IDE do Arduino...).

Acho que deves pesquisar um pouco mais... responder correctamente a todas as questões que foram colocadas e certamente que consegues resolver isso.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago CUnha
Em 24/04/2017 às 15:33, apocsantos disse:

Boa tarde,

E o shield que estás a usar é um CC3000 ???

Cordiais cumprimentos,

Apocsantos

Não! Consegue me dar o seu e-mail ? assim mando lhe foto.Gostaria de arranjar ajuda para fazer o código em C para interligar este arduino wifi a uma rede WIFI

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago CUnha
Em 24/04/2017 às 18:37, bubulindo disse:

Acho que os termos que utilizei são bastante claros para alguém que vai mexer com Wi-Fi... ou pelo menos serão fáceis de encontrar no Google.

Eu acho que é para ajustar a hora... porque vais ter de mostrar aos jogadores de alguma forma qual o tempo que ainda tem disponível... e como tal terás de "perguntar" pelo tempo repetidamente. Daí ter falado dum servidor NTP (existem exemplos de NTP directamente na IDE do Arduino...).

Acho que deves pesquisar um pouco mais... responder correctamente a todas as questões que foram colocadas e certamente que consegues resolver isso.

Os jogadores não têm um tempo defenido, jogam o tempo que quiserem o relógio mostra-lhes o tempo que já estão a jogar, tanto podem estar a jogar ha 10 horas como há 30 minutos... também contêm o preço que têm que pagar correspondente aquela hora!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Bem, eu sinceramente esperava um ESP8266, ou um CC3300, de qualquer das formas vai dar sensivelmente ao mesmo!

 

#include <WiFi.h>

char ssid[] = "ssdi";  //nome da rede wifi
int status = WL_IDLE_STATUS;

void setup() {
  // define a comunicação série para debugging e outros usos
  Serial.begin(9600);

  //tenta ligar à rede
  Serial.println("Ligando...");
  status = WiFi.begin(ssid);

  // Se não conseguiu ligar
  if ( status != WL_CONNECTED) { 
    Serial.println("Não conseguiu ligar ao wifi");
    while(true);
  } 
  else {
      Serial.print("Ligado");
  }
}

void loop() {
  //loop principal do arduino
}

Só para o caso de ser uma rede com password e autenticação WEP

#include <WiFi.h>

char ssid[] = "ssid";   
char key[] = "password";  
int keyIndex = 0;           
int status = WL_IDLE_STATUS;

void setup() 
{
  Serial.begin(9600);
  Serial.println("Ligando...");
  status = WiFi.begin(ssid, keyIndex, key);
  if ( status != WL_CONNECTED) { 
    Serial.println("Não consegui ligar!");
    while(true);
  } 
  else {
    Serial.println("Ligado");
  }
}

void loop() 
{
  //loop principal do arduino
}

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago CUnha
4 minutos atrás, apocsantos disse:

Boa tarde,

Bem, eu sinceramente esperava um ESP8266, ou um CC3300, de qualquer das formas vai dar sensivelmente ao mesmo!

 


#include <WiFi.h>

char ssid[] = "ssdi";  //nome da rede wifi
int status = WL_IDLE_STATUS;

void setup() {
  // define a comunicação série para debugging e outros usos
  Serial.begin(9600);

  //tenta ligar à rede
  Serial.println("Ligando...");
  status = WiFi.begin(ssid);

  // Se não conseguiu ligar
  if ( status != WL_CONNECTED) { 
    Serial.println("Não conseguiu ligar ao wifi");
    while(true);
  } 
  else {
      Serial.print("Ligado");
  }
}

void loop() {
  //loop principal do arduino
}

Só para o caso de ser uma rede com password e autenticação WEP


#include <WiFi.h>

char ssid[] = "ssid";   
char key[] = "password";  
int keyIndex = 0;           
int status = WL_IDLE_STATUS;

void setup() 
{
  Serial.begin(9600);
  Serial.println("Ligando...");
  status = WiFi.begin(ssid, keyIndex, key);
  if ( status != WL_CONNECTED) { 
    Serial.println("Não consegui ligar!");
    while(true);
  } 
  else {
    Serial.println("Ligado");
  }
}

void loop() 
{
  //loop principal do arduino
}

Cordiais cumprimentos,

Apocsantos

Muito Obrigado, vou testar esta tarde! 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo
3 hours ago, Tiago CUnha said:

Os jogadores não têm um tempo defenido, jogam o tempo que quiserem o relógio mostra-lhes o tempo que já estão a jogar, tanto podem estar a jogar ha 10 horas como há 30 minutos... também contêm o preço que têm que pagar correspondente aquela hora!

Isto em nada muda o meu comentário... terás de continuar a "perguntar" pela hora ao arduino que está do lado do relógio. Daí dizer que seria mais simples ligares a um servidor NTP e poupares o trabalho de um dos lados. Claro que também podes reduzir ainda mais o custo e usar um real time clock, mas aí deixa de fazer sentido como uma mostra das tuas capacidades.

Tens aqui duas placas com as quais consegues fazer o que queres sem grandes problemas:

http://nodemcu.com/index_en.html

https://www.wemos.cc/

Os Wemos até tem shields com LCD's e tenho a certeza que existe um exemplo NTP com a IDE do Arduino... Que módulo Wi-Fi é que estás mesmo a utilizar... se for um ESP8266 tenho um feeling que a biblioteca Wi-Fi não funcionará. Mas não tenho a certeza. Seja como for, vê o código do apocsantos e coloca mais dúvidas.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

@bubulindo, usar um NTP também não é complicado, o azar é que está com um shield "xpto"...

 

unsigned long inline ntpUnixTime (UDP &udp)
{
  static int udpInited = udp.begin(123); 
  const char timeServer[] = "pool.ntp.org";
  const long ntpFirstFourBytes = 0xEC0600E3; 

    if (! udpInited)
    return 0;

  udp.flush();


  if (! (udp.beginPacket(timeServer, 123) 
	 && udp.write((byte *)&ntpFirstFourBytes, 48) == 48
	 && udp.endPacket()))
    return 0;				

  
  const int pollIntv = 150;		
  const byte maxPoll = 15;		
  int pktLen;				
  for (byte i=0; i<maxPoll; i++) {
    if ((pktLen = udp.parsePacket()) == 48)
      break;
    delay(pollIntv);
  }
  if (pktLen != 48)
    return 0;				

  const byte useless = 40;
  for (byte i = 0; i < useless; ++i)
    udp.read();

  unsigned long time = udp.read();
  for (byte i = 1; i < 4; i++)
    time = time << 8 | udp.read();
                   
 time += (udp.read() > 115 - pollIntv/8);
 
  udp.flush();

  return time - 2208988800ul;
}

 


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Não é não... eu sei porque já fiz isso (ou usei um exemplo) em preparação para uma aplicação para ver quanto faltava para chegar o autocarro. Felizmente que o datafeed da empresa dos autocarros dava também o tempo actual. :)

Agora como isto é para uma prova de capacidade técnica convém fazer as coisas com alguma dificuldade... não sabemos, por exemplo, como é que o Arduino do relógio sabe as horas.

Seja como for, ainda mais importante que mostrar capacidade técnica é mostrar conhecimento das tecnologias possíveis e de fazer uma decisão de qual é a melhor.

Neste caso, ir buscar a hora a um servidor NTP parece-me mais interessante que dois arduinos a comunicar a hora. Mas cada um sabe de si.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Bom dia,

Efectivamente ter um arduino a comunicar a hora e outro a receber a hora, não tem grande interesse! De qualquer das formas usar NTP num arduino não é nada do outro mundo, até porque existem bibliotecas que fazem a "papinha toda".

Creio que a parte chata, se prenda com o shield escolhido. Pessoalmente optaria por um ESP8266 a comunicar utilizando UART, que serviria perfeitamente o objectivo. Agora a dificuldade depende um bocado do circuito wifi escolhido. Eu prefiro seguir a velha mássima KISS (Keep It Simples, Stupid), logo se puder fazer algo de forma simples não vejo qualquer razão para complicar, mas cada um sabe de si, e sabe como o quer fazer.

Se falar-mos de dificuldade, então "batatas" com o Arduino, que pegue numa PIC ou num ATTiny e faça o circuito todo de raiz!

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

@apocsantos Tens de te actualizar... estas plaquinhas https://www.wemos.cc/ só têm um ESP8266 lá dentro e não são feitas para serem um modem. Podes fazer download da API e compilador directamente para a IDE do Arduino e programar o ESP8266 directamente. Tenho de admitir que foi uma das coisas que mais espanto me causou, ver uma plaquita Wi-Fi tão barata (se comprada na China) e facilmente programável.

De resto, concordo contigo e verdade seja dita o Arduino é pouco mais do que o minimo indispensável de componentes para ter uma placa de desenvolvimento. Se pedires a 10 engenheiros electrotécnicos (ou prestes a serem) para desenhar uma placa de desenvolvimento baseada naqueles microcontroladores, eu diria que 8 vão ter um desenho melhor e desses, 4 deles vão ser bastante melhores do que o desenho original. O software, hoje em dia é sim algo interessante, mas originalmente o bootloader era um copy paste duma application note da ATMEL.

E não me espanta muito a utilização da placa em si na educação (acho interessante para desenvolver o conhecimento em microcontroladores sem lidar com problemas externos), o que me espanta sempre é a utilização de bibliotecas tiradas da net apenas para fazer uma integração de algo simples. Eu compreenderia se alguém usasse as bibliotecas Wi-Fi ou Ethernet para implementar um acesso a um data feed ou algo semelhante manualmente, mas não. Pelo que se vê por aqui, os professores aceitam trabalhos apenas de integração.


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Bom dia,

Por acaso já conheço a wemos, mas para ligar a um arduino, parece-me "overkill" uma vez que a wemos, pode perfeitamente fazer quase tudo que um arduino faz, mas de forma autónoma.

De resto, o arduino tem "tralha a mais", para o que é necessário e mesmo os "clones" mantêm a mesma onda de "tralha a mais". De qualquer das formas no sistema de ensino o arduino parece ser um sucesso, até porque os professores, aceitam trabalhos que na realidade são apenas integrações e o código é basicamente utilizar bibliotecas existentes, até em abuso, tantas vezes com trabalha inútil a mais, que só ocupa espaço, quando a capacidade de memória já é pequena o quanto baste, para ter de lidar com mais tralha.

Cordiais cumprimentos,

Apocsantos

 


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago CUnha
Em 2017-4-30 às 11:01, bubulindo disse:

Não é não... eu sei porque já fiz isso (ou usei um exemplo) em preparação para uma aplicação para ver quanto faltava para chegar o autocarro. Felizmente que o datafeed da empresa dos autocarros dava também o tempo actual. :)

Agora como isto é para uma prova de capacidade técnica convém fazer as coisas com alguma dificuldade... não sabemos, por exemplo, como é que o Arduino do relógio sabe as horas.

Seja como for, ainda mais importante que mostrar capacidade técnica é mostrar conhecimento das tecnologias possíveis e de fazer uma decisão de qual é a melhor.

Neste caso, ir buscar a hora a um servidor NTP parece-me mais interessante que dois arduinos a comunicar a hora. Mas cada um sabe de si.

Eu já encomendei o material e tenho um prazo muito limitado, por isso nao consigo mandar vir novo material agora. É so por isso que nao sigo a sua ideia... 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Porque irias precisar de novo material quando as ideias que referimos necessitam de menos material??


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Tiago CUnha
4 minutos atrás, bubulindo disse:

Porque irias precisar de novo material quando as ideias que referimos necessitam de menos material??

Penso que a minha maneira é mais fácil e ja vai adientada... se começar c a sua ideia de novo não sei se tenho tempo para a finalizar

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Ok... tu lá sabes. Seja como for... prepara-te para defender as tuas escolhas perante o professor. Os comentários aqui serão, ou espero eu, o que te será feito pelo avaliador.

Boa sorte. 


include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bubulindo

Ok... tu lá sabes. Seja como for... prepara-te para defender as tuas escolhas perante o professor. Os comentários aqui serão, ou espero eu, o que te será feito pelo avaliador.

Boa sorte. 

  • Voto 1

include <ai se te avio>

Mãe () {

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.