Spisu treści:
- Krok 1: Skonfiguruj Pi Zero W
- Krok 2: Połącz się z Wi-Fi
- Krok 3: Zaktualizuj i zainstaluj wymagane oprogramowanie
- Krok 4: Podłącz do czujnika (w tym przykładzie Arduino)
- Krok 5: Skonfiguruj możliwości punktu dostępu Wi-Fi
- Krok 6: Przełączanie między trybem punktu dostępu Wi-Fi a trybem klienta
- Krok 7: Uwagi końcowe
- Krok 8: Przykładowy skrypt logowania w Pythonie
Wideo: Rejestrator danych Raspberry Pi Zero W: 8 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Korzystając z Raspberry Pi Zero W można zrobić tani i łatwy w obsłudze rejestrator danych, który może być podłączony do lokalnej sieci Wi-Fi lub służyć jako punkt dostępowy w terenie, który umożliwia bezprzewodowe pobieranie danych za pomocą smartfona.
Przedstawiłem tę konfigurację na American Geophysical Union Fall Meeting 2017, jako sposób na stworzenie własnej konfiguracji rejestratora danych. Możesz znaleźć tę prezentację tutaj.
Czego będziesz potrzebować:
- Raspberry Pi Zero W
- Karta micro SD
- kabel USB lub zasilacz USB
- Komputer z czytnikiem kart USB
-
Opcjonalne (ale przydatne):
- miniHDMI -> adapter HDMI (do podłączenia Pi do ekranu)
- Adapter USB OTG (do podłączenia klawiatury do Pi
Krok 1: Skonfiguruj Pi Zero W
Aby rozpocząć, umieść obraz Rasbian na karcie microSD (w tym samouczku użyłem 2017-07-05-raspbian-jessie-lite, dostępny tutaj). Można użyć wersji Lite (bez pulpitu), ponieważ konfiguracja zostanie wykonana za pomocą wiersza poleceń.
Włóż kartę SD do Pi, podłącz ekran i klawiaturę i włącz ją, podłączając kabel zasilający. Konfiguracja bezgłowa jest również możliwa, ale wymagałaby połączenia przez SSH.
Po uruchomieniu Pi zaloguj się (domyślna nazwa użytkownika: pi, hasło: raspberry) i zmień hasło poleceniem "passwd".
Klawiaturę można skonfigurować, wpisując w terminalu „sudo raspi-config”.
Krok 2: Połącz się z Wi-Fi
Aby połączyć się z Internetem, powiemy Pi, z którą siecią ma się połączyć. Zacznij od otwarcia następującego pliku;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Tutaj dodaj informacje o sieci na dole;
sieć={
ssid="nazwa sieci" psk="hasło sieci" }
W przypadku sieci firmowej można użyć następującej konfiguracji (dostosuj WPA-EAP // TTLA // MSCHAPv2 do odpowiednich ustawień).
sieć={
ssid="ssid" #Wprowadź nazwę sieci key_mgmt=WPA-EAP eap=TTLS identity="xxxxx" #Wprowadź hasło do konta logowania="xxxxx" #Wprowadź fazę hasła2="auth=MSCHAPv2" }
Zapisz, naciskając CTRL+O i wyjdź z CTRL+X.
Teraz odwołaj się do swojego pliku konfiguracyjnego w /etc/network/interfaces
sudo nano /etc/sieć/interfejsy
Zmień część wlan0 na:
auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Ponownie zapisz plik (CTRL+O), a następnie wyjdź (CTRL+X).
Po ponownym uruchomieniu (sudo reboot) połączenie Wi-Fi powinno działać. Możesz to przetestować, wysyłając polecenie ping do witryny;
pinguj www.google.com
Anuluj ping za pomocą CTRL+C
Aby połączyć się bezprzewodowo z Pi przez SSH, należy włączyć SSH:
sudo raspi-config
Przejdź do „5 opcji interfejsu” i włącz SSH. Następnie wróć i wyjdź z konfiguracji.
Sprawdź adres IP Pi:
ifconfig
Adres IP będzie pod "inet addr:" interfejsu wlan0.
Teraz możesz połączyć się z Pi przez Wi-Fi, jeśli jesteś w tej samej sieci. Pobierz Putty (dla systemu Windows), wprowadź adres IP znaleziony w polu „Nazwa hosta” i naciśnij „Otwórz”. Po zaakceptowaniu ostrzeżenia powinieneś teraz widzieć wiersz poleceń i logowanie.
Krok 3: Zaktualizuj i zainstaluj wymagane oprogramowanie
Po uruchomieniu WiFi zaktualizuj Pi za pomocą:
aktualizacja sudo apt-get -y && aktualizacja sudo apt-get -y
Po zakończeniu aktualizacji (może to chwilę potrwać) zainstaluj oprogramowanie, z którym będziemy korzystać;
sudo apt-get zainstaluj python3 python3-serial apache2 -y
Krok 4: Podłącz do czujnika (w tym przykładzie Arduino)
Podłącz Arduino razem z klawiaturą za pomocą koncentratora USB lub podłącz Arduino przez pojedynczy port USB i wykonaj konfigurację za pomocą SSH przez WiFi.
Aby móc uzyskać dostęp do portu szeregowego, do którego podłączone jest Arduino, przydatne jest przyznanie dostępu do domyślnego konta pi. Ponieważ Arduino zwykle jest przypisane do portu "/dev/ttyACM0", użyj następującego polecenia, aby dać użytkownikowi "pi" dostęp do portu:
sudo chown pi: /dev/ttyACM0
Zakładając, że Arduino zostało już skonfigurowane do przesyłania danych po porcie szeregowym, możesz przeglądać dane w Pythonie w następujący sposób:
Otwórz Pythona;
Python3
Numer seryjny importu:
importuj serial
Otwórz port COM:
ser = serial. Serial(port = '/dev/ttyACM0', szybkość transmisji = 9600, limit czasu = 5)
Gdzie prędkość transmisji Arduino została w tym przypadku ustawiona na 9600.
Możesz przeczytać i wydrukować wiersz, uruchamiając następujący kod:
ser.readline().decode('utf-8')
Jeśli to działa, możesz zamknąć połączenie i wyjść z Pythona za pomocą:
ser.zamknij()
Wyjście()
Krok 5: Skonfiguruj możliwości punktu dostępu Wi-Fi
Konfigurując urządzenie Pi Zero W w trybie punktu dostępu Wi-Fi, możesz połączyć się z nim za pomocą dowolnego urządzenia Wi-Fi. Pozwala to na konfigurację rejestratora i pobieranie danych przez Wi-Fi, bez konieczności stosowania kabli ani sterowników.
W tym celu Adafruit ma dobry samouczek. Kilka drobnych uwag:
- W przypadku sterownika /etc/hostapd/hostapd.conf nie używaj wiersza sterownika.
- Krok „Aktualizuj hostapd” nie powinien być konieczny.
Jeśli punkt dostępu nie działa na końcu samouczka, spróbuj ponownie uruchomić Pi (ponowne uruchomienie sudo).
Krok 6: Przełączanie między trybem punktu dostępu Wi-Fi a trybem klienta
Czasami będziesz chciał zaktualizować oprogramowanie lub zainstalować nowe oprogramowanie na swoim Raspberry Pi, ale wymaga to połączenia z Internetem. Na szczęście przełączanie się między nimi jest bardzo łatwe.
Połącz się z Pi za pomocą SSH (przez kabel, nie przez Wi-Fi!). Zacznij od zatrzymania usług punktu dostępu:
sudo cystemctl zatrzymać hostapd.service
sudo cystemctl stop isc-dhcp-server.service
Następnie edytuj plik interfejsów sieciowych:
sudo nano /etc/sieć/interfejsy
Tutaj należy zakomentować parametry hostingu i odkomentować parametry połączenia sieciowego. Zmień to z tego:
#- Parametry hostingu:
allow-hotplug wlan0 iface wlan0 inet adres statyczny 192.168.42.1 maska sieci 255.255.255.0 #-Parametry sieciowe (klienta): #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Do tego:
#-Parametry hostingu:#allow-hotplug wlan0 #iface wlan0 inet static # adres 192.168.42.1 # maska sieciowa 255.255.255.0 #-Parametry sieciowe (klienta): auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.
Zapisz i zamknij plik.
Następnie uruchamiasz następujące polecenia:
sudo systemctl uruchom wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Teraz Twoje Pi powinno ponownie połączyć się z Wi-Fi, umożliwiając aktualizację i instalację oprogramowania.
Aby wrócić do trybu punktu dostępu, przełącz komentarze w /etc/network/interfaces i zrestartuj Pi.
Krok 7: Uwagi końcowe
Konfiguracja strony internetowej
Serwer Apache znajduje się w /var/www/. Aby zmienić domyślną stronę, edytuj plik /var/www/html/index.html.
Możesz tutaj udostępnić pliki do pobrania przez połączenie Wi-Fi, przechodząc w przeglądarce do adresu IP Pi (192.168.42.1). Każde urządzenie obsługujące Wi-Fi może je pobrać bez dodatkowego oprogramowania.
Połączenie SFTP
Przez SSH można nawiązać połączenie FTP. Możesz użyć Filezilli do szybkiego i łatwego przesyłania dużej ilości plików (patrz obraz).
Zegar czasu rzeczywistego
Ponieważ wewnętrzny zegar Pi będzie się znacznie dryfować, jeśli nie ma połączenia z Internetem, moduł zegara czasu rzeczywistego (RTC) będzie potrzebny, jeśli wymagane jest dokładne odmierzanie czasu. Jednym z takich modułów jest RasClock, instrukcje instalacji można znaleźć tutaj. Dostępne są również inne zegary oparte na i2c (np. DS3231)
Wniosek
Jeśli wszystko poszło poprawnie, powinieneś mieć teraz działający rejestrator danych Pi Zero! Przykładowy skrypt logowania Pythona znajduje się w następnym kroku.
Krok 8: Przykładowy skrypt logowania w Pythonie
importuj system
import serial z czasu import czasu z datetime import datetime import numpy jako 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 = katalog + day_timestring + '.dat' #Read out danych i natychmiast uzyskaj linię czasu = ser.readline().decode('utf-8') nowtime = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:% S.%f') line = line.split(', ') try: u = float(line[1])except: u = np.nan try: v = float(line[2])except: v = np..nan try: w = float(line[3]) z wyjątkiem: w = np.nan try: c = float(line[5]) z wyjątkiem: c = np.nan Ts = 1/403 * c**2 - 273,15 try: Ta = float(line[8]) z wyjątkiem: Ta = np.nan if (os.path.isfile(file_today)): with open(file_today, 'a') as fileobject: fileobject.write(nowtime+', ') fileobject.write(str(u)+', '+str(v)+', '+str(w)+', '+str(c)+', '+str(Ts)+', '+ str(Ta)+'\n') fileobject.clos e() else: z open(file_today, 'w') as 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() z wyjątkiem KeyboardInterrupt: ser.close()
Zalecana:
Rejestrator danych GPS Cap: 7 kroków (ze zdjęciami)
Rejestrator danych GPS Cap: Oto świetny projekt weekendowy, jeśli lubisz trekking lub długie przejażdżki rowerowe i potrzebujesz rejestratora danych GPS, aby śledzić wszystkie odbyte wędrówki / przejażdżki … Po zakończeniu budowy i pobrali dane z modułu GPS tr
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD - Symulacja rejestratora danych DHT11 w Proteus: 5 kroków
Jak zrobić rejestrator danych wilgotności i temperatury w czasie rzeczywistym za pomocą Arduino UNO i karty SD | Symulacja rejestratora danych DHT11 w Proteus: Wstęp: cześć, tu Liono Maker, tutaj link do YouTube. Tworzymy kreatywne projekty z Arduino i pracujemy na systemach wbudowanych.Data-Logger: Rejestrator danych (również rejestrator danych lub rejestrator danych) to urządzenie elektroniczne, które rejestruje dane w czasie w
Zrób to sam rejestrator danych GPS dla ciebie Następna jazda / szlak pieszy: 11 kroków (ze zdjęciami)
DIY GPS Data Logger for You Next Drive/Hike Trail: Jest to rejestrator danych GPS, którego można używać do wielu celów, na przykład, jeśli chcesz zarejestrować długą jazdę, którą przejechałeś w weekend, aby sprawdzić kolory jesieni. lub masz ulubiony szlak, który odwiedzasz jesienią każdego roku i
Rejestrator danych monitorowania prądu AC: 9 kroków (ze zdjęciami)
Rejestrator danych monitorowania prądu AC: Cześć wszystkim, witam w moim pierwszym instruktażu! W dzień jestem inżynierem testowym w firmie dostarczającej przemysłowe urządzenia grzewcze, w nocy zaś zapalonym hobbystą technologii i majsterkowiczem. Częścią mojej pracy jest badanie wydajności grzałek, o
Rejestrator danych Alaska: 5 kroków (ze zdjęciami)
Alaska Datalogger: Alaska jest na skraju postępujących zmian klimatycznych. Jego unikatowe położenie z dość nienaruszonym krajobrazem, zaludnionym przez różnorodne kanaryki kopalniane, daje wiele możliwości badawczych. Nasz przyjaciel Monty jest archeologiem, który pomaga w