Índice:

Tweet-A-Temp: 8 etapas
Tweet-A-Temp: 8 etapas

Vídeo: Tweet-A-Temp: 8 etapas

Vídeo: Tweet-A-Temp: 8 etapas
Vídeo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembro
Anonim

Por Z0tZot's Homebrew ExperimentsSiga mais pelo autor:

Magic 8 Beer 8 Sided Die
Magic 8 Beer 8 Sided Die
Magic 8 Beer 8 Sided Die
Magic 8 Beer 8 Sided Die

Meu filho mais velho (Minion # 1) e eu começamos a construir um Tweet-A-Watt e não seguimos as instruções corretamente, ou seja, fizemos ambos os receptores como receptores padrão em vez de apenas um e então preenchemos metade do segundo receptor XBee. tínhamos duas opções: cortar as partes extras ou outra coisa. Como ainda não encontrei um Kill-A-Watt localmente e tinha um termômetro externo / interno que queria informatizar há 10 anos, sabia o que tinha que fazer: precisava usar o termômetro para medir a temperatura da minha banheira de hidromassagem e, em seguida, twittar! Recentemente, dei ao Minion # 1 a tarefa de descrever um controlador de banheira de hidromassagem sem limites. Ele mencionou, bem, poderíamos torná-lo sem fio, mas não, que bobagem … Eu adoro quando um plano de 10 anos se concretiza. Veja no Twitter

Etapa 1: construir os receptores Xbee

Construa os Receptores Xbee
Construa os Receptores Xbee

Construa dois receptores XBEE. Eu usei os receptores da Lady Ada, qualquer receptor serve. Você precisará acessar os pinos VREF e AD0 do XBee. O truque do Tweet-A-Watt é a configuração. Na verdade, você configura um dos dispositivos para repetir os valores do Kill-A-Watt com: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Isso define o endereço (1), define o modo de suspensão, temporizador e período e, em seguida, define os pinos 4 e 2 para o modo de entrada analógica (2), que enviará pacotes 0x13 (19 decimais), 1 ms entre as amostras. O truque aqui é a entrada analógica. Você pode ler pequenas tensões (0-5V) diretamente pelo XBee. No Tweet-A-Watt, você definiria os pinos 4 e 0 para enviar os Amps e Volts medidos pelo Kill-A-Watt. Na realidade ele não envia isso, ele envia a pequena voltagem medida pelos chips no Kill-A-Watt para o receptor XBee que está conectado a um computador. O software do computador lê constantemente os pacotes recebidos e recalcula a voltagem e amperagem reais e, em seguida, calcula a potência.

Etapa 2: o termômetro

O termômetro
O termômetro
O termômetro
O termômetro
O termômetro
O termômetro

Comprei dois desses termômetros internos / externos há cerca de 10 anos em um depósito doméstico. Sempre fiquei fascinado com o "termômetro" externo conectado à unidade base com o que parecia ser um plugue de áudio padrão. Sempre me perguntei se poderia medir a temperatura conectando-o a um conector de microfone de um computador.

Acontece que eu provavelmente poderia fazer funcionar, mas seria complicado. O plugue é na verdade um conector de 3/32 , em vez de um plugue de áudio de 1/8. Este é o plugue padrão para telefones celulares para microfones externos. Isso apresentou um problema, pois não consegui encontrar nenhum plugue de microfone em minhas pilhas de lixo que não eram de montagem superficial. Tive de comprar um conjunto de Radio Shack (US $ 2), o que atrasou muito o projeto (chegar a um shack não foi fácil). Desmontei uma unidade antes de perceber de repente como a coisa funcionava, era um divisor de tensão! Ficou óbvio quando pensei nisso. Tornou a vida muito fácil.

Etapa 3: O que é um divisor de tensão?

O que é um divisor de tensão?
O que é um divisor de tensão?

Um dos melhores lugares para aprender sobre Eletrônica é Wisconsin Online. Os divisores são explicados nessa página (canto inferior direito), ou você pode visitar a página da Wikipedia sobre tensão. Em suma, se você tiver dois resistores em série, a queda de tensão em cada resistor é em proporção ao tamanho do resistor. Se você tiver tensão V em um circuito de R (1) + R (2), então V = V (1) + V (2). Portanto, se V = 3V e V (2) = 2V, você sabe que V (1) = 1V. Agora, a base da Lei de Ohm é que a corrente (I) é V / R. Em um circuito em série, a corrente é a mesma em todo o circuito, então a corrente em A e B é a mesma para todo o circuito. Portanto, I = V1 / R1 = V2 / R2. Nós sabemos que V2 = V - V1, conectando, vemos V1 / R1 = (V-V1) / R2. Resolvendo, obtemos R2 = R1 * (V-V1) / V1 Então, se sabemos se sabemos V (1), V e R (2), podemos resolver para R2. Se temos R2, sabemos o valor de Termistor!

Etapa 4: O que é um termistor?

O que é um termistor?
O que é um termistor?

Um termistor é um resistor que muda a resistência com a temperatura. Usando as técnicas do divisor de tensão para determinar a resistência, podemos dizer qual é a temperatura. O problema é que eu tenho um termistor barato em um invólucro de um produto de 10 anos. Como eu deveria criar uma função para ir de uma resistência a uma temperatura? Bem, eu tenho um termômetro ao qual ele se conecta! Então, eu medi muito. Copiei a temperatura para baixo e medi a resistência do termistor. Coloquei na geladeira e coloquei em água morna. Mais tarde, eu pegaria a temperatura ambiente, já que tinha tempo. Suponho que poderia ter lido a página da Wikipedia e tentei adivinhar os fatores aeb, mas presumi que estava usando um componente não linear, possivelmente com falha, que não correspondia mais à fabricação especificações. Ah, e eu sou preguiçoso. Então, despejei todos os valores no Excel e depois os representei graficamente. No início, estava preocupado em ter que me lembrar da matemática profunda e sombria de algo como "ajuste mínimo ao quadrado" quando descobri que o Excell faria isso por Obviamente, estou perdendo lacunas no gráfico, mas obtive muitos dados bons sobre as temperaturas da banheira de hidromassagem (100-105F). Ao verificar as faixas de temperatura ambiente, percebi algo que quase torna meu trabalho inútil. O termômetro "Precise Temp" relatou um erro de 3 a 7 graus entre "interno" e "externo" quando o termistor estava a centímetros de distância! Agora, isso pode ser porque eu misturei e combinei o termistor entre as unidades, mas estou apostando que tem mais a ver com a qualidade de uma criança de 10 anos, $ 10 item & Independentemente da "precisão" da temperatura, eu precisava de precisão e vários testes do mesmo intervalo mostrou resultados muito próximos ao longo dos dias. No longo prazo, provavelmente irei conectar o termistor a um tubo que leva à banheira de hidromassagem, então vou precisar de um deslocamento de qualquer maneira. Então, fazendo com que o Excel exibisse a equação, eu a coloco no código, e até agora está " fechar."

Etapa 5: Circuito do transmissor

Circuito Transmissor
Circuito Transmissor

O circuito do transmissor é simples. Eu escolhi um resistor de 100 kOhm para R2, pois parecia que ele se encaixaria no intervalo do gráfico, e eu tinha um sobressalente de dessoldar várias coisas com os Minions. Eu conecto isso em série com o termistor por meio de um conector. Então eu adicionei uma bateria. Corri 3 V para VREF e o topo do divisor de tensão e para a entrada Xbee + 3V. Coloquei o GND (bateria negativa) na entrada GND e na parte inferior do divisor. Em seguida, conectei AD0 (Volts in) ao meio do circuito divisor de tensão.

AD0 lerá uma tensão relativa de VREF a V (1). Assim, à medida que a bateria diminui, a voltagem relativa deve diminuir da mesma forma. Eventualmente, irei alimentar a unidade com uma fonte de alimentação local. A unidade finalizada funcionou bem, conectamos tudo com pinças de crocodilo, o que a tornava frágil. Depois que consegui a conexão fêmea 3/32 ", coloquei o transmissor em uma banheira de plástico aleatória que tínhamos (um ex-recipiente de homus). Isso deve protegê-lo das intempéries. Como comprei conectores de" montagem em painel ", foi tão simples como fazer um orifício no plástico para adicionar o conector ao exterior com uma conexão razoavelmente estanque à água. Assim que o obtivemos, era hora de testar.

Etapa 6: Casa, Casa, Sem Alcance

Casa, Casa, Sem Alcance
Casa, Casa, Sem Alcance
Casa, Casa, Sem Alcance
Casa, Casa, Sem Alcance
Casa, Casa, Sem Alcance
Casa, Casa, Sem Alcance

Uma das primeiras coisas que notamos foi que o alcance morreu de uma morte horrível assim que saímos do escritório com o transmissor. Tentamos em uma sala diferente e os resultados foram terríveis. 1 metro de distância ele cagou. É hora de olhar para as soluções. Ocorreu-me que, onde testamos, tínhamos 4 fontes de Wi-Fi em um raio de 5 pés, todas na faixa de 2,5 Ghz como o Xbee. Também não "apontamos o Xbee. Depois de pesquisar, descobri que poderia comprar um rádio Xbee mais potente (cerca de US $ 23) ou adicionar antenas. Uma das coisas de que eu precisava era um bom teste de alcance. O software X-CTU da Digi tem um "Teste de alcance" embutido, mas não funcionou. Passei algum tempo tentando descobrir como fazê-lo funcionar. Na verdade, isso foi mais fácil de fazer do que dizer. Eu realmente não precisava do teste X-CTU, apenas o Valor do "RX Signal Strength Indicator" (RSSI). Olhei nos usos xbee.pyTweet-A-Watt e ali mesmo, linha 39: [code] self.rssi = p [3] [/code] O que significa que faz parte do valor de retorno do Xbee! (xb.rssi no wattcher), então modifiquei uma linha de depuração para meu hack: print str (counter) + ": RSSI:" + str (xb.rssi) + "| "+ time.strftime ("% Y% m% d,% H:% M ") +", "+": Voltagem: "+ str (CalcualtedVolts) +" avgv "+ str (avgv) +" Termistor: " + str (x) + "Temperatura:" + str (Temperatura) Que produz uma linha como esta: 373: RSSI: 82 | 2009 04 26, 11:18,: Voltagem: 1,80100585938 avgv 593 Termistor: 71,2276559865 Temperatura: 78,6813444881 Você pode também consulte RSSI com processamento, na página de Igoe de Tom. Embora você deseje modificar o comprimento do pacote (na parte superior), já que Processing reclamou sobre a gravação após o final do tamanho do buffer de pacote. Acredito que você deve ser maior que 2 * o esperado comprimento do pacote. O código de Tom olha para trás em busca de um pacote anterior, o que significa que se ele perder o indicador de pacote Ox7E, ele poderá ser executado por um tempo. Dado que estou próximo ao limite externo do intervalo de medição, isso pode acontecer por um tempo. Eu configurei o meu para 600 e ele parou de me dar a mensagem "erro, desativando serialEvent ()". O código de Tom apenas imprime a configuração mais recente, o que não é muito útil para mim. Minha linha de depuração me permite rastrear muda enquanto o Minion # 1 se pergunta. Agora tínhamos uma boa maneira de medir, mais do que "ei pai, temos um pacote", era hora de tentar algumas idéias de antenas caseiras! Usando ideias de https://www.usbwifi.orconhosting.net.nz/ descobri que o Corner Cube mediu uma diminuição em dB, embora na prática não pareça ajudar a conectar um par desconectado. O Vegatible Steamer, na verdade, era o melhor para mirar e reconectar. A configuração do USB Wifi é muito diferente de algumas outras pessoas. Os vaporizadores têm uma haste no meio que facilita a colocação do XBee. Uma tigela de pho com folha de estanho também parece promissora (embora tenhamos removido a folha de estanho mais tarde e a segurado no lugar). Também tentamos fazer uma parábola com uma peça dobrada de "esteira" de rodas quentes, mas não pareceu ajudar. Um dos problemas é que estávamos testando na borda externa da faixa. A maioria dos rádios de 2,5 GHz, especialmente o XBee, usa espalhar Spectrum, o que significa que eles podem pegar um mas para "sincronizar" e então o software XBee procura o início de um pacote XBee antes de disparar. Isso significa que você obtém um efeito de tudo ou nada. Os rádios ficam travados ou não. Às vezes parece sorte, mas na verdade você é uma antena nessas faixas e pode estar impactando os resultados. Fui comprar dois vapores, mas descobri que o custo de um vaporizador no supermercado local era de US $ 10 e, pelo preço de dois vapores, posso conseguir um XBee mais potente. Então, olhei em mais alguns lugares e encontrei um filtro bem fundo que ficou ainda melhor. Era $ 7. Acredito que a profundidade é importante, já que estou no lado transmissor das coisas, ela reflete mais do sinal (de acordo com as notas em https://www.usbwifi.orconhosting.net.nz/number13.jpg). Resultados finais, é que com um vaporizador de legumes em uma extremidade (a ser substituído) e um coador na outra, eu tenho sinal a cerca de 20-30m, de um escritório interno, através de 3-4 paredes, até a banheira de hidromassagem! Dica profissional: Lembre-se para trazer o coador se quiser 1) Seu cônjuge fique e / ou 2) Quer verduras cozidas no vapor mais tarde. Pessoalmente, gosto da aparência de pétalas do vaporizador de vegetais.

Etapa 7: Software

Programas
Programas

Começando com o Tweet-A-Wattsoftware, comecei a hackear o código Python. Principalmente, eu precisava remover a conversão de Watts, as funções de histórico e, em seguida, precisava adicionar um número de divisões por 0 proteções (o Tweet-A-Watt presume que os pacotes terão dados). Em seguida, adicionei a fórmula do Excel ao programa e testado. Eu o configurei para imprimir todos os pacotes e tenho muitos depuração no código para detectar problemas. Eu tentei fazer a parte do gráfico funcionar, mas desisti, o que me leva a: Python Rant: Esta é a segunda vez que tenho tentou fazer um grande projeto em Python. Não consegui fazer com que todas as dependências de bibliotecas e pacotes básicos funcionassem em menos de 20 horas no Windows, Windows 64, Ubuntu e Fedora. Finalmente tive que construir quase tudo do zero e mesmo assim algumas funções não funcionaram. Tentei 2.4, 2.5, 2.6 e várias versões 3. X e, em seguida, versões de cada biblioteca, que por sua vez tinham dependências de outros pacotes. Enquanto outros podem ter reclamações contra a linguagem, eu achei simplesmente instalar, mesmo usando muitos dos "instaladores fáceis" para ser assustador na melhor das hipóteses! Depois de calcular as temperaturas, fiz um ajuste de 1 grau, porque não pude acreditar na banheira de hidromassagem estava em 106F. Eu realmente não acredito que esteja em 105 também. Em seguida, alterei a lógica do relatório e do Twitter. Como não tenho certeza se receberei pacotes ou pacotes bons, optei por relatar a temperatura uma vez por hora. Presumo que irei reduzir isso em um tempo. Atualmente, o script está sendo executado como um usuário normal. Vou querer movê-lo para um serviço eventualmente.

Etapa 8: Próximas etapas

Existem alguns próximos passos óbvios:

1) Substitua a peneira de vegetais a. Minions precisam de seus vegetais! b. Esse era velho de qualquer maneira. 2) Coloque a antena da banheira de hidromassagem sob o convés a. O deck pode torná-lo ainda "mais longe", mas permitirá uma configuração mais feia. b. Posso então colocar o termistor na parte inferior e encontrar um local melhor. 3) Adicione mais sensores a. O mais fácil é um sensor de temperatura externa. b. Mas não há nenhuma razão para não podermos detectar o estado dos painéis de controle, especialmente o sensor de calor que é tocado magicamente quando as crianças vão embora. c. Outros sensores meteorológicos (vento, umidade, etc.) d. Seria bom controlar a banheira de hidromassagem e eu poderia desligar o aquecimento durante grande parte da noite e do dia. 4) Posso ajustar o software a. Os lacaios já querem mensagens melhores por temperatura. b. Devemos ser capazes de responder às respostas e DMs. c. Devo tweetar de forma mais inteligente (menos de uma vez por hora). d. Tenho outras coisas divertidas planejadas.

Recomendado: