
Tentando conectar meu sensor de temperatura DS18B20 à minha
estufa inteligente , descobri que a Internet não possui instruções completas para conectar esse sensor através da linguagem de programação Python. Eu o uso desde que trabalho com a plataforma Raspberry Pi. Eu decidi resolver esse problema. Acontece que trabalhar com o TCP não é tão difícil, mas você precisa entender o que estamos fazendo e por quê. Uma dança de duas horas com um pandeiro claramente me irritou. Então aqui, além da parte do software, quero contar todo o algoritmo do começo ao fim. Eu acho que outros sensores funcionam da mesma forma, então um artigo grande será o mesmo para todos. Espero que, se você quiser conectar seu sensor, não precise de um pandeiro :) E então, vamos começar, peço o Habrokat.
Xamanismo com um sensor

Para nós, precisamos conectar o próprio sensor. Vou trabalhar com o sensor de temperatura DS18B20. Artigos completos sobre este tópico, não os duplicaremos. Você pode ler sobre a conexão
aqui . Então precisamos obter dados do sensor. Faremos o mesmo como indicado no artigo acima. Há um ótimo exemplo de Python do qual sou fã.
import os tfile=open("/sys/bus/w1/devices/28-000000d7970b/w1_slave") ttext=tfile.read() tfile.close() temp=ttext.split("\n")[1].split(" ")[9] temperature=float(temp[2:])/1000 print temperature
Não se esqueça de substituir os dados pelo seu sensor.Como podemos ver, a temperatura assume a variável de temperatura (quem teria pensado), da qual precisaremos ainda mais.
Conjurar com monitoramento
Bem, primeiro você precisa registrar o
narodmon.ru , aqueles que ainda não o fizeram. A API de serviço nos oferece transmitir dados através de TCP. Então vamos lá. Somos solicitados a transmitir o texto no seguinte formato:
#MAC[#NAME][#LAT][#LNG][#ELE]\n #mac1#value1[#time1][#name1]\n ... #macN#valueN[#timeN][#nameN]\n ##
Mas, na verdade, precisamos passar apenas três parâmetros: o MAC do dispositivo, o nome do sensor e seu valor. O resto não é necessário, e nós realmente não precisamos disso.
Na primeira linha, precisamos passar o retículo, o MAC e o caractere de avanço de linha \ n.
Na segunda linha e nas linhas subseqüentes, transferimos novamente a grade, o nome do sensor, novamente a grade e as leituras do sensor. Terminamos isso com o caractere de avanço de linha \ n.
Na última linha, você precisa passar duas grades para concluir o pacote.
Como resultado, o formato permanece o seguinte:
#MAC\n #mac1#value1\n #macN#valueN\n ##
Escrevendo um programa Python
Vamos escrever o programa em Python 2. O algoritmo será assim. Recebemos dados do sensor e os escrevemos na variável de temperatura. Em seguida, formamos o pacote e o enviamos ao People Monitoring Server. Executaremos o script a cada 10 minutos (o intervalo mínimo permitido para o envio de leituras é de 5 minutos) via cron.
O envio ocorre da seguinte maneira (exemplo no site de monitoramento):
Estamos conectados ao servidor narodmon.ru:8283
Como resultado, obtemos o seguinte script:
Código do script finalizado É assim que é o envio de dados de dois sensores. Se você der um nome ao sensor começando com T, o próprio servidor determinará que é um sensor de temperatura.
Agora precisamos adicionar o sensor ao cron.
crontab -e
:
crontab -e
e adicionamos a seguinte linha:
*/10 * * * * sudo python /home/pi/narod.py
Estamos aguardando a execução do script.
Agora vamos aqui
narodmon.ru/ip e ver se os dados foram transmitidos. Se tudo estiver em ordem, clique no botão "Adicionar dispositivo" na página principal do menu e especifique o MAC. Agora podemos personalizar tudo a gosto (nome, tipo, localização etc.). Você pode tornar o sensor público um dia após o início da transmissão do testemunho.
Isso é tudo. Desejo-lhe boa sorte na conexão de sensores. Faça isso com mais frequência, porque é muito conveniente em casa ver a temperatura com antecedência no local para onde está indo.
Vejo você de novo :)