Dev (Back & Front)ARTIGO

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

No seguinte artigo, Michel Lutz apresenta um passo a passo mostrando como usar o Swift para exibir a temperatura e a umidade de um módulo DHT11.

Usando o Swift para exibir a temperatura e a umidade de um módulo DHT11
Imagem: Michel Lutz Teixeira

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:

bash
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.

bash
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:

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

Teste se está tudo certo com o comando:

bash
swift --version 

A saída no terminal deve ser algo como isso:

bash
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.

bash
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!

Desenvolvedor iOS / MacOS na Phi, fintech do hub 4all Tecnologia. Minhas atribuições estão voltadas ao desenvolvimento de arquitetura para os projetos de aplicativos iOS nativos da empresa. Sou responsável por acompanhar e colaborar em definições sobre requisitos técnicos dos produtos, desenvolver ferramentas para MacOS para maior produtividade da equipe nas sprints, pela documentação do ecossistema das plataformas da Apple e, também, pela configuração de CI/CD, bem como, pelo servidor de deploy dos projetos que estou envolvido. Realizo entrevistas com novos candidatos e seus respectivos onboardings em nossos projetos. Criei também o desafio para vagas mobile da empresa, desenvolvendo a ideia e api para consumo dos candidatos.

Ver perfil