Агуулгын хүснэгт:

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 -ийг ашигласнаар та орон нутгийн wifi сүлжээнд холбогдож болох эсвэл өгөгдлийг ухаалаг утсаараа утасгүй татаж авах боломжтой талбар болох хандалтын цэг болох хямд, ашиглахад хялбар өгөгдлийн тоолуур хийх боломжтой.

Би энэ тохиргоог Америкийн геофизикийн холбооны намрын уулзалт 2017 дээр танилцуулсан бөгөөд энэ нь өгөгдөл бүртгэгчийг өөрөө тохируулах арга юм. Та энэ танилцуулгыг эндээс олж болно.

Танд хэрэгтэй зүйл:

  • A Raspberry Pi Zero W
  • Бичил 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 нано /etc/wpa_supplicant/wpa_supplicant.conf

Энд доод талд байгаа сүлжээний мэдээллийг оруулна уу;

сүлжээ = {

ssid = "сүлжээний нэр" psk = "сүлжээний нууц үг"}

Байгууллагын сүлжээний хувьд та дараах тохиргоог ашиглаж болно (WPA-EAP // TTLA // MSCHAPv2-ийг холбогдох тохиргоонд тохируулна уу).

сүлжээ = {

ssid = "ssid" #Сүлжээнийхээ нэрийг оруулна уу_mgmt = WPA-EAP eap = TTLS Identity = "xxxxx" #Нэвтрэх бүртгэлийнхээ нууц үгийг оруулна уу = "xxxxx" #Нэвтрэх ажлын үе шатыг оруулна уу2 = "auth = MSCHAPv2"}

CTRL+O дарж хадгалаад CTRL+X товчлуурыг дарна уу.

Одоо/etc/network/interfaces дээр өөрийн тохиргооны файлыг лавлана уу

sudo нано/etc/сүлжээ/интерфэйсүүд

Wlan0 хэсгийг дараах байдлаар өөрчилнө үү.

авто wlan0

iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Дахин хэлэхэд файлыг хадгална уу (CTRL+O), дараа нь (CTRL+X) гарна уу.

Дахин ачаалсны дараа (sudo дахин ачаалах) таны wifi холболт ажиллах ёстой. Та үүнийг вэбсайтыг пинг хийх замаар шалгаж болно;

ping www.google.com

CTRL+C ашиглан пингийг цуцална уу

Pi дээр SSH -ээр утасгүй холбогдохын тулд та SSH -ийг идэвхжүүлэх ёстой.

sudo raspi-config

"5 интерфэйс сонголт" руу очоод SSH -ийг идэвхжүүлнэ үү. Дараа нь буцаж очоод тохиргооноос гарна уу.

Pi -ийн 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 python3 python3-series apache2 -y суулгаарай

Алхам 4: Мэдрэгчид холбогдох (энэ жишээнд Arduino)

Arduino -г USB төв ашиглан гараар холбоно уу, эсвэл Arduino -г ганц USB портоор холбож, SSH ашиглан WiFi ашиглан тохируулаарай.

Arduino -ийн холбогдсон цуваа порт руу нэвтрэхийн тулд анхдагч pi данс руу нэвтрэх боломжтой болно. Arduino ихэвчлэн "/dev/ttyACM0" портод хуваарилагддаг тул 'pi' хэрэглэгчид порт руу хандах эрхийг өгөхийн тулд дараах тушаалыг ашиглана уу.

sudo chown pi: /dev /ttyACM0

Arduino нь цуваа портоор өгөгдөл илгээхээр аль хэдийн тохируулагдсан гэж үзвэл та python дээрх өгөгдлийг дараах байдлаар үзэх боломжтой.

Нээлттэй питон;

питон3

Цуваа импортлох:

цуваа импортлох

Ком портыг нээнэ үү:

ser = serial. Цуваа (порт = '/dev/ttyACM0', baudrate = 9600, завсарлага = 5)

Энэ тохиолдолд Arduino -ийн бауд хурдыг 9600 гэж тохируулсан болно.

Та дараах кодыг ажиллуулж мөрийг уншиж, хэвлэх боломжтой.

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

Хэрэв танд ажил байгаа бол та холболтыг хааж Python -ээс дараах байдлаар гарах боломжтой.

ser.close ()

гарах()

Алхам 5: WiFi хандалтын цэгийн чадавхийг тохируулах

Pi Zero W -ийг wifi хандалтын цэгийн горимд тохируулснаар та ямар ч wifi төхөөрөмжөөр холбогдох боломжтой. Энэ нь бүртгэгчийг тохируулах, Wi -Fi сүлжээгээр дата татаж авах, кабель, драйвер шаардлагагүй болно.

Үүний тулд 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 нано/etc/сүлжээ/интерфэйсүүд

Энд та байршуулах параметрүүдийг тайлбарлаж, сүлжээний холболтын параметрүүдийг тайлбарлахгүй байх ёстой. Үүнийг эндээс өөрчилнө үү:

#-Хостинг параметрүүд:

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 #address 192.168.42.1 #netmask 255.255.255.0 #-Сүлжээний (клиент) параметрүүд: auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_confuppiant

Файлыг хадгалаад хаах.

Дараа нь та дараах тушаалуудыг ажиллуулна.

sudo systemctl эхлүүлэх wpa_supplicant.service

sudo ifdown wlan0 sudo ifup wlan0

Одоо таны Pi дахин wifi -д холбогдож, програм хангамжийг шинэчлэх, суулгах боломжтой болно.

Хандалтын цэгийн горимд буцаж орохын тулд/etc/network/interfeys дээрх сэтгэгдлүүдийг сольж, Pi -г дахин ачаална уу.

Алхам 7: Эцсийн тайлбар

Эцсийн тайлбар
Эцсийн тайлбар

Вэбсайтын тохиргоо

Apache сервер нь/var/www/дээр байрладаг. Анхдагч хуудсыг өөрчлөхийн тулд /var/www/html/index.html файлыг засварлана уу.

Та энд байгаа файлуудаа wifi холболтоор татаж авах боломжтой болгож, хөтчийнхөө тусламжтайгаар Pi -ийн IP хаяг руу (192.168.42.1) ороорой. Wi -Fi -г идэвхжүүлсэн аливаа төхөөрөмж нэмэлт програм хангамжгүйгээр татаж авах боломжтой.

SFTP холболт

SSH дээр FTP холболт хийх боломжтой. Та Filezilla -г ашиглан их хэмжээний файлыг хурдан, хялбар шилжүүлэх боломжтой (зургийг үзнэ үү).

Бодит цагийн цаг

Хэрэв интернетэд холбогдоогүй бол Pi -ийн дотоод цаг мэдэгдэхүйц буурах тул цагийг зөв хэмжих шаардлагатай бол бодит цагийн цаг (RTC) модуль хэрэгтэй болно. Ийм модулийн нэг бол RasClock бөгөөд суулгах зааврыг эндээс олж болно. I2c дээр суурилсан бусад цагнууд бас байдаг (өөрөөр хэлбэл DS3231)

Дүгнэлт

Хэрэв бүх зүйл зөв хийгдсэн бол та одоо Pi Zero дата бүртгэгчтэй байх ёстой! Python бүртгэлийн скриптийн жишээг дараагийн алхамд оруулсан болно.

Алхам 8: Python бүртгэлийн скриптийн жишээ

импортлох os

nat ser = serial. Serial (port = 'COM4', baudrate = 57600, timeout = 5) гэсэн директорын цаг = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () оролдож үзээрэй: байхад Үнэн: 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 (line [1]):.nan оролдох: w = хөвөх (мөр [3]) бусад: w = np.nan оролдох: c = хөвөх (мөр [5]) бусад: c = np.nan Ts = 1/403*c ** 2 - 273.15 оролдох: Ta = float (мөр [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.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 ()

Зөвлөмж болгож буй: