app telegram que vc instalou, procure pelo usuário @ImHugosBot
opçao 2: usando um browser do seu celular acesse: http://www.telegram.me/ImHugosBot
para conhecer quais comandos o bot aceita, envie via telegram pro meu bot a mensagem:
/start
…
quero colocar um arduino com shield Ethernet para eu acessar via android. ja tenho ideia do app, tbm ja fiz um parecido para minha casa (ligar Luzes e portão) mais esse da queda de tensão tenho dificuldade com o projeto eletrônico. quais suas ideias para poder me ajudar ainda mais ??? agradeço atenção novamente. e parabéns.…
Arduino vai enxergar a shield como um comando via serial)
2) Crie uma rede wireless local no seu notebook, faça um webapp ou um esquema de socket no programa Java onde o aplicativo se conecte no mesmo para enviar os comandos.
Se puder subir o codigo do programa Java no Github eu te ajudo.
…
o App Inventor, com comando de voz com interação por voz. Agora estou em uma nova versão integrando a Denise da GUILE 3D para interagir os comandos de voz e incluindo controle de água e energia elétrica. Estou monitorando 2 níveis de tanque d'água com seus respectivos volumes, medindo o consumo d'água na saída do tanque principal e pela diferença dos volumes dos tanques e o consumo sei quanto de água a concessionária abasteceu minha residência. E quanto ao controle de energia elétrica tentei utilizar uns medidores de corrente não evasivo, mas eles são muito imprecisos, daí optei em comprar um medidor de consumo no ML (bifásico com neutro), que fornece pulsos por kWh e conhecendo o tempo, tenho a potência, e com um medidor de tensão (módulo arduino), tenho a corrente. Isso tudo plotado em gráficos do google chart (ainda embrionário). Agora já aprontei o hardware e sketch do tanque principal (vazão e volume) e estou enviando para central via nRF24l01. O alcance inicial estava em média de 7 metros sem barreira e com a mudança da biblioteca do "Greg" que você recomendou, dobrou o alcance e atendeu a esta 1ª etapa deste projeto, porém a medição do 2º tanque está a uns 40 metros com 2 lajes e uma parede como barreira. Você tem alguma sugestão econômica para suprir esta necessidade? tenho que enviar dados de corrente de bamba, pulso de energia elétrica, volume do tanque. …
municação via socket. O problema que ainda não sei usar a função correta na biblioteca pscok.h para tratar dos dados recebidos da aplicação socket cliente. Alguém pode me ajudar? Alguem tem algum codigo de exemplo de como usar as funções ou qual variável que armazena o buffer preciso manipular?
Segue abaixo os codigos SocketApp.pde & socketapp.c respectivamente
A biblioteca do shield esta disponivel no link abaixo e está em anexo tambem:
https://github.com/linksprite/ZG2100BasedWiFiShield
Desde já agradeço a ajuda...
/* * Socket App * * A simple socket application example using the WiShield 1.0 */
#include <WiShield.h>
#define WIRELESS_MODE_INFRA 1#define WIRELESS_MODE_ADHOC 2
// Wireless configuration parameters ----------------------------------------unsigned char local_ip[] = {192,168,1,2}; // IP address of WiShieldunsigned char gateway_ip[] = {192,168,1,1}; // router or gateway IP addressunsigned char subnet_mask[] = {255,255,255,0}; // subnet mask for the local networkconst prog_char ssid[] PROGMEM = {"ASYNCLABS"}; // max 32 bytes
unsigned char security_type = 0; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2
// WPA/WPA2 passphraseconst prog_char security_passphrase[] PROGMEM = {"12345678"}; // max 64 characters
// WEP 128-bit keys// sample HEX keysprog_uchar wep_keys[] 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, // Key 2 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3 };
// setup the wireless mode// infrastructure - connect to AP// adhoc - connect to another WiFi deviceunsigned char wireless_mode = WIRELESS_MODE_INFRA;
unsigned char ssid_len;unsigned char security_passphrase_len;//---------------------------------------------------------------------------
void setup(){ WiFi.init();}
void loop(){ WiFi.run();}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/* * This is a short example of how to write uIP applications using * protosockets. */
/* * We define the application state (struct socket_app_state) in the * socketapp.h file, so we need to include it here. We also include * uip.h (since this cannot be included in socketapp.h) and * <string.h>, since we use the memcpy() function in the code. */#include "socketapp.h"#include "uip.h"#include <string.h>
/* * Declaration of the protosocket function that handles the connection * (defined at the end of the code). */static int handle_connection(struct socket_app_state *s);/*---------------------------------------------------------------------------*//* * The initialization function. We must explicitly call this function * from the system initialization code, some time after uip_init() is * called. */void socket_app_init(void){ /* We start to listen for connections on TCP port 1000. */ uip_listen(HTONS(1000));}/*---------------------------------------------------------------------------*//* * In socketapp.h we have defined the UIP_APPCALL macro to * socket_app_appcall so that this function is uIP's application * function. This function is called whenever an uIP event occurs * (e.g. when a new connection is established, new data arrives, sent * data is acknowledged, data needs to be retransmitted, etc.). */void socket_app_appcall(void){ /* * The uip_conn structure has a field called "appstate" that holds * the application state of the connection. We make a pointer to * this to access it easier. */ struct socket_app_state *s = &(uip_conn->appstate);
/* * If a new connection was just established, we should initialize * the protosocket in our applications' state structure. */ if(uip_connected()) { PSOCK_INIT(&s->p, s->inputbuffer, sizeof(s->inputbuffer)); }
/* * Finally, we run the protosocket function that actually handles * the communication. We pass it a pointer to the application state * of the current connection. */ handle_connection(s);}/*---------------------------------------------------------------------------*//* * This is the protosocket function that handles the communication. A * protosocket function must always return an int, but must never * explicitly return - all return statements are hidden in the PSOCK * macros. */static int handle_connection(struct socket_app_state *s){ PSOCK_BEGIN(&s->p);
PSOCK_SEND_STR(&s->p, "Hello. What is you name?\n"); PSOCK_READTO(&s->p, '\n'); PSOCK_SEND_STR(&s->p, "Hello "); PSOCK_SEND_STR(&s->p, s->inputbuffer); memset(s->inputbuffer, 0x00, sizeof(s->inputbuffer)); PSOCK_CLOSE(&s->p);
PSOCK_END(&s->p);}…
tivos um "cliente".
Basicamente o "cliente" se comunica com o Arduino da seguinte maneira:
Os pinos analógicos estão sendo utilizados como digitais. (AA0 = A0 , AA1 = A1, etc...)
Aqui foram criadas as variáveis:
//-------------------------------------------------------------------
int AA0 = A0;//Arduino analogica A0; int AA1 = A1;//Arduino analogica A1; int AA2 = A2;//Arduino analogica A2; int AA3 = A3;//Arduino analogica A3; int AA4 = A4;//Arduino analogica A4;
//-------------------------------------------------------------------
int D2 = 2;//Arduino digital D2; int D3 = 3;//Arduino digital D3; int D4 = 4;//Arduino digital D4; int D5 = 5;//Arduino digital D5; int D6 = 6;//Arduino digital D6;
//-------------------------------------------------------------------
Para ativar desativar (LOW, HIGH) o cliente envia ao Arduino:
aNhigh (ativa); aNlow (desativa) - N=0,1,2,3,4 ou
dNhigh (ativa); dNlow (desativa) - N=2,3,4,5,6
e o Arduino responde:
aNon/off - N=zero,...,four ou
dNon/off - N=one,...,five
sinalizando a operação efetuada.
Comunicação bem simples mas funcional. Boa para aprender a programar.
O que você quer fazer ? Não conheço esse MIT Inventor 2 - é um gerador de app Android não é ? Você consegue acessar um Werbserver com ele ? Se sim, é só seguir esse "protocolo lógico" acima que o seu App Inventor vai funcionar com esse código Arduino ai.
Você pode testar variações, implementar outras coisas - tipo fazer blink, ativar por "x" segundos, etc.. e se souber um pouquinho de html e/ou php / javascript, testar numa página web antes de finalizar o seu app.
Basta entender a lógica acima, que está bem escritinha e fácil de entender.
É um bom test-drive para quem está começando !!
Boa sorte !!!…
Adicionado por odilon cenamo ao 11:07 em 20 julho 2016
ndar e ao mesmo tempo receber do outro lado.
Enfim, existem caminhos.
1) Vc pode comprar pronto ou fazer um "ramal celular". Tronco celular é uma linha movel adaptada para fixa por uma caixinha. O ramal celular é similar, mas em vez de te dar um tronco te da um ramal.
ex:
http://produto.mercadolivre.com.br/MLB-680048695-interface-celular-gsm-ramal-pinaculo-mc-1r-_JM
Obs: Não conheço o vendedor nem o produto, não é um anuncio. Estou só comentando sobre o tipo de produto. Normalmente mando um link generico do google mas nesse caso se colocar só "ramal celular" vem até coisa de biologia.
2) Vc pode usar um sistema de voip padrão com esse recurso.
Usando por ex uma caixinha dessas:
https://www.google.com.br/search?q=gateway+voip+fxs+fxo&oq=gateway+voip+fxs+fxo&aqs=chrome..69i57j0j69i60.10879j0j7&sourceid=chrome&ie=UTF-8
Devidamente escolhida, compatível, não sei te informar qual, eventualmente com um PC (ou raspberry do lado) para executar o script de comando dela é possivel realizar a manobra de transferir uma ligação da caixinha para um app de celular como esse:
https://www.3cx.com/
https://play.google.com/store/apps/developer?id=3CX&hl=pt_BR
Ou outro similar. Tudo depende da compatibilidade.
…
uma outra versão do app.
2) Criar um aplicativo fexivel, que permite criação dinamica de objetos (vc já cria uns 100 botões e 100 labels e deixa escondidos, depois vai fazendo aprarecer conforme necessidade ou aprende a verdadeira criação dinamica de objetos (mais dificil)) e monta a tela conforme um script. Vc vai ter tb que criar um editor de script (arquivo que vc cria pra salvar a tela no editor e depois ler no app). Esse é o melhor caminho. Pode levar muuuito tempo pra desenvolver tudo, é o que o produto que vc tem como referencia faz provavelmente.
3) Usa o jeito mais comum por aqui, que seria criar com uma pagina HTML guardada dentro de um arduino. Veja isso:
http://labdegaragem.com/video/controlando-sua-casa-pela-internet-c-arduino
O melhor de tudo é que vc acessa por PC, android, mac, iphone, simbiam, o que for !
Basta vc criar um icone (atalho) no telefone pra chamar sua pagina dentro do browser que já parece profissional.
Eu faria funcionar no modo 3 e depois, com calma, pra profissionalizar pensaria no modo 2.
…
nicos de IOT, sendo que desenvolvo meus projetos só para conhecer a tecnologia de software e hardware por trás das coisas.
Há cerca de 4 anos pensei em desenvolver um robô que faz um mapeamento de ambiente, podendo ser um labirinto, achando uma saída ou ponto pré-determinado.
O robô foi construído na plataforma Tamiya, chassi para o veículo com esteira e caixa de engrenagem com motor duplo. A placa foi utilizada no Garagino VER 1 Básico, com um Dual Motor Garagino, ambos descontinuados.
Um dos módulos é o sensor de obstáculos. Utilizei o sensor ultrassônico ultra-sônico HC-SR04 movimentado por um Micro servo motor SG90.
Para fazer uma comunicação do robô com o celular, use o Módulo Bluetooth RS232 - HC-06.
Desenvolvi um Sketch Arduino para movimentar o radar e ler o sensor. Esse Sketch comunica com um App, desenvolvido para o App Inventor.
1- Montagem Do Hardware
Material:
1 - Protoboard;
1 - Arduino Uno ou genérico;
1 - Sensor ultra-sônico HC-SR04;
2 - Resistores de 10kΩ;
1 - Micro servo motor SG90;
1 - Módulo Bluetooth RS232 - HC06.
As portas TRIG e ECHO do SR04 vão conectadas os pinos A3 e A2 do Arduino, respectivamente.
As portas TX e RX do HC06 se conectam nos pinos D3 e D2 do Arduino, respectivamente.
Entre as portas D3 e RX existem 2 Resistores de 10kΩ ligados entre si e no pino GND do Arduino.
O SG90, se liga ao pino D9 do Arduino.
As portas GND e VCC são conectadas aos seus respectivos pontos.
2- Código Arduino
Agora vamos programar o Arduino de acordo com o fluxo abaixo.
Também segue uma cópia do arquivo ".ino" em anexo.
1º - Inclusão das bibliotecas;
2º - Definições dos pinos de acordo com a descrição da etapa anterior.
3º - Declaração de variáveis para enviar dados via bluetooth.
4º - Declaração de variáveis para o sensor de distancia.
5º - Declaração de variáveis do calculo de distância.
6º - Setup, definindo a saída para o Bluetooth e definindo o pino do servo motor.
7º - No Loop, colocar o servo para frente; fazer a leitura do bluetooth; receber um comando definido no App e ativa o sensor; parar o sensor.
8º - Criar um Void() para a leitura do sensor.
Esse Void() faz a varredura do sensor, dos ângulos 10º ao 170º, colhendo as distancias; estabelece 45 cm como a maior distancia a ser lida; organiza as variáveis diferentes para enviar para o App; gera as saídas formatadas, interpolando variáveis a uma string de formatação; especifica a utilização de buffer para armazenamento; faz a leitura a cada 50 milissegundos, mesma do temporizador do App.
9º - Criar um Void() para parar o sensor.
3 - Código App Inventor
Segue o arquivo ".aia" do App Inventor para análise, alterações e utilização.
No App Inventor vamos primeiro fazer o designer da tela.
Observações importantes:
- Na paleta Desenho e Animação, vamos utilizar a Pintura, com as seguintes propriedades: Cor De Fundo, preto; Imagem De Fundo, nenhum; Tamanho Da Fonte, 14.0; Altura, 150 pixels; Largura, 300 pixels; Largura Da Linha, 2.0; Cor De Pintura, Verde; Alinhamento Do Texto, centro : 1.
- Na paleta Sensores, vamos utilizar o Temporizador, com as propriedades de Disparos Contínuos, marcado; Ativado, marcado e Intervalo, 50 (que significa 50 milissegundos, em acordo com o Sketch do Arduino)
Nos blocos, temos 6 blocos com o controle "Quando" e 4 blocos com declaração de variáveis. 1 bloco trata da tela inicial; 2 blocos controlam a lista de pareados do bluetooth; 1 bloco cuida do temporizador; 1 bloco do botão RADAR e 1 bloco do botão PARAR O RADAR.
A maior dificuldade encontrada foi no desenho das linhas do radar, que deveriam seguir o sensor e apresentar as distâncias.
O robô ainda está em desenvolvimento.
Publicarei demais módulos a medida que forem sendo desenvolvidos.
Quem tiver interesse em participar nesse projeto estou à disposição para sugestões e compartilhamento de informações no desenvolvimento.
Abraços fraternos…