Índice:
- Etapa 1: Configurar Pi Zero W
- Etapa 2: conectar ao WiFi
- Etapa 3: Atualizar e instalar o software necessário
- Etapa 4: conectar a um sensor (neste exemplo, um Arduino)
- Etapa 5: configurar os recursos do ponto de acesso WiFi
- Etapa 6: Alternar entre ponto de acesso wi-fi e modos de cliente
- Etapa 7: Comentários Finais
- Etapa 8: Exemplo de script de registro em Python
Vídeo: Registrador de dados Raspberry Pi Zero W: 8 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
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
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
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
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:
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD - Simulação de registrador de dados DHT11 em Proteus: 5 etapas
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD | Simulação DHT11 Data-logger em Proteus: Introdução: oi, aqui é Liono Maker, aqui está o link do YouTube. Estamos fazendo projetos criativos com Arduino e trabalhamos em sistemas embarcados.Data-Logger: Um data logger (também data-logger ou gravador de dados) é um dispositivo eletrônico que grava dados ao longo do tempo w
Registrador de dados de monitoramento de corrente AC: 9 etapas (com imagens)
Registrador de dados de monitoramento de corrente CA: Olá a todos, bem-vindos ao meu primeiro instrutível! De dia, sou engenheiro de teste para uma empresa que fornece equipamentos de aquecimento industrial; à noite, sou um entusiasta de tecnologia e DIY'er. Parte do meu trabalho envolve testar o desempenho de aquecedores, o
O melhor registrador de dados de balões meteorológicos de alta altitude: 9 etapas (com imagens)
O registrador de dados de balão meteorológico de alta altitude definitivo: registre dados de balão meteorológico de alta altitude com o registrador de dados de balão meteorológico de alta altitude definitivo. Um balão meteorológico de alta altitude, também conhecido como balão de alta altitude ou HAB, é um enorme balão cheio de hélio. Esses balões são uma plataforma
Registrador de dados de código aberto (OPENSDL): 5 etapas (com imagens)
Open Source Data Logger (OPENSDL): O objetivo deste projeto é projetar, construir e testar um sistema de medição de baixo custo para estudos de Avaliação de Desempenho de Edifícios que inclua pelo menos temperatura, umidade relativa, iluminância e seja extensível a sensores adicionais, e para desenvolver
Fazendo um registrador de dados com o Raspberry Pi: 3 etapas (com imagens)
Fazendo um registrador de dados com o Raspberry Pi: Este registrador de dados simples faz medições regulares de luz com um LDR (fotorresistor) analógico e as armazena em um arquivo de texto em seu Raspberry Pi. Este registrador de dados medirá e registrará o nível de luz a cada 60 segundos, permitindo que você monitore