Como piscar um LED utilizando BananaPi e Python via SSH

como-piscar-um-led-utilizando-bananapi-e-python-via ssh

Introdução

Este artigo irá demonstrar como fazer um LED piscar, utilizando o microcomputador BananaPi e um script em Python, via SSH.

Sumário

  1. Etapas do Desenvolvimento
  2. Requisitos
  3. Sobre a BananaPi - BPI-M2 Zero
  4. Identificação de Pinos Disponíveis - GPIO
  5. Ligação de Circuito Elétrico
  6. Código em Python - Blink.py
  7. Conexão via SSH
  8. Vídeo Demonstrativo
  9. Referências

01. Etapas do Desenvolvimento

01. Identificar o pino de GPIO disponível para uso na BananaPi
02. Realizar a ligação do circuito elétrico
03. Desenvolver o código
04. Enviar o arquivo de código para a BananaPi
05. Executar o arquivo de código

02. Requisitos

  • Configuração de conexão via SSH realizada na BananaPi
  • Versão do Python 3.10 instalado na BananaPi

03. Sobre a BananaPi - BPI-M2 Zero

A BananaPi M2 Zero é um computador de placa única ultracompacto que mede apenas 60 mm x 30 mm. Ela usa um processador quad-core Cortex A7 allwinner H2+, com 512 MB de memória RAM. É ideal para sistemas leves com alguns aplicativos com espaço limitado. Como outros dispositivos da BananaPi, ele suporta os sistemas operacionais Linux e Android. [1]

Principais características

  • CPU Quad Core ARM Cortex A7 H2+
  • 512 MB de SDRAM.
  • WiFi (AP6212) e Bluetooth integrados.
  • Mini-HDMI.

A BananaPi que estou utilizando possui a distribuição Debian GNU/Linux.

04. Identificação de Pinos Disponíveis - GPIO

BananaPi - Documentação Técnica - Esquema Elétrico - GPIOs

BananaPi - Documentação Técnica - Esquema Elétrico - GPIOs [3]

Os pinos disponíveis para entrada ou saída são identificados como “IO-xx”.

Conforme recorte da documentação técnica mostrada acima, serão utilizados o pino físico 29 (GPIO 7) e o pino físico 6 (GND 3).
Utilizei o GPIO 7 porque os pinos GPIO 0 a GPIO 6 estão reservados para a UART.

GPIO = General Purpose Input/Output

05. Ligação de Circuito Elétrico

Foto em bancada - Circuito elétrico na protoboard

Foto em bancada - Circuito elétrico na protoboard

Software Fritzing - Circuito elétrico na protoboard

Software Fritzing - Circuito elétrico na protoboard [5]

O circuito elétrico mostrado na imagem acima, é composto dos seguintes itens:

  • Fio Jumper Vermelho Macho-Fêmea
  • Fio Jumper Marrom Macho-Fêmea
  • Resistor 330 Ohms
  • LED difuso 5mm Verde

Observação: A BananaPi foi inspirada no RaspberryPi Zero, por isso ambos tem formatos semelhantes. No software Fritzing, só existia o modelo do Raspberry.

Gist - Código em Python para fazer o led piscar a cada 3 segundos [4]

O código mostrado acima foi desenvolvido em Python para executar os comandos de Shell Script na BananaPi. Esses comandos vão gerenciar o pino de GPIO que alimenta o LED, conforme essas etapas:

  • Exportação do pino físico: 29 (GPIO 7)
$ sudo echo 7 > /sys/class/gpio/export
  • Definição de direção do pino: saída (out)
$ sudo echo out > /sys/class/gpio/gpio7/direction
  • Definição do valor de nível lógico: alto (1)
$ sudo echo 1 > /sys/class/gpio/gpio7/value
  • Definição do valor de nível lógico: baixo (0)
$ sudo echo 0 > /sys/class/gpio/gpio7/value
  • Consultar a direção do pino:
$ sudo cat /sys/class/gpio/gpio7/direction
  • Consultar o valor do pino:
$ sudo cat /sys/class/gpio/gpio7/value

Observação: Considerei utilizar o comando sudo em todas as etapas para garantir que teria permissões de nível de administrador para gerenciar o pino do GPIO.

07. Conexão via SSH

Para enviar o arquivo com o código em Python, basta utilizar o comando abaixo:

$ scp /Users/henriqueotogami/bananapi/blink.py pi@bananapi-zero.local:

A senha será requerida e, após ser inserida, o arquivo será enviado.

Envio com sucesso do arquivo Blink.py

Observação: o envio do arquivo deve ser feito antes do acesso a BananaPi via SSH. Se o login já tiver sido feito, será necessário realizar o logout para enviar o arquivo e o login logo em seguida.

Acesso a BananaPi

Para realizar o acesso remotamente da BananaPi, envie o seguinte comando:

$ ssh pi@bananapi-zero.local

A senha de login da BananaPi será requerida e, após ser inserida, o login será iniciado.

Login e senha na BananaPi via SSH

Login e senha na BananaPi via SSH

Para confirmar que o arquivo Blink.py está na BananaPi, após o login, envie o comando:

$ ls

Consulta da existência do arquivo Blink.py na BananaPi após o login via SSH

Execução do código via terminal

Para que o arquivo com o script em Python seja executado, utilize o seguinte comando:

$ python3 blink.py

Executando o arquivo com o script em Python no terminal

Executando o arquivo com o script em Python no terminal

08. Vídeo demonstrativo

Apenas para demonstrar a execução do código e dos logs no terminal que foram descritos acima, segue vídeo abaixo apenas demonstrando o led piscando.

09. Referências

Ficou alguma dúvida ou tem sugestões?
Comente aqui embaixo ou me chame em alguma das minhas redes.
Valeu! ✌🏻

Muito obrigado!

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
-new-feature:-receive-sms-via-webhook-on-sms-textr!

🚀 New Feature: Receive SMS via Webhook on SMS Textr!

Next Post
from-php-to-python-–-porting-a-reddit-clone-with-the-help-of-amazon-q-developer

From PHP to Python – porting a Reddit clone with the help of Amazon Q Developer

Related Posts
harmonyos-next中密码类数据保护场景解析

HarmonyOS Next中密码类数据保护场景解析

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前 API12)在开发多语言电商平台方面的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。 在当今数字化时代,密码类数据的保护对于应用的安全性和用户体验至关重要。无论是登录账号、进行金融交易还是访问敏感信息,密码都起着关键的作用。HarmonyOS Next作为一款先进的操作系统,其提供的Asset Store Kit为密码类数据的安全存储和管理提供了强大的解决方案。 (一)引言 密码类数据保护的重要性    – 在移动应用领域,密码类数据是用户身份验证的核心凭证。一旦密码泄露,用户的账号安全将受到严重威胁,可能导致个人信息被窃取、财产遭受损失等严重后果。例如,在金融类应用中,如果用户的登录密码被泄露,黑客可能会非法访问用户的账户,进行转账、消费等操作。因此,确保密码类数据的安全性是应用开发者必须首要考虑的问题。 Asset Store Kit的关键作用    – HarmonyOS…
Read More