Мазмұны:

Raspberry Pi Zero W Datalogger: 8 қадам (суреттермен)
Raspberry Pi Zero W Datalogger: 8 қадам (суреттермен)

Бейне: Raspberry Pi Zero W Datalogger: 8 қадам (суреттермен)

Бейне: Raspberry Pi Zero W Datalogger: 8 қадам (суреттермен)
Бейне: 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
  • Micro SD картасы
  • USB кабелі немесе USB қуат көзі
  • USB картасын оқу құрылғысы бар компьютер
  • Қосымша (бірақ пайдалы):

    • miniHDMI -> HDMI адаптері (Pi -ді экранға қосу үшін)
    • USB OTG адаптері (пернетақтаны Pi -ге қосу үшін

1 -қадам: Pi Zero W орнатыңыз

Бастау үшін microSD картасына расбиан кескінін салыңыз (бұл оқулықта мен осы жерде бар 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 сәйкестігі = «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 қайта жүктеу), сіздің Wi -Fi қосылымыңыз жұмыс істеуі керек. Сіз мұны веб -сайтты пинг арқылы тексере аласыз;

ping www.google.com

CTRL+C пернелер тіркесімін басу

SSH арқылы Pi -ге сымсыз қосылу үшін SSH қосу керек:

sudo raspi-config

«5 интерфейс опциясына» өтіңіз және SSH қосыңыз. Содан кейін оралыңыз және конфигурациядан шығыңыз.

Pi адресін іздеңіз:

ifconfig

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

Енді сіз Wi -Fi арқылы 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)

Arduino пернетақтасын USB хабы арқылы қосыңыз немесе 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 кіру нүктесінің мүмкіндіктерін орнатыңыз

Wi -Fi кіру нүктесі режимінде Pi Zero W орнату арқылы сіз оған кез келген Wi -Fi құрылғысымен қосыла аласыз. Бұл тіркеушіні орнатуға және деректерді wifi арқылы жүктеуге мүмкіндік береді, кабельдер мен драйверлер қажет емес.

Бұл үшін 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

Содан кейін желі интерфейстерінің файлын өңдеңіз:

sudo nano/etc/network/interfaces

Мұнда сіз хостинг параметрлеріне түсініктеме беруіңіз керек және желіге қосылу параметрлеріне түсініктеме бермеуіңіз керек. Оны мына жерден өзгертіңіз:

#-Хостинг параметрлері:

allow-hotplug wlan0 iface wlan0 inet static address 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 #address 192.168.42.1 #netmask 255.255.255.0 #-Желі (клиент) параметрлері: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_confupps

Файлды сақтаңыз және жабыңыз.

Содан кейін сіз келесі пәрмендерді іске қосасыз:

sudo systemctl 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 файлын өңдеңіз.

Сіз браузеріңізді Pi IP мекенжайына (192.168.42.1) өту арқылы Wi -Fi арқылы жүктеуге болатын файлдарды осында жасай аласыз. Wi -Fi қосылған кез келген құрылғы оларды қосымша бағдарламалық жасақтамасыз жүктей алады.

SFTP қосылымы

SSH арқылы FTP қосылымын жасауға болады. Filezilla көмегімен файлдардың үлкен көлемін тез және оңай тасымалдауға болады (суретті қараңыз).

Нақты уақыт сағаты

Пи -дің ішкі сағаты интернетке қосылмаған жағдайда айтарлықтай өзгеретіндіктен, дәл уақытты сақтау қажет болса, нақты уақыт сағаты (RTC) модулі қажет болады. Осындай модульдердің бірі - RasClock, орнату нұсқауларын мына жерден табуға болады. Басқа i2c сағаттары да бар (яғни DS3231)

Қорытынды

Егер бәрі дұрыс болса, енді сізде Pi Zero жұмыс жасайтын деректер тізбегі болуы керек! Python тіркеу сценарийінің мысалы келесі қадамға қосылады.

8 -қадам: Python тіркеу сценарийінің мысалы

импорттау 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 = line.split (', ') көріңіз: u = float ([1] сызығы) қоспағанда: u = np.nan тырысыңыз: v = float ([2] сызығы) қоспағанда: v = np.nan көріңіз: w = қалқымалы ([3] сызық) қоспағанда: w = np.nan тырысыңыз: 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))): openobile (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: openobile (file_today, 'w') fileobject ретінде: fileobject.write ('«Уақыт», «u», «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 ()

Ұсынылған: