Para este passo a passo precisaremos de um dos componentes abaixo:
- Raspberry Pi 2+
- Raspberry Pi 3 Model B
- Model DHT11
- DHT22
Instalando as 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
Faça o download da última versão do SwiftyGPIO compatível 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 comando:
swift --version
A saída no terminal deve 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, e 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:
Espero que este projeto ajude a começar com a criação de projetos de IoT com o Swift.
Até a próxima!