Uma das coisas mais legais que me lembro de ter feito com um de meus primeiros computadores, um CP400 Color II, quando tinha uns oito ou nove anos de idade, foi controlar uma pequena lâmpada com o computador e também fazê-lo reagir de acordo com a iluminação de meu quarto. Era tudo bem básico, e não foi preciso nenhum circuito especial. O CP400 era um daqueles computadores que você ligava na televisão e gravava seus programas em fitas K-7 utilizando um gravador comum. Para isso, ele tinha uma interface com três cabos: um era conectado à saída de som do gravador e era usado para ler – escutar – os dados que estavam gravados na fita; outro era conectado à entrada de microfone do gravador e era usado para gravar dados e programas; e um último que servia para controlar o gravador remotamente (ligando ou desligando o motor do gravador).
O BASIC do CP400 tinha um comando chamado MOTOR, que controlava o gravador através dos parâmetros ON ou OFF. MOTOR ON ligava o motor e MOTOR OFF, desligava. Investigando um pouco, descobri que a coisa toda era bem simples – o comando MOTOR ON fechava o circuito entre os dois fios daquele cabo e o MOTOR OFF, abria. Então, bastou colocar uma pilha e uma lâmpada no lugar do gravador e o computador estava pronto para controlar programaticamente aquela lâmpada.
Para medir o nível de iluminação do quarto, usei a porta do joystick. O CP400 tinha duas portas para joysticks analógicos que nada mais eram que dois potenciômetros conectados à alavanca de controle. Um deles controlava o eixo X e o outro o eixo Y. Para ler os valores do Joystick, o BASIC contava com um comando chamado JOYSTK, que recebia como parâmetro um número de 0 a 3, indicando qual dos potenciômetros seria lido e retornava um valor entre 0 e 63. Se a leitura de JOYSTK(0) indicasse 0, isso significava que o joystick esquerdo estava com sua alavanca toda para o lado esquerdo. E se ele indicasse 63, ela estava toda para o lado direito. A única coisa que fiz foi substituir um dos potenciômetros por um resistor sensível a luz (um LDR). E aí, lendo o valor com a função JOYSTK, era possível saber como estava a iluminação do quarto. Daí para frente, a brincadeira era criar programas bem simples que controlassem a pequena luz de acordo com a iluminação do quarto. Parece simples, mas aquilo era o mais próximo de uma casa inteligente que eu já tinha chegado. A sensação de estar programando as coisas ao meu redor era incrível. Era como ter superpoderes.
Hoje, mais de 30 anos depois, tenho dedicado boa parte de meu tempo livre construindo projetos de eletrônica com Arduino e outras plataformas para criar objetos (ou coisas) conectadas à Internet e que possam ser controladas através de programação. Isso é o que está no centro do que estamos chamando de Internet das Coisas. Nessa rede de coisas conectadas, objetos de nosso dia-a-dia, como luminárias, portas, janelas, equipamentos de som, motores e uma infinidade de sensores, passam a ser ativos, inteligentes e controláveis por meio da rede e de programas de computador. Dessa maneira, eles passam a ser muito mais capazes do que eram antes. Porém, hoje, a maioria das coisas que compramos ainda não pode ser controlada e as que podem não possuem necessariamente APIs e protocolos abertos. E isso complica bem a vida. Nesse caso, você tem algumas alternativas e vou falar de duas delas.
A primeira funciona quando já existe algum tipo de interface de controle no objeto que você quer controlar. Ela pode ser na forma de uma porta de controle, como no caso do gravador que eu citei no começo do artigo, pode ser através de um controle remoto comum ou, em alguns casos, através da rede IP de sua casa. Sim, cada vez mais, equipamentos vêm com conexão à rede para serem controlados por apps em telefones celulares ou outros equipamentos, mas nem todos oferecem uma documentação de suas interfaces, protocolos ou APIs de controle. Nesses casos, você precisa emular as alternativas de controle existentes de alguma maneira. Você pode ligar seu computador às portas existentes e emular os sinais, enviar os comandos do controle remoto com um emissor de infravermelho, ou fazer a engenharia reversa dos protocolos de controle e emulá-los com algum programa em seu computador. Com um pouco de paciência, você conseguirá controlar grande parte das funcionalidades desses objetos através de programas em seu computador ou smartphone.
A segunda é para os objetos que não possuem nenhum tipo de interface de controle remoto. Nesse caso, se o objeto possui teclas de controle, você pode usar os botões já existentes no equipamento que quer controlar e ligá-los com fios até seu computador e, com a ajuda de alguns circuitos, simular a ativação dos botões. Em outros casos, você precisará criar alguns circuitos que façam a ponte entre seu computador – que comandará tudo – e o objeto. Isso pode ser feito facilmente com plataformas como o Arduino. A parte mais chata é achar maneiras de o Arduino controlar o objeto. Isso pode requerer que você abra o objeto e faça uma boa engenharia reversa de como ele funciona. Aos poucos, você poderá identificar o que faz o quê, e aí poderá pensar em como fazer uma interface dele com o Arduino. Depois, é só escolher como quer enviar os comandos para o Arduino, o que já é mais simples, e existem vários exemplos na rede de como fazer isso. O que mais tenho usado ultimamente é o controle através da rede IP. Para isso, coloco um shield Ethernet no Arduino para que ele fale com a rede e escrevo os programas necessários para o Arduino receber os comandos e para meu computador enviá-los.
Bom, a ideia não é dar todos os detalhes de como você pode fazer isso, mas sim mostrar que as possibilidades estão abertas. Tudo o que fazemos com programas em nossos desktops e na web também pode ser aplicado para controlar coisas do dia-a-dia. Se você pesquisar um pouco, ficará surpreso com a quantidade de coisas interessantes que existem na web sobre esse tipo de projeto e o que você pode fazer com eles. Além de dedicar meu tempo a esse tipo de projeto, criei o site Fazedores para disseminar informações deste mundo, e você pode aprender algumas coisas por lá.
É hora de tomarmos controle das coisas. Vamos nessa?
***
Artigo publicado na Revista iMasters. Você pode assinar a Revista e receber as edições impressas em casa, saiba mais.