Carregando...

Raspberry Pi DHT-SwiftyGPIO - PTBR

10 de March de 2019

Usando o Swift para exibir a temperatura e a umidade de um módulo DHT11

Requisitos

Raspberry Pi 2+ ou Raspberry Pi 3 Model B Model DHT11 ou DHT22

Instalando Dependências

Para usar os binários pré-construídos fornecidos, você precisará instalar as seguintes dependências:

 

 

sudo apt-get install clang libicu-dev libcurl4-nss-dev

 

 

Iniciando

SwiftyGPIO faça o Download da ultima versão compátivel com sua placa.

Veja a tabela: Build Swift On ARM prebuilt-binaries e baixe.

 

wget https://github.com/uraimo/buildSwiftOnARM/releases/download/4.2.3/swift-4.2.3-RPi23-RaspbianStretch.tgz

 

Descompacte os arquivos para uma pasta de sua escolha. Por exemplo:  /home/michel/swift-4.2.3/ após descompactar, execute um export path:

 

export PATH=/home/michel/swift-4.2.3/usr/bin:"${PATH}" 

 

Teste se está tudo certo com o combando: 

 

swift --version 

 

A saída no terminal de ve ser algo como isso:

 

Swift version 4.2.3 (swift-4.2.3-RELEASE) 
Target: armv7-unknown-linux-gnueabihf

 

 

Clone e rode o projeto

 

$ git clone https://github.com/micheltlutz/DHT-SwiftyGPIO 
$ cd DHT-SwiftyGPIO
$ swift run  Waiting output should be like this: 
Temperatura: 25.0 Umidate: 41.0

 

Arquivos de referência

O DHT.swift foi baseado no projeto dhtxx Mas com modificações.

A DHT class init permite selecionar o sensor e o tipo de conversão de dados que por padrão é Celcius.

 

Enums Types

 

swift public enum SupportedSensor { 
    case dht11, dht22 
} 

public enum ConversionType { 
    case Fahrenheit, Celsius 
} 


init(pin: GPIO, for sensor: SupportedSensor, conversion: ConversionType = .Celsius) { } 

... 


Exemplo criando objeto para um módulo DHT11

 

let dht = DHT(pin: gpios[.P4]!, for: .dht11) 

 

Problemas conhecidos

 

Erros de leitura iniciais ocorrem devido a falha de pulso inicial. Normalmente você terá boa leitura nos 60 segundos após rodar o programa
 
Veja o projeto no GitHub DHT-SwiftyGPIO
 
 
 
 
Espero que este projeto ajude a começar com a criação de projetos de IoT com o Swift

 

 

Desenvolvido por Michel Lütz