Мазмуну:

Raspberry Pi Zero W Datalogger: 8 кадам (сүрөттөр менен)
Raspberry Pi Zero W Datalogger: 8 кадам (сүрөттөр менен)

Video: Raspberry Pi Zero W Datalogger: 8 кадам (сүрөттөр менен)

Video: Raspberry Pi Zero W Datalogger: 8 кадам (сүрөттөр менен)
Video: Raspberry Pi 4 Data Logger | DHT11/DHT22 Sensor Data Logger 2024, Ноябрь
Anonim
Raspberry Pi Zero W Datalogger
Raspberry Pi Zero W Datalogger

Raspberry Pi Zero Wди колдонуп, сиз жергиликтүү Wi -Fi тармагына туташкан же талаадагы кирүү чекити катары кызмат кыла турган, арзан жана колдонууга ыңгайлуу даталоггерди жасай аласыз, бул смартфонуңуз менен зымсыз маалыматты жүктөп алууга мүмкүндүк берет.

Мен бул орнотууну Америка геофизикалык биримдигинин күзгү жолугушуусунда, 2017 -жылы, өздүк маалыматтарды каттоочу орнотууну жасоо жолу менен сунуштадым. Сиз бул презентацияны бул жерден таба аласыз.

Эмне керек болот:

  • A Raspberry Pi Zero W
  • Микро SD карта
  • USB кабели же USB энергия булагы
  • USB карта окугучу бар компьютер
  • Кошумча (бирок пайдалуу):

    • miniHDMI -> HDMI адаптери (Пиди экранга туташтыруу үчүн)
    • USB OTG адаптери (клавиатураны Пи -ге туташтыруу үчүн

1 -кадам: Pi Zero W орнотуу

Баштоо үчүн, microSD картасына Rasbian сүрөтүн коюңуз (бул окуу куралында мен бул жерде жеткиликтүү 2017-07-05-raspbian-jessie-lite колдондум). Жөнөкөй версияны (рабочий столсуз) колдонсо болот, анткени орнотуу буйрук сабы аркылуу жүргүзүлөт.

SD картаны Pi'ге салыңыз, экранды жана клавиатураны туташтырыңыз жана кубат кабелин туташтырып күйгүзүңүз. Башсыз орнотуу да мүмкүн, бирок SSH аркылуу туташууну талап кылат.

Pi кирүүнү жүктөгөндөн кийин (демейки колдонуучунун аты: pi, пароль: малина) жана "passwd" буйругу менен сырсөздү өзгөртүңүз.

Тергичти терминалга "sudo raspi-config" киргизүү менен конфигурациялоого болот.

2 -кадам: WiFi менен туташуу

WiFiга туташуу
WiFiга туташуу
WiFiга туташуу
WiFiга туташуу
WiFiга туташуу
WiFiга туташуу
WiFiга туташуу
WiFiга туташуу

Интернетке туташуу үчүн, Piге кайсы тармакка туташуу керектигин айтабыз. Төмөнкү файлды ачуу менен баштаңыз;

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Бул жерде, ылдыйдагы тармак маалыматын кошуңуз;

тармак = {

ssid = "тармактын аты" psk = "тармактын сырсөзү"}

Ишкана тармагы болгон учурда, сиз төмөнкү орнотууну колдоно аласыз (WPA-EAP // TTLA // MSCHAPv2ди тиешелүү жөндөөлөргө тууралаңыз).

тармак = {

ssid = "ssid" #Тармагыңыздын атын киргизиңиз key_mgmt = WPA-EAP eap = TTLS Identity = "xxxxx" #Кирүү эсебиңиздин сырсөзүн киргизиңиз = "xxxxx" #Өткөрүү фазасын киргизиңиз2 = "auth = MSCHAPv2"}

CTRL+O басуу менен сактоо жана CTRL+X менен чыгуу.

Эми конфигурация файлыңызга/etc/network/interfaces шилтемесин бериңиз

sudo nano/etc/network/interfaces

Wlan0 бөлүгүн өзгөртүү:

авто 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 Interfacing Options" өтүү, жана SSH иштетүү. Андан кийин артка кайтып, конфигурациядан чыгыңыз.

Пинин IP дарегин издеңиз:

ifconfig

IP wlan0 интерфейсинин "inet addr:" астында болот.

Эми сиз бир тармакта болсоңуз, WiFi аркылуу Pi'ге туташа аласыз. Putty'ди жүктөп алыңыз (терезелер үчүн), "Хосттун аты" астында тапкан IP дарегиңизди киргизиңиз жана "Ачуу" баскычын басыңыз. Эскертүүнү кабыл алгандан кийин, сиз азыр буйрук сабын жана логинди көрө алышыңыз керек.

3 -кадам: Керектүү программалык камсыздоону жаңыртуу жана орнотуу

Керектүү Программаны Жаңыртуу жана Орнотуу
Керектүү Программаны Жаңыртуу жана Орнотуу
Керектүү Программаны Жаңыртуу жана Орнотуу
Керектүү Программаны Жаңыртуу жана Орнотуу

WiFi иштеп баштагандан кийин, Pi менен жаңыртыңыз:

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

Жаңыртуу аяктагандан кийин (бир аз убакыт кетиши мүмкүн), биз колдоно турган программаны орнотуңуз;

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

4 -кадам: Сенсорго туташуу (Бул мисалда Arduino)

Же USB борборун колдонуп Arduino -ны клавиатура менен туташтырыңыз же Arduino -ны бир USB порту аркылуу туташтырыңыз жана WiFi аркылуу SSH менен орнотуңуз.

Arduino туташкан сериялык портко кирүү үчүн демейки pi эсебине кирүү мүмкүнчүлүгүн берүү пайдалуу. Адатта Arduino "/dev/ttyACM0" портуна дайындалгандыктан, 'pi' колдонуучусуна портко кирүү үчүн төмөнкү буйрукту колдонуңуз:

sudo chown pi: /dev /ttyACM0

Ардуино мурунтан эле сериялык порт аркылуу маалыматтарды жөнөтүү үчүн орнотулган деп ойлосоңуз, pythonдогу маалыматтарды төмөнкүчө көрө аласыз:

Ачык питон;

python3

Сериалды импорттоо:

серияны импорттоо

Ком портун ачыңыз:

ser = serial. Serial (порт = '/dev/ttyACM0', baudrate = 9600, күтүү убактысы = 5)

Бул жерде Arduino'дун бодраты 9600 деп коюлган.

Сиз төмөнкү кодду иштетүү менен сапты окуп жана басып чыгара аласыз:

ser.readline (). декоддоо ('utf-8')

Эгер аны иштетип жатсаңыз, анда туташууну жаап, Pythonдон төмөнкүлөр менен чыксаңыз болот:

ser.close ()

чыгуу ()

5 -кадам: WiFi кирүү чекитинин мүмкүнчүлүктөрүн орнотуңуз

Pi Zero Wди Wi -Fi кирүү чекити режимине орнотуу менен, сиз ага каалаган WiFi түзмөгү менен туташа аласыз. Бул каттоону орнотууга жана wifi аркылуу маалыматты жүктөөгө мүмкүнчүлүк берет, кабелдер же драйверлер талап кылынбайт.

Бул үчүн, Adafruitте жакшы окуу куралы бар. Кээ бир кичинекей эскертүүлөр:

  • /Etc/hostapd/hostapd.conf драйвери үчүн айдоочу линиясын колдонбоңуз.
  • "Hostapd жаңыртуу" кадамы зарыл болбошу керек.

Эгерде кирүү чекити үйрөткүчтүн аягында иштебесе, Pi (sudo reboot) өчүрүп көрүңүз.

6 -кадам: Wifi кирүү чекити менен кардар режимдеринин ортосунда которулуу

Кээде сиз программалык камсыздоону жаңырткыңыз же Raspberry Pi'ге жаңы программаны орноткуңуз келет, бирок бул интернет байланышын талап кылат. Бактыга жараша, экөөнүн ортосунда которулуу абдан оңой.

Pi менен SSH аркылуу туташыңыз (wifi аркылуу эмес, кабель аркылуу). Кирүү чекити кызматтарын токтотуу менен баштаңыз:

sudo cystemctl hostapd.service токтотуу

sudo cystemctl stop isc-dhcp-server.service

Андан кийин тармак интерфейстеринин файлын түзөтүңүз:

sudo nano/etc/network/interfaces

Бул жерде сиз хостинг параметрлерин комментарийлеп, жана тармакка туташуу параметрлерин комментарийсиз калтырышыңыз керек. Аны бул жерден өзгөртүңүз:

#-Hosting параметрлери:

allow-hotplug wlan0 iface wlan0 inet static address 192.168.42.1 netmask 255.255.255.0 # -Network (client) параметрлери: #auto wlan0 # iface wlan0 inet dhcp # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Буга:

#-Hosting параметрлери: #allow-hotplug wlan0 #iface wlan0 inet static #address 192.168.42.1 #netmask 255.255.255.0 #-Network (client) параметрлери: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_confupplicant/wpa_suppiant

Файлды сактап, жабыңыз.

Кийинкиде сиз төмөнкү командаларды иштетесиз:

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 файлын түзөтүңүз.

Бул жерде файлдарды Wi -Fi аркылуу жүктөө үчүн жеткиликтүү кылсаңыз болот, браузериңизде Piнин IP дарегине өтүңүз (192.168.42.1). Wi -Fi иштетилген каалаган түзмөк аларды эч кандай кошумча программасыз жүктөй алат.

SFTP туташуусу

SSH аркылуу FTP туташуусу жасалышы мүмкүн. Сиз Filezilla менен файлдардын чоң көлөмүн тез жана оңой өткөрүп берүү үчүн колдоно аласыз (сүрөттү караңыз).

Реалдуу убакыт сааты

Пинин ички сааты интернетке туташуу жок болгондо олуттуу өзгөрөт, так убакытты сактоо талап кылынса, реалдуу убакыт сааты (RTC) модулу керек болот. Мындай модулдардын бири - RasClock, орнотуу инструкциясын бул жерден тапса болот. Башка i2c негизиндеги сааттар да бар (б.а. DS3231)

Жыйынтык

Эгер баары туура болсо, анда азыр иштөөчү Pi Zero маалымат каталогуна ээ болушуңуз керек! Python журналынын скриптинин мисалы кийинки кадамга киргизилген.

8 -кадам: Мисал Python Logging Script

импорт os

убакыттан импорттук убакыттан сериалды импорттоо датадан импорттоо датасы np ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) каталог = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () аракет кылыңыз: ал эми True: day_timestring = datetime.strftime (datetime.now (),'%Y%m%d ') file_today = каталог + day_timestring +'.dat ' #Оку маалымат жана дароо убакыт линиясын алыңыз = ser.readline (). декодирование ('utf-8') nowtime = datetime.strftime (datetime.now (), '%Y-%m-%d%H:%M:% S.%f ') сап = line.split (', ') аракет: u = калкып жүрүү (сап [1]) башка: u = np.nan аракет кылуу: v = калкып чыгуу (сап [2]) тышкары: v = np.nan аракет: w = сүзүү (сап [3]) башка: w = np.nan аракет: c = калкып чыгуу (сызык [5]) тышкары: c = np.nan Ts = 1/403*c ** 2 - 273.15 аракет кылыңыз: Ta = калкып чыгуучу (сап [8]) башка: Ta = np.nan if (os.path.isfile (file_today))): open (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 () башка: open (file_today, 'w') менен fileobject катары: fileobject.write ('"Убакыт", "у", "v", "w", "c", "Ts", "Ta" / n ') fileobject.write (азыр+', ') fileobject.write (str (u)+', '+str (v)+', '+str (w)+', '+str (c)+', '+str (Ts)+', '+str (Ta)+' / n ') fileobject.close () KeyboardInterruptдон башка: ser.close ()

Сунушталууда: