جدول المحتويات:
- الخطوة 1: إعداد Pi Zero W
- الخطوة 2: الاتصال بشبكة WiFi
- الخطوة 3: تحديث البرامج المطلوبة وتثبيتها
- الخطوة 4: الاتصال بجهاز استشعار (في هذا المثال ، Arduino)
- الخطوة 5: إعداد إمكانيات نقطة وصول WiFi
- الخطوة 6: التبديل بين نقطة وصول Wifi وأوضاع العميل
- الخطوة السابعة: الملاحظات النهائية
- الخطوة 8: مثال على البرنامج النصي لتسجيل Python
فيديو: Raspberry Pi Zero W Datalogger: 8 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
باستخدام Raspberry Pi Zero W ، يمكنك إنشاء أداة تسجيل بيانات رخيصة وسهلة الاستخدام ، والتي يمكن أن تكون متصلة بشبكة wifi محلية ، أو تعمل كنقطة وصول في المجال تتيح لك تنزيل البيانات لاسلكيًا باستخدام هاتفك الذكي.
لقد قدمت هذا الإعداد في اجتماع الاتحاد الجيوفيزيائي الأمريكي الخريف 2017 ، كطريقة لإنشاء إعداد مسجل البيانات الخاص بك. يمكنك أن تجد هذا العرض هنا.
ما سوف تحتاجه:
- A Raspberry 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: الاتصال بشبكة WiFi
للاتصال بالإنترنت ، سنخبر Pi بالشبكة التي يجب الاتصال بها. ابدأ بفتح الملف التالي ؛
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
هنا ، أضف معلومات الشبكة في الأسفل ؛
الشبكة = {
ssid = "اسم الشبكة" psk = "كلمة مرور الشبكة"}
في حالة شبكة مؤسسة ، يمكنك استخدام الإعداد التالي (اضبط WPA-EAP // TTLA // MSCHAPv2 على الإعدادات القابلة للتطبيق).
الشبكة = {
ssid = "ssid" # أدخل اسم شبكتك key_mgmt = WPA-EAP eap = TTLS Ident = "xxxxx" #Enter your login account password = "xxxxx" #Enter passwork stage2 = "auth = MSCHAPv2"}
احفظ بالضغط على CTRL + O ، واخرج باستخدام CTRL + X.
الآن قم بالإشارة إلى ملف التكوين الخاص بك في / etc / network / interfaces
sudo نانو / الخ / شبكة / واجهات
قم بتغيير جزء 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
قم بإلغاء الأمر ping باستخدام CTRL + C
للاتصال بـ Pi عبر SSH لاسلكيًا ، يجب تمكين SSH:
sudo raspi-config
انتقل إلى "5 Interfacing Options" ، وقم بتمكين 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-serial apache2 -y
الخطوة 4: الاتصال بجهاز استشعار (في هذا المثال ، Arduino)
قم إما بتوصيل Arduino مع لوحة مفاتيح باستخدام محور USB ، أو توصيل Arduino عبر منفذ USB واحد ، وإجراء الإعداد باستخدام SSH عبر WiFi.
لتتمكن من الوصول إلى المنفذ التسلسلي الذي يتصل به Arduino ، من المفيد منح حق الوصول إلى حساب pi الافتراضي. نظرًا لأن Arduino عادةً ما يتم تعيينه للمنفذ "/ dev / ttyACM0" ، استخدم الأمر التالي لمنح مستخدم "pi" حق الوصول إلى المنفذ:
sudo chown pi: / dev / ttyACM0
بافتراض أن Arduino قد تم إعداده بالفعل لإرسال البيانات عبر المنفذ التسلسلي ، يمكنك عرض البيانات في python بالطريقة التالية:
افتح الثعبان
بيثون 3
مسلسل استيراد:
استيراد المسلسل
افتح منفذ com:
ser = serial. Serial (المنفذ = '/ dev / ttyACM0' ،
معدل البود = 9600 ، المهلة = 5)
حيث تم ضبط معدل الباود الخاص بـ Arduino على 9600 في هذه الحالة.
يمكنك قراءة وطباعة سطر عن طريق تشغيل الكود التالي:
ser.readline (). فك الشفرة ('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 stop hostapd.service
sudo cystemctl stop isc-dhcp-server.service
ثم قم بتحرير ملف واجهات الشبكة:
sudo نانو / الخ / شبكة / واجهات
هنا يجب عليك التعليق على معلمات الاستضافة ، وإلغاء التعليق على معلمات اتصال الشبكة. قم بتغييره من هذا:
# -معلمات الاستضافة:
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_supplicant.conf
أحفظ وأغلق الملف.
بعد ذلك تقوم بتشغيل الأوامر التالية:
يبدأ sudo systemctl wpa_supplicant.service
sudo ifdown wlan0 sudo ifup wlan0
الآن يجب أن يتصل Pi الخاص بك بشبكة wifi مرة أخرى ، مما يسمح لك بتحديث البرامج وتثبيتها.
للرجوع إلى وضع نقطة الوصول ، بدّل حول التعليقات في / etc / network / interfaces ، وأعد تشغيل Pi.
الخطوة السابعة: الملاحظات النهائية
إعداد الموقع
يوجد خادم Apache في / var / www /. لتغيير الصفحة الافتراضية ، قم بتحرير الملف /var/www/html/index.html.
يمكنك جعل الملفات هنا متاحة للتنزيل عبر اتصال wifi ، من خلال التنقل في متصفحك إلى عنوان IP الخاص بـ Pi (192.168.42.1). يمكن لأي جهاز مزود بخدمة wifi تنزيلها دون أي برامج إضافية.
اتصال SFTP
عبر SSH ، يمكن إجراء اتصال FTP. يمكنك استخدام Filezilla لنقل كمية كبيرة من الملفات بسرعة وسهولة (انظر الصورة).
ساعة الوقت الحقيقي
نظرًا لأن الساعة الداخلية لـ Pi سوف تنجرف بشكل كبير إذا لم يكن هناك اتصال بالإنترنت ، فستكون هناك حاجة إلى وحدة نمطية على مدار الوقت الحقيقي (RTC) إذا لزم ضبط الوقت بدقة. إحدى هذه الوحدات هي RasClock ، ويمكن العثور على إرشادات التثبيت هنا. تتوفر أيضًا ساعات أخرى تعمل بنظام i2c (مثل DS3231)
استنتاج
إذا سارت الأمور بشكل صحيح ، يجب أن يكون لديك الآن Pi Zero datalogger! تم تضمين مثال نص برمجي لتسجيل الدخول إلى لغة python في الخطوة التالية.
الخطوة 8: مثال على البرنامج النصي لتسجيل Python
استيراد نظام التشغيل
استيراد المسلسل من وقت الاستيراد من استيراد التاريخ والوقت استيراد عدد كبير مثل np ser = serial. Serial (المنفذ = 'COM4' ، معدل الباود = 57600 ، المهلة = 5) الدليل = r '\ var / www / html / data / anemometer / WMPro1352_ 'ser.flushInput () ser.flushOutput () جرب: بينما True: day_timestring = datetime.strftime (datetime.now ()،'٪ Y٪ m٪ d ') file_today = directory + day_timestring +'.dat '#Read out البيانات واحصل على الفور على الخط الزمني = ser.readline (). فك التشفير ('utf-8') nowtime = datetime.strftime (datetime.now ()، '٪ Y-٪ m-٪ d٪ H:٪ M:٪ S.٪ f ') line = line.split ('، ') حاول: u = float (line [1]) باستثناء: u = np.nan try: v = float (line [2]) باستثناء: v = np.nan try: w = float (line [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)): مع open (file_today، 'a') ككائن ملف: 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.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 ()
موصى به:
عداد المشتركين في YouTube باستخدام شاشة عرض الورق الإلكتروني و Raspberry Pi Zero W: 5 خطوات (بالصور)
عداد المشتركين في YouTube باستخدام شاشة E-Paper و Raspberry Pi Zero W: في هذا Instructable ، سأوضح لك كيفية إنشاء عداد المشتركين على Youtube الخاص بك باستخدام عرض الورق الإلكتروني ، و Raspberry Pi Zero W للاستعلام عن YouTube API وتحديث العرض. تعد شاشات العرض الورقية الإلكترونية رائعة لهذا النوع من المشاريع لأنها تمتلك
اصنع الإضاءة المحيطة الخاصة بك مع Raspberry Pi Zero: 5 خطوات (بالصور)
اصنع الإضاءة المحيطة الخاصة بك مع Raspberry Pi Zero: في هذا المشروع سأوضح لك كيفية الجمع بين Raspberry Pi Zero مع اثنين من الأجزاء التكميلية من أجل إضافة تأثير الإضاءة المحيطة إلى التلفزيون الخاص بك مما يعزز تجربة المشاهدة. هيا بنا نبدأ
Waveshare Game-HAT MOD Raspberry PI Zero / Zero W [EN / ES]: 4 خطوات
Waveshare Game-HAT MOD Raspberry PI Zero / Zero W [EN / ES]: ENGLISH / INGLÉS: كما تعلم ، فإن تجميع Waveshare Game-HAT بسيط للغاية إذا كان أحد النماذج المتوافقة تمامًا مع التصميم ، إنه Raspberry Pi 2/3 / 3A + / 3B / 3B + / ، أنا شخصياً أفضل أن تكون وحدة التحكم في الألعاب ح
Arduino Datalogger: 8 خطوات (بالصور)
Arduino Datalogger: في هذا البرنامج التعليمي ، سنقوم بإنشاء مسجل بيانات بسيط باستخدام Arduino. النقطة المهمة هي تعلم أساسيات استخدام Arduino لالتقاط المعلومات والطباعة على الجهاز. يمكننا استخدام هذا الإعداد الأساسي لإكمال مجموعة من المهام. للبدء
نقطة وصول Raspberry Pi Zero Wifi مع هوائي PCB مخصص: 6 خطوات (بالصور)
نقطة وصول Raspberry Pi Zero Wifi مع هوائي PCB مخصص: ما الذي نصنعه؟ يحتوي عنوان هذا البرنامج التعليمي على الكثير من المصطلحات الفنية فيه. دعونا نكسرها. ما هو Raspberry Pi Zero (Rπ0)؟ Raspberry Pi Zero هو كمبيوتر صغير. إنه الإصدار الأصغر من كمبيوتر Raspberry Pi أحادي اللوحة ،