Índice:

Registrador de dados Raspberry Pi Zero W: 8 etapas (com imagens)
Registrador de dados Raspberry Pi Zero W: 8 etapas (com imagens)

Vídeo: Registrador de dados Raspberry Pi Zero W: 8 etapas (com imagens)

Vídeo: Registrador de dados Raspberry Pi Zero W: 8 etapas (com imagens)
Vídeo: Minerando CRYPTO moedas com sua Raspberry Pi Zero e Zero W 2024, Novembro
Anonim
Registrador de dados Raspberry Pi Zero W
Registrador de dados Raspberry Pi Zero W

Usando um Raspberry Pi Zero W, você pode fazer um datalogger barato e fácil de usar, que pode ser conectado a uma rede wi-fi local ou servir como um ponto de acesso em campo que permite baixar dados sem fio com seu smartphone.

Apresentei esta configuração na American Geophysical Union Fall Meeting 2017, como uma forma de fazer sua própria configuração de registrador de dados. Você pode encontrar essa apresentação aqui.

O que você vai precisar:

  • A Raspberry Pi Zero W
  • Um cartão micro SD
  • um cabo USB ou fonte de alimentação USB
  • Um computador com leitor de cartão USB
  • Opcional (mas útil):

    • miniHDMI -> adaptador HDMI (para conectar o Pi a uma tela)
    • Adaptador USB OTG (para conectar um teclado ao Pi

Etapa 1: Configurar Pi Zero W

Para começar, coloque uma imagem Rasbian em um cartão microSD (neste tutorial eu usei 2017-07-05-raspbian-jessie-lite, disponível aqui). Uma versão lite pode ser usada (sem um desktop), pois a configuração será feita através da linha de comando.

Insira o cartão SD no Pi, conecte a tela e um teclado e ligue-o conectando o cabo de alimentação. A configuração sem cabeça também é possível, mas exigiria conexão por SSH.

Após a inicialização do Pi, faça o login (nome de usuário padrão: pi, senha: raspberry) e altere a senha com o comando "passwd".

O teclado pode ser configurado digitando "sudo raspi-config" no terminal.

Etapa 2: conectar ao WiFi

Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi
Conectar-se ao Wi-Fi

Para se conectar à internet, vamos dizer ao Pi a qual rede se conectar. Comece abrindo o seguinte arquivo;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Aqui, adicione as informações de rede na parte inferior;

rede = {

ssid = "nome da rede" psk = "senha da rede"}

No caso de uma rede corporativa, você pode usar a seguinte configuração (ajuste WPA-EAP // TTLA // MSCHAPv2 para as configurações aplicáveis).

rede = {

ssid = "ssid" #Insira o nome da rede key_mgmt = WPA-EAP eap = TTLS identity = "xxxxx" #Insira a senha da conta de login = "xxxxx" #Enter the passwork phase2 = "auth = MSCHAPv2"}

Salve pressionando CTRL + O e saia com CTRL + X.

Agora referencie seu arquivo de configuração em / etc / network / interfaces

sudo nano / etc / network / interfaces

Altere a parte wlan0 para:

wlan0 automático

iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Novamente, salve o arquivo (CTRL + O) e saia (CTRL + X).

Após a reinicialização (reinicialização do sudo), sua conexão wi-fi deve funcionar. Você pode testar isso fazendo ping em um site;

ping www.google.com

Cancele o ping com CTRL + C

Para se conectar ao Pi por SSH sem fio, você deve habilitar o SSH:

sudo raspi-config

Navegue até "5 opções de interface" e habilite o SSH. Em seguida, volte e saia da configuração.

Procure o endereço IP do Pi:

ifconfig

O IP estará em "inet addr:" da interface wlan0.

Agora você pode se conectar ao Pi por WiFi, se estiver na mesma rede. Baixe o Putty (para Windows), digite o endereço IP que você encontrou em "Nome do Host" e pressione "Abrir". Depois de aceitar o aviso, você agora deve ser capaz de ver a linha de comando e fazer o login.

Etapa 3: Atualizar e instalar o software necessário

Atualizar e instalar o software necessário
Atualizar e instalar o software necessário
Atualizar e instalar o software necessário
Atualizar e instalar o software necessário

Depois que o WiFi estiver funcionando, atualize o Pi com:

sudo apt-get update -y && sudo apt-get upgrade -y

Após o término da atualização (pode demorar um pouco), instale o software que usaremos;

sudo apt-get install python3 python3-serial apache2 -y

Etapa 4: conectar a um sensor (neste exemplo, um Arduino)

Conecte o Arduino junto com um teclado usando um hub USB ou conecte o Arduino por meio de uma única porta USB e faça a configuração com SSH via WiFi.

Para poder acessar a porta serial à qual o Arduino está conectado, é útil dar acesso à conta pi padrão. Como o Arduino geralmente é atribuído à porta "/ dev / ttyACM0", use o seguinte comando para dar ao usuário 'pi' acesso à porta:

sudo chown pi: / dev / ttyACM0

Supondo que o Arduino já tenha sido configurado para enviar dados pela porta serial, você pode visualizar os dados em python da seguinte maneira:

Open python;

python3

Importar serial:

import serial

Abra a porta de comunicação:

ser = serial. Serial (port = '/ dev / ttyACM0', taxa de transmissão = 9600, tempo limite = 5)

Onde a taxa de transmissão do Arduino foi definida como 9600 neste caso.

Você pode ler e imprimir uma linha executando o seguinte código:

ser.readline (). decode ('utf-8')

Se estiver funcionando, você pode fechar a conexão e sair do Python com:

ser.close ()

saída()

Etapa 5: configurar os recursos do ponto de acesso WiFi

Ao configurar seu Pi Zero W no modo de ponto de acesso wi-fi, você pode se conectar a ele com qualquer dispositivo wi-fi. Isso permite configurar o logger e baixar dados por wi-fi, sem a necessidade de cabos ou drivers.

Para isso, a Adafruit disponibiliza um bom tutorial. Algumas pequenas observações:

  • Para o driver /etc/hostapd/hostapd.conf, use não use a linha do driver.
  • A etapa "Atualizar hostapd" não deve ser necessária.

Se o ponto de acesso não funcionar no final do tutorial, tente reiniciar o Pi (sudo reboot).

Etapa 6: Alternar entre ponto de acesso wi-fi e modos de cliente

Às vezes, você desejará atualizar o software ou instalar um novo software no Raspberry Pi, mas isso requer uma conexão com a Internet. Felizmente, alternar entre os dois é muito fácil.

Conecte-se ao Pi com SSH (por meio de um cabo, não wi-fi!). Comece interrompendo os serviços do ponto de acesso:

sudo cystemctl stop hostapd.service

sudo cystemctl stop isc-dhcp-server.service

Em seguida, edite o arquivo de interfaces de rede:

sudo nano / etc / network / interfaces

Aqui você deve comentar os parâmetros de hospedagem e descomentar os parâmetros de conexão de rede. Altere-o deste:

# -Parâmetros de hospedagem:

allow-hotplug wlan0 iface wlan0 inet endereço estático 192.168.42.1 netmask 255.255.255.0 # -Network (cliente) parâmetros: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Para isso:

# -Parâmetros de hospedagem: # allow-hotplug wlan0 #iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0 # -Network (cliente) parâmetros: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Salve e feche o arquivo.

Em seguida, você executa os seguintes comandos:

sudo systemctl start wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Agora seu Pi deve se conectar ao wi-fi novamente, permitindo que você atualize e instale o software.

Para voltar ao modo de ponto de acesso, alterne os comentários em / etc / network / interfaces e reinicie o Pi.

Etapa 7: Comentários Finais

Considerações finais
Considerações finais

Configuração do site

O servidor apache está localizado em / var / www /. Para alterar a página padrão, edite o arquivo /var/www/html/index.html.

Você pode disponibilizar os arquivos aqui para download pela conexão wi-fi, navegando em seu navegador até o endereço IP do Pi (192.168.42.1). Qualquer dispositivo habilitado para wi-fi pode baixá-los sem nenhum software extra.

Conexão SFTP

Por SSH, uma conexão FTP pode ser feita. Você pode usar o Filezilla para transferir rápida e facilmente uma grande quantidade de arquivos (veja a imagem).

Relógio de tempo real

Como o relógio interno do Pi sofrerá uma variação significativa se não houver conexão com a internet, um módulo de relógio de tempo real (RTC) será necessário se uma cronometragem precisa for necessária. Um desses módulos é o RasClock, as instruções de instalação podem ser encontradas aqui. Outros relógios baseados em i2c também estão disponíveis (ou seja, DS3231)

Conclusão

Se tudo deu certo, agora você deve ter um datalogger Pi Zero funcionando! Um exemplo de script de registro em Python está incluído na próxima etapa.

Etapa 8: Exemplo de script de registro em Python

importar os

import serial from time import time from datetime import datetime import numpy as np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) directory = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () try: while True: day_timestring = datetime.strftime (datetime.now (),'% Y% m% d ') file_today = diretório + day_timestring +'.dat '#Read out dados e obter imediatamente a linha do tempo = ser.readline (). decode ('utf-8') nowtime = datetime.strftime (datetime.now (), '% Y-% m-% d% H:% M:% S.% f ') line = line.split (', ') try: u = float (linha [1]) exceto: u = np.nan try: v = float (linha [2]) exceto: v = np.nan try: w = float (linha [3]) exceto: w = np.nan try: c = float (linha [5]) exceto: c = np.nan Ts = 1/403 * c ** 2 - 273,15 try: Ta = float (linha [8]) exceto: Ta = np.nan if (os.path.isfile (file_today)): com open (file_today, 'a') como fileobject: fileobject.write (nowtime + ',') fileobject.write (str (u) + ',' + str (v) + ',' + str (w) + ',' + str (c) + ',' + str (Ts) + ',' + str (Ta) + '\ n') fileobject.clos e () else: com open (file_today, 'w') como fileobject: fileobject.write ('"Time", "u", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (nowtime +', ') fileobject.write (str (u) +', '+ str (v) +', '+ str (w) +', '+ str (c) +', '+ str (Ts) +', '+ str (Ta) +' / n ') fileobject.close () exceto KeyboardInterrupt: ser.close ()

Recomendado: