Оглавление:
- Шаг 1. Настройте Pi Zero W
- Шаг 2. Подключитесь к Wi-Fi
- Шаг 3. Обновите и установите необходимое программное обеспечение
- Шаг 4: Подключитесь к датчику (в этом примере - Arduino)
- Шаг 5. Настройте возможности точки доступа Wi-Fi
- Шаг 6: переключение между режимом точки доступа Wi-Fi и клиентским режимом
- Шаг 7: Заключительные замечания
- Шаг 8: Пример сценария ведения журнала Python
Видео: Регистратор данных Raspberry Pi Zero W: 8 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Используя Raspberry Pi Zero W, вы можете сделать дешевый и простой в использовании регистратор данных, который может быть либо подключен к локальной сети Wi-Fi, либо служить точкой доступа в полевых условиях, что позволяет вам загружать данные по беспроводной сети с помощью вашего смартфона.
Я представил эту установку на осеннем собрании Американского геофизического союза 2017 года как способ самостоятельно настроить регистратор данных. Вы можете найти эту презентацию здесь.
Что тебе понадобится:
- Малиновый Pi Zero W
- Карта micro SD
- кабель USB или блок питания USB
- Компьютер с USB-кардридером
-
Необязательно (но полезно):
- miniHDMI -> HDMI-адаптер (для подключения Pi к экрану)
- Адаптер USB OTG (для подключения клавиатуры к Pi
Шаг 1. Настройте Pi Zero W
Для начала поместите образ Rasbian на карту microSD (в этом руководстве я использовал 2017-07-05-raspbian-jessie-lite, доступный здесь). Можно использовать облегченную версию (без рабочего стола), поскольку настройка будет выполняться через командную строку.
Вставьте SD-карту в Pi, подключите экран и клавиатуру и включите его, подключив кабель питания. Также возможна установка без головы, но для этого потребуется подключение по SSH.
После загрузки Pi войдите в систему (имя пользователя по умолчанию: pi, пароль: raspberry) и измените пароль с помощью команды «passwd».
Клавиатуру можно настроить, введя «sudo raspi-config» в терминал.
Шаг 2. Подключитесь к Wi-Fi
Чтобы подключиться к Интернету, мы сообщим Pi, к какой сети подключиться. Начните с открытия следующего файла;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Здесь добавьте информацию о сети внизу;
network = {
ssid = "имя сети" psk = "сетевой пароль"}
В случае корпоративной сети вы можете использовать следующую настройку (настройте WPA-EAP // TTLA // MSCHAPv2 на соответствующие параметры).
network = {
ssid = "ssid" # Введите имя сети key_mgmt = WPA-EAP eap = TTLS identity = "xxxxx" # Введите пароль учетной записи для входа = "xxxxx" # Введите этап passwork2 = "auth = MSCHAPv2"}
Сохраните, нажав CTRL + O, и выйдите, нажав CTRL + X.
Теперь ссылайтесь на свой файл конфигурации в / etc / network / interfaces
Судо нано / и т. д. / сеть / интерфейсы
Измените часть wlan0 на:
авто wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Снова сохраните файл (CTRL + O), а затем выйдите (CTRL + X).
После перезагрузки (sudo reboot) ваше соединение Wi-Fi должно работать. Вы можете проверить это, пингуя веб-сайт;
пинг www.google.com
Отмените пинг с помощью CTRL + C
Чтобы подключиться к Pi через SSH по беспроводной сети, вы должны включить SSH:
sudo raspi-config
Перейдите к «5 параметрам взаимодействия» и включите SSH. Затем вернитесь и выйдите из конфигурации.
Найдите IP-адрес Pi:
ifconfig
IP-адрес будет находиться под "inet addr:" интерфейса wlan0.
Теперь вы можете подключиться к Pi через Wi-Fi, если вы находитесь в той же сети. Загрузите Putty (для Windows), введите IP-адрес, который вы нашли в поле «Имя хоста», и нажмите «Открыть». После принятия предупреждения вы должны увидеть командную строку и войти в систему.
Шаг 3. Обновите и установите необходимое программное обеспечение
После того, как Wi-Fi заработает, обновите Pi с помощью:
sudo apt-get update -y && sudo apt-get upgrade -y
После завершения обновления (это может занять некоторое время) установите программное обеспечение, с которым мы будем работать;
sudo apt-get install python3 python3-serial apache2 -y
Шаг 4: Подключитесь к датчику (в этом примере - Arduino)
Либо подключите Arduino вместе с клавиатурой с помощью концентратора USB, либо подключите Arduino через единственный порт USB и выполните настройку с помощью SSH через WiFi.
Чтобы иметь доступ к последовательному порту, к которому подключен Arduino, полезно предоставить доступ к учетной записи pi по умолчанию. Поскольку Arduino обычно назначается на порт "/ dev / ttyACM0", используйте следующую команду, чтобы предоставить пользователю pi доступ к порту:
sudo chown pi: / dev / ttyACM0
Предполагая, что Arduino уже настроен для отправки данных через последовательный порт, вы можете просматривать данные в python следующим образом:
Открытый питон;
python3
Импортный серийный номер:
импортный серийный номер
Откройте com-порт:
ser = serial. Serial (порт = '/ dev / ttyACM0', скорость передачи = 9600, тайм-аут = 5)
В этом случае скорость Arduino была установлена на 9600.
Вы можете прочитать и распечатать строку, запустив следующий код:
ser.readline (). decode ('utf-8')
Если он у вас работает, вы можете закрыть соединение и выйти из Python с помощью:
ser.close ()
выход()
Шаг 5. Настройте возможности точки доступа Wi-Fi
Настроив Pi Zero W в режиме точки доступа Wi-Fi, вы можете подключиться к нему с любого устройства Wi-Fi. Это позволяет настроить регистратор и загружать данные по Wi-Fi без каких-либо кабелей или драйверов.
Для этого у Adafruit есть хороший учебник. Несколько небольших замечаний:
- Для драйвера /etc/hostapd/hostapd.conf используйте не использовать строку драйвера.
- Шаг «Обновить hostapd» не нужен.
Если точка доступа не работает в конце руководства, попробуйте перезагрузить Pi (sudo reboot).
Шаг 6: переключение между режимом точки доступа Wi-Fi и клиентским режимом
Иногда вам может потребоваться обновить программное обеспечение или установить новое программное обеспечение на Raspberry Pi, но для этого требуется подключение к Интернету. К счастью, переключаться между ними очень просто.
Подключитесь к Pi с помощью SSH (по кабелю, а не по Wi-Fi!). Начните с остановки служб точки доступа:
sudo cystemctl остановить hostapd.service
sudo cystemctl stop isc-dhcp-server.service
Затем отредактируйте файл сетевых интерфейсов:
Судо нано / и т. д. / сеть / интерфейсы
Здесь вы должны закомментировать параметры хостинга и не комментировать параметры сетевого подключения. Измените это с этого:
# -Параметры хостинга:
allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 # -Network (client) parameters: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
К этому:
# -Параметры хостинга: # allow-hotplug wlan0 #iface wlan0 inet static # address 192.168.42.1 # netmask 255.255.255.0 # -Network (client) parameters: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Сохраните и закройте файл.
Затем вы запускаете следующие команды:
sudo systemctl start wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Теперь ваш Pi должен снова подключиться к Wi-Fi, что позволит вам обновлять и устанавливать программное обеспечение.
Чтобы вернуться в режим точки доступа, переключите комментарии в / etc / network / interfaces и перезагрузите Pi.
Шаг 7: Заключительные замечания
Настройка веб-сайта
Сервер Apache находится в / var / www /. Чтобы изменить страницу по умолчанию, отредактируйте файл /var/www/html/index.html.
Вы можете сделать файлы здесь доступными для загрузки через Wi-Fi-соединение, перейдя в браузере на IP-адрес Pi (192.168.42.1). Любое устройство с поддержкой Wi-Fi может загрузить их без какого-либо дополнительного программного обеспечения.
SFTP-соединение
Через SSH можно установить FTP-соединение. Вы можете использовать Filezilla для быстрой и простой передачи большого количества файлов (см. Изображение).
Часы реального времени
Поскольку внутренние часы Pi будут значительно дрейфовать, если нет подключения к Интернету, потребуется модуль часов реального времени (RTC), если требуется точное хронометраж. Одним из таких модулей является RasClock, инструкции по установке можно найти здесь. Также доступны другие часы на базе i2c (например, DS3231).
Заключение
Если все прошло правильно, теперь у вас должен быть работающий регистратор данных Pi Zero! Пример сценария ведения журнала Python включен в следующий шаг.
Шаг 8: Пример сценария ведения журнала Python
импорт ОС
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 = directory + day_timestring +'.dat '# Прочитать data и сразу получить временную шкалу = 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 (строка [3]) за исключением: w = np.nan try: c = float (строка [5]) за исключением: c = np.nan Ts = 1/403 * c ** 2 - 273,15 попробуйте: Ta = float (строка [8]) за исключением: 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: с open (file_today, 'w') как fileobject: fileobject.write ('«Время», «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 () кроме KeyboardInterrupt: ser.close ()
Рекомендуемые:
Регистратор данных GPS Cap: 7 шагов (с изображениями)
GPS Cap Data Logger: это отличный проект выходного дня, если вы занимаетесь треккингом или длительными велосипедными прогулками и вам нужен регистратор данных GPS, чтобы отслеживать все ваши походы / поездки, которые вы совершили … После того, как вы завершили сборку и скачал данные с GPS-модуля тр
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой - Моделирование регистратора данных DHT11 в Proteus: 5 шагов
Как сделать регистратор данных влажности и температуры в реальном времени с Arduino UNO и SD-картой | Моделирование регистратора данных DHT11 в Proteus: Введение: привет, это Liono Maker, вот ссылка на YouTube. Мы делаем творческий проект с Arduino и работаем над встраиваемыми системами. Регистратор данных: Регистратор данных (также регистратор данных или регистратор данных) - это электронное устройство, которое записывает данные с течением времени
Регистратор данных GPS DIY для вас, следующая поездка / пешеходная тропа: 11 шагов (с изображениями)
Самодельный регистратор данных GPS для вас. Следующая поездка / пешеходная тропа: это регистратор данных GPS, который вы можете использовать для нескольких целей, скажем, если вы хотите записать свою долгую поездку, которую вы совершили на выходных, чтобы проверить цвета осени. или у вас есть любимая тропа, которую вы посещаете осенью каждый год, и вы
Регистратор данных мониторинга переменного тока: 9 шагов (с изображениями)
Регистратор данных мониторинга переменного тока: Привет всем, добро пожаловать на мой первый инструктаж! Днем я работаю инженером-испытателем в компании, поставляющей промышленное отопительное оборудование, а ночью я заядлый любитель технологий и DIY'er. Часть моей работы связана с проверкой работоспособности обогревателей, о
Регистратор данных Аляски: 5 шагов (с изображениями)
Регистратор данных Аляски: Аляска стоит на пороге изменения климата. Его уникальное положение с довольно нетронутым ландшафтом, населенным множеством канареек из угольных шахт, открывает множество возможностей для исследований. Наш друг Монти - археолог, который помогает