Съдържание:
- Стъпка 1: Настройте Pi Zero W
- Стъпка 2: Свържете се с WiFi
- Стъпка 3: Актуализирайте и инсталирайте необходимия софтуер
- Стъпка 4: Свържете се със сензор (в този пример Arduino)
- Стъпка 5: Настройте възможности за WiFi точка за достъп
- Стъпка 6: Превключване между Wifi точка за достъп и клиентски режими
- Стъпка 7: Заключителни бележки
- Стъпка 8: Примерен скрипт за регистриране на Python
Видео: Raspberry Pi Zero W Datalogger: 8 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Използвайки Raspberry Pi Zero W, можете да направите евтин и лесен за използване регистратор на данни, който може да бъде или свързан към локална wifi мрежа, или да служи като точка за достъп в полето, която ви позволява да изтегляте данни безжично със вашия смартфон.
Представих тази настройка на есенната среща на American Geophysical Union Fall 2017, като начин да направите своя собствена настройка на регистратора на данни. Можете да намерите тази презентация тук.
Какво ще ви трябва:
- A Raspberry Pi Zero W
- Микро 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, парола: малинка) и променете паролата с командата "passwd".
Клавиатурата може да бъде конфигурирана чрез въвеждане на "sudo raspi-config" в терминала.
Стъпка 2: Свържете се с WiFi
За да се свържете с интернет, ще кажем на Pi към коя мрежа да се свърже. Започнете, като отворите следния файл;
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Тук добавете информация за мрежата в долната част;
мрежа = {
ssid = "име на мрежата" psk = "мрежова парола"}
В случай на корпоративна мрежа, можете да използвате следната настройка (настройте WPA-EAP // TTLA // MSCHAPv2 до приложимите настройки).
мрежа = {
ssid = "ssid" #Въведете името на мрежата си key_mgmt = WPA-EAP eap = TTLS идентичност = "xxxxx" #Въведете паролата за акаунта си за вход = "xxxxx" #Въведете фазата на работа2 = "auth = MSCHAPv2"}
Запазете, като натиснете CTRL+O и излезте с CTRL+X.
Сега направете справка с вашия конфигурационен файл в/etc/network/interfaces
sudo nano/etc/network/интерфейси
Променете частта wlan0 на:
auto wlan0
iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Отново запишете файла (CTRL+O) и след това излезте (CTRL+X).
След рестартиране (sudo reboot), вашата wifi връзка трябва да работи. Можете да тествате това, като пингирате уебсайт;
ping www.google.com
Отменете пинга с CTRL+C
За да се свържете с Pi през SSH безжично, трябва да активирате SSH:
sudo raspi-config
Придвижете се до „5 опции за свързване“и активирайте SSH. След това се върнете и излезте от конфигурацията.
Потърсете IP адреса на Pi:
ifconfig
IP ще бъде под "inet addr:" на интерфейса wlan0.
Сега можете да се свържете с Pi през WiFi, ако сте в същата мрежа. Изтеглете Putty (за Windows), въведете IP адреса, който сте намерили под „Host Name“и натиснете „Open“. След като приемете предупреждението, сега трябва да можете да видите командния ред и да влезете.
Стъпка 3: Актуализирайте и инсталирайте необходимия софтуер
След като WiFi работи, актуализирайте Pi с:
sudo apt -get update -y && sudo apt -get upgrade -y
След като актуализацията приключи (може да отнеме известно време), инсталирайте софтуера, с който ще използваме;
sudo apt-get install python3 python3-сериен apache2 -y
Стъпка 4: Свържете се със сензор (в този пример Arduino)
Или свържете Arduino заедно с клавиатура, използвайки USB концентратор, или свържете Arduino през единствения USB порт и направете настройката с SSH през WiFi.
За да имате достъп до серийния порт, към който е свързан Arduino, е полезно да дадете достъп до пи акаунта по подразбиране. Тъй като Arduino обикновено се присвоява на порт „/dev/ttyACM0“, използвайте следната команда, за да дадете на потребителя „pi“достъп до порта:
sudo chown pi: /dev /ttyACM0
Ако приемем, че Arduino вече е настроен да изпраща данни през серийния порт, можете да видите данните в python по следния начин:
Отворен питон;
python3
Импортиране на сериен:
внос сериен
Отворете com порта:
ser = serial. Serial (port = '/dev/ttyACM0', скорост на предаване = 9600, изчакване = 5)
В този случай скоростта на предаване на Arduino е зададена на 9600.
Можете да четете и отпечатвате ред, като изпълните следния код:
ser.readline (). decode ('utf-8')
Ако той работи, можете да затворите връзката и да излезете от Python с:
ser.close ()
изход ()
Стъпка 5: Настройте възможности за WiFi точка за достъп
Като настроите своя Pi Zero W в режим на точка за достъп до wifi, можете да се свържете с него с всяко wifi устройство. Това позволява настройка на регистратора и изтегляне на данни през wifi, без да са необходими кабели или драйвери.
За тази цел Adafruit разполага с добър урок. Някои малки забележки:
- За драйвера /etc/hostapd/hostapd.conf използвайте не използвайте линията на драйвера.
- Стъпката „Актуализиране на hostapd“не трябва да е необходима.
Ако точката за достъп не работи в края на урока, опитайте да рестартирате Pi (sudo reboot).
Стъпка 6: Превключване между Wifi точка за достъп и клиентски режими
Понякога ще искате да актуализирате софтуера или да инсталирате нов софтуер на вашия Raspberry Pi, но това изисква интернет връзка. За щастие превключването между двете е много лесно.
Свържете се към Pi със SSH (по кабел, а не wifi!). Започнете, като спрете услугите на точките за достъп:
sudo cystemctl стоп hostapd.service
sudo cystemctl стоп isc-dhcp-server.service
След това редактирайте файла на мрежовите интерфейси:
sudo nano/etc/network/интерфейси
Тук трябва да коментирате параметрите на хостинга и да декомментирате параметрите на мрежовата връзка. Променете го от това:
#-Хостинг параметри:
allow-hotplug wlan0 iface wlan0 inet статичен адрес 192.168.42.1 netmask 255.255.255.0 # -Мрежови (клиентски) параметри: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
До това:
#-Хостинг параметри: #allow-hotplug wlan0 #iface wlan0 inet static #адрес 192.168.42.1 #netmask 255.255.255.0 #-Мрежови (клиентски) параметри: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Запишете и затворете файла.
След това изпълнявате следните команди:
sudo systemctl стартира wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
Сега вашият Pi трябва да се свърже отново с wifi, което ви позволява да актуализирате и инсталирате софтуер.
За да се върнете в режим на точка за достъп, превключете коментарите в/etc/network/interfaces и рестартирайте Pi.
Стъпка 7: Заключителни бележки
Настройка на уебсайт
Сървърът на apache се намира в/var/www/. За да промените страницата по подразбиране, редактирайте файла /var/www/html/index.html.
Можете да направите файловете тук достъпни за изтегляне през wifi връзката, като отворите браузъра си до IP адреса на Pi (192.168.42.1). Всяко устройство с Wi -Fi може да ги изтегли без допълнителен софтуер.
SFTP връзка
По SSH може да се направи FTP връзка. Можете да използвате Filezilla за бързо и лесно прехвърляне на голямо количество файлове (вижте изображението).
Часовник в реално време
Тъй като вътрешният часовник на Pi ще се отклони значително, ако няма връзка с интернет, ще е необходим модул за часовник в реално време (RTC), ако се изисква точно отчитане на времето. Един такъв модул е RasClock, инструкции за инсталиране можете да намерите тук. Предлагат се и други часовници на базата на i2c (т.е. DS3231)
Заключение
Ако всичко вървеше правилно, сега трябва да имате работещ Pi Zero регистратор на данни! Пример за скрипт за регистриране на python е включен в следващата стъпка.
Стъпка 8: Примерен скрипт за регистриране на Python
внос os
импортиране на сериен от време време за импортиране от дата -час импорт дата -час импортиране numpy като np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) директория = 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 = директория + day_timestring +'.dat ' #Прочети данни и веднага вземете времевата линия = 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]) с изключение на: u = np.nan try: v = float (line [2]) с изключение на: v = np.nan try: w = float (ред [3]) с изключение на: w = np.nan try: c = float (line [5]) с изключение на: c = np.nan Ts = 1/403*c ** 2 - 273.15 опитайте: Ta = float (ред [8]) с изключение на: Ta = np.nan if (os.path.isfile (file_today)): с отворен (file_today, 'a') като fileobject: fileobject.write (nowtime+',') fileobject.write (str (u)+','+str (v)+','+str (w)+','+str (c)+','+str (Ts)+','+ str (Ta)+'\ n') fileobject.clos e () else: с отворен (file_today, 'w') като 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 () с изключение на KeyboardInterrupt: ser.close ()
Препоръчано:
Дървен LED игрален дисплей, захранван от Raspberry Pi Zero: 11 стъпки (със снимки)
Дървен LED игрален дисплей, задвижван от Raspberry Pi Zero: Този проект реализира 20x10 пикселен WS2812 базиран LED дисплей с размер 78x35 см, който може лесно да бъде инсталиран в хола за игра на ретро игри. Първата версия на тази матрица е построена през 2016 г. и възстановена от много други хора. Този опит
Брояч на абонатите на YouTube с помощта на дисплей на електронна хартия и Raspberry Pi Zero W: 5 стъпки (със снимки)
Брояч на абонати в YouTube с помощта на дисплей на електронна хартия и Raspberry Pi Zero W: В тази инструкция ще ви покажа как да изградите свой собствен брояч на абонати в Youtube с помощта на дисплей на електронна хартия и Raspberry Pi Zero W за заявка към API на YouTube и актуализирайте дисплея. Дисплеите с електронна хартия са чудесни за този тип проекти, тъй като имат
Астрофотография с Raspberry Pi Zero .: 11 стъпки (със снимки)
Астрофотография с Raspberry Pi Zero .: Преди [1] [2] направих два други проекта за камера, базирани на Raspberry Pi. Това, третата ми идея за камера, е първият ми проект на Raspberry Pi Zero. Това е и първият ми опит в астрофотографията! Подтикнат от неотдавнашното „Суперлуние“, което исках да си взема брат
Alaska Datalogger: 5 стъпки (със снимки)
Alaska Datalogger: Аляска е на ръба на напредващите промени в климата. Уникалната му позиция, че има доста недокоснат пейзаж, населен с различни канари от въглищни мини, дава възможност за много изследователски възможности. Нашият приятел Монти е археолог, който помага на
Arduino Datalogger: 8 стъпки (със снимки)
Arduino Datalogger: В този урок ще направим прост регистратор на данни, използвайки Arduino. Въпросът е да научите самите основи на използването на Arduino за улавяне на информация и отпечатване до терминала. Можем да използваме тази основна настройка, за да изпълним редица задачи. За да започнете