תוכן עניינים:
וִידֵאוֹ: ראה פתרון IoTea LoRa (עדכון 1811): 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
אינטרנט+ הוא מושג פופולרי כיום. הפעם ניסינו את האינטרנט פלוס חקלאות כדי להפוך את גינת התה לצמחת תה האינטרנט.
שלב 1: דברים המשמשים בפרויקט זה
רכיבי חומרה
- גרוב - חיישן פחמן דו חמצני (MH -Z16)
- גרוב - חיישן אור דיגיטלי
- גרוב - חיישן אבק (PPD42NS)
- גרוב-חיישן חמצן (ME2-O2-Ф20)
- חיישן לחות וטמפרטורה בקרקע
- LoRa LoRaWAN Gateway - ערכת 868MHz עם Raspberry Pi 3
- גרוב - חיישן טמפ & הומי וברומטר (BME280)
אפליקציות תוכנה ושירותים מקוונים
Microsoft Visual Studio 2015
שלב 2: סיפור
על הר מנגדינג צפונית מזרחית ליאן, סצ'ואן, רכס ההרים עובר ממערב למזרח בים ירוק. זהו מראה מוכר ביותר לדנג בן ה -36, אחד ממעטרי התה המעטים בני דורו, עם מטע של 50 מי (= 3.3 דונם) הממוקם בגובה 1100 מ 'מעל פני הים. דנג מגיע ממשפחה של מכשירי תה, אבל המשך המורשת המשפחתית היא משימה לא פשוטה. "התה שלנו גדל בגובה רב בסביבה אורגנית כדי להבטיח את איכותו המעולה. אך יחד עם זאת, צפיפות הגידול נמוכה, העלות גבוהה והנביטה לא אחידה, מה שהופך את התה לקשה לקציר. לכן תה הררי הוא בדרך כלל קציר קטן וערכיהם אינם באים לידי ביטוי בשוק. "בשנתיים האחרונות ניסה דנג להעלות את המודעות של הצרכנים לתה גבוה כדי לקדם את ערכם. וכשהוא פגש את פאן, שחיפש מטע ליישום טכנולוגיית ה- IoTea של Seeed, נעשתה התאמה מושלמת לפתרון.
שלב 3: חיבור חומרה
ניתן לחלק את חומרת הפרויקט ל -4 חלקים: כוח, חיישנים, צומת ושער. המאמר הבא יראה לך כיצד להשלים אותו שלב אחר שלב.
חלק כוח
Power Part מכיל בעיקר פאנל סולארי וסוללת ליתיום, אם רק בונים את הפרויקט הזה להדגמה, תוכלו להתעלם מהם. או שתוכל לעקוב אחר ההדרכה הקודמת להתקנת כוח הצומת.
חיישנים חלק
בחלק חיישנים, בגלל ריבוי החיישנים, השתמשנו בתחנת מזג אוויר, וגם יצרנו סוגר אקרילי להתקנתם.
כפי שאתה רואה בתמונה למעלה, חיישן אור דיגיטלי תמיד למעלה, כך שהוא יכול לאסוף מידע על תאורה. החיישנים שיפיקו חום מותקנים באמצע סוגר האקריליק, כגון חיישן O2, חיישן אבק וחיישן CO2. סוף סוף, חיישן טמפרטורה ולחות בתחתית סוגר האקריליק.
חוץ מזה, חיישן טמפרטורת ולחות הקרקע מותקן לבד באדמה. חלק הצומת
Node Part הוא Seeeduino LoRaWan המותקן בקופסה עמידה למים, הוא מתחבר לחשמל ולחיישנים באמצעות מפרקי מים. ביניהם, חיישן אבק מתחבר לסיכה הדיגיטלית של LoRaWan D3, חיישן CO2 מתחבר לפין D4 & D5, חיישן קרקע מתחבר לסיכה D6 & D7, חיישן O2 מתחבר לפין אנלוגי A1 וחיישן אור וחיישן ברומטר מתחברים ליציאת I2C.
הערה: יש להוסיף נגד 10k בין הכבל הכחול (נתונים) הכחול של חיישן הקרקע לכבל האדום (Vcc).
Seeeduino LoRaWan אוספת ערך חיישנים מדי פעם ושולחת אותם ל- Gateway באמצעות LoRa. פורמט הנתונים כמו להלן:
{
[0], /* טמפרטורת האוויר (℃)* /[1], /* לחות האוויר (%)* /[2], /* גובה (מ) בייט גבוה* /[3], /* גובה (מ) בתים נמוכים */[4],/ * ריכוז CO2 (PPM) בתים גבוהים */[5],/ * ריכוז CO2 (PPM) בתים נמוכים */[6],/ * ריכוז אבק (יח/0.01cf) בתים גבוהים *** [10], /* ריכוז O2 (%)* /[11], /* טמפרטורת הקרקע (℃)* /[12], /* לחות הקרקע (%)* /[13], /* מתח הסוללה (V) */ [14]/ *קוד שגיאת חיישן */}
לכל ביט בתא קוד שגיאה בחיישן יש משמעות שונה, ממש כמו להלן:
{
bit0: 1; / * שגיאת חיישן ברומטר */ bit1: 1; / * שגיאת חיישן CO2 */ bit2: 1; / * שגיאת חיישן אבק */ bit3: 1; / * שגיאת חיישן אור */ bit4: 1; / * שגיאת חיישן O2 */ bit5: 1; / * שגיאת חיישן קרקע */ שמורה: 2; /* שמורות */ }
חלק שער
Gateway Part הוא פטל פטל שחיבר את מודול Gateway RHF0M301–868 ו- PRI 2 Bridge RHF4T002, הוא מותקן בקופסה עמידה למים ומתחבר למצלמת חשמל & USB באמצעות חיבורי מים. מכיוון שהיא משתמשת בקושחה מיוחדת, עקוב אחר Seeed Wiki כדי להגדיר אותה.
שלב 4: תכנות תוכנה
כמו חיבור חומרה, ניתן גם לפצל את תכנות התוכנה, ניתן לפצל אותו לשלושה חלקים: צומת, שער ואתר.
חלק הצומת
רוב מנהלי ההתקן שחלק הצומת דורש כבר נמצאים בתיקיית origin_driver. יש להתקין את הספריות להלן באופן ידני:
Adafruit_ASFcore
מכיוון שהפרויקט מסובך, אנו ממליצים להשתמש ב- Microsoft Visual Studio במקום ב- Arduino IDE. תוסף בשם Visual Micro יכול לעזור לך לבנות פרויקט Arduino באמצעות Visual Studio, לחץ כאן למידע נוסף.
לקריאה ותחזוקה טובים יותר, אנו משתמשים הפעם בתכנות מונחה עצמים. תרשים הכיתה של פרויקט זה נראה להלן:
מכיוון שלחיישנים אלה כבר יש מנהל התקן OOP, ארזנו אותו מחדש כדי להתאים את הפרויקט הזה, עבור אחרים, כתבנו מחדש את מנהלי ההתקן שלהם באמצעות OOP. מחלקת חיישן בשכבת תוכנת הביניים משמשת לאיחוד ממשקים של חיישנים אמיתיים, למשל, חיישן ברומטר יכול לאסוף טמפרטורה, לחות וגובה בו זמנית, כך שיש לו 3 ממשקים לרכישת טמפרטורה, לחות וגובה. אבל יש להם שם שיטת הבדל, מה שיהפוך את תוכנית רכישת ערך החיישנים למסובכת יותר, בדיוק כך:
ברומטר-> getTemperature ();
ברומטר-> getHumidity (); ברומטר-> getAltitude (); //… another_sensor-> getSomeValue (); //…
אבל באמצעות OOP, זה נראה כך:
עבור (auto i = 0; i getValue ();
}
ארזנו גם מחלקת יישומים, היא מיישמת ממשק IApplication, שיטת ההתקנה () והלולאה () ב- IoTea.ino יכולה לקרוא לשיטת setup () ו- loop () באובייקט Application.
הערה: USB Serial משמש לניפוי באגים בלבד. לאחר איתור באגים, אנא הערה שזה אתחול הקוד בשיטת ההתקנה ().
חלק שער
תוכנית ה- Python של Gateway Part בתיקיית הבית משמשת לצילום תמונות והעלאה לשרת S3 של אמזון כל שעה. לפני שתשתמש בו, ודא fswebcam כבר מותקן ב- Raspberry Pi שלך:
sudo apt-get update && sudo apt-get להתקין fswebcam
אם ברצונך להעלות תמונות, הגדר את AWS שלך על ידי ביצוע השלבים הבאים. ראשית, התקן את AWS SDK ו- AWS CLI ל- Raspberry Pi שלך באמצעות הפקודות הבאות:
sudo pip התקן את boto3
sudo pip התקן awscli
ולאחר מכן, הפעל את AWS CLI:
sudo aws להגדיר
הגדר את מזהה מפתח הגישה שלך ל- AWS, מזהה הגישה הסודית של AWS ושם אזור ברירת המחדל.
אם אינך אוהב להעלות את התמונות שלך, תוכל לדלג על שלבי תצורת AWS ולקודי הערות לגבי העלאה ל- photo.py. להפעלת תוכנית זו לאחר אתחול Raspberry Pi בכל פעם, תוכל ליצור תמונת שם קובץ ב- /etc/init.d ולכתוב לה את הקוד הבא.
#!/bin/bash
# /etc/init.d/photo ### BEGIN INIT INFO # מספק: seeed_photo # Required-Start: $ remote_fs $ syslog # Required-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # תיאור קצר: צילום initscript # תיאור: שירות זה משמש לניהול צילום ### END INIT INFO מקרה "$ 1" בהתחלה) הד "התחל לצלם" /home/rxhf/photo.py &;; עצור) הד "הפסק לצלם" להרוג $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) הד "שימוש: התחלת צילום שירות | עצור" יציאה 1;; יציאת esac 0
להגדיר הרשאת ביצוע
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
ולבדוק את זה
sudo /etc/init.d/photo start
אם אין בעיה, עצור אותה והוסף אותה ליישום ההפעלה
sudo /etc/init.d/photo stop
sudo update-rc.d ברירת מחדל של תמונות
הערה: אם ברצונך להפעיל את שער ההפעלה לאחר אתחול Raspberry Pi, הוסף את קודי ההתחלה של השער ב- Seeed Wiki ל- /etc/rc.local, תן לזה להיראות כך:
#!/bin/sh -e
# # rc.local # # סקריפט זה מבוצע בסוף כל רמה ריצה מרובת משתמשים. # וודא שהתסריט "ייצא 0" בהצלחה או כל ערך # אחר על שגיאה. # # על מנת להפעיל או להשבית תסריט זה פשוט שנה את סיביות הביצוע #. # # כברירת מחדל תסריט זה אינו עושה דבר. # הדפס את כתובת ה- IP _IP = $ (שם מארח -אני) || נכון אם ["$ _IP"]; ואז printf "כתובת ה- IP שלי היא %s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -risinghf-r… -O loriot-gw.bin chmod +x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io יציאה 0
אתר אינטרנט
פרסנו את האתר ב- CentOS 7. השלבים הבאים יראו לך כיצד לפרוס.
שלב 1. התקן את Python3
sudo yum -y התקן epel -release
sudo yum -y התקן python36
שלב 2. התקן את פיפט Python ואת הסביבה הווירטואלית
wget
sudo python36 get-pip.py sudo pip התקן virtualenv
Setp 3. שיבוט את האתר שלנו מ- GitHub
sudo yum -y התקן git
שיבוט git
שלב 4. צור והפעל סביבה וירטואלית
virtualenv -p python36 iotea -hb
cd iotea-hb source bin/active
שלב 5. התקן ספריות תלויות
pip התקן pymysql
pip להתקין dbutils pip להתקן בקבוק pip להתקין websocket-client pip להתקין cofigparser
שלב 6. צור מסד נתונים
sudo yum -y התקן את mariadb mariabd -server
sudo systemctl אפשר mariadb sudo systemctl התחל mariadb mysql -uroot -p
ולאחר מכן השתמש ב- iotea_hb.sql ליצירת טבלה.
שלב 7. צור db.ini, וכתוב לו את הקודים האלה
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
שנה את הנתיב של db.ini ב- db.py
# ב- db.py
#cf.read ("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read ("/home // iotea-hb/db.ini")
שלב 8. שנה יציאה ב- app.py והפעל את האתר:
# ב- app.py
#app.run (debug = True, port = 6000) app.run (debug = True, יציאה = 8080)
# במסוף
pip להתקין gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
עכשיו בקר ב 127.0.0.1:8080 בדפדפן האינטרנט שלך, אתה יכול לראות את האתר, אך נתונים בזמן אמת אינם מוצגים.
שלב 9. קבל נתוני לוריוט
פתח מסוף אחר, הכנס מחדש את הסביבה הווירטואלית והפעל את אפליקציית לוריוט:
cd iotea-hb
פח המקור/הפעל את האקדח לוריוט: אפליקציה
המתן זמן מה, תראה נתונים המוצגים באתר, או תוכל לשנות את wss ב- loriot.py:
# ב- loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
שלב 5: פעולה
אתה יכול לבקר באתרים שלנו כדי לצפות בנתונים בזמן אמת:
- אצל יאן
- להדגמה
מוּמלָץ:
לב Visualizer - ראה את פעימות הלב שלך: 8 שלבים (עם תמונות)
לב Visualizer | ראה את לבך פועם: כולנו הרגשנו או שמענו את לבנו פועם אך לא רבים מאיתנו ראו אותו. זו הייתה המחשבה שגרמה לי להתחיל בפרויקט הזה. דרך פשוטה לראות באופן חזותי את פעימות הלב שלך באמצעות חיישן לב וללמד אותך יסודות על חשמל
Wiggly Wobbly - ראה את גלי הקול !! מציג אודיו בזמן אמת !!: 4 שלבים
Wiggly Wobbly - ראה את גלי הקול !! Realtime Audio Visualizer !!: האם תהית אי פעם איך נראים שירי החיפושית ?? או שאתה פשוט רוצה לראות איך צליל נראה ?? אז אל תדאג, אני כאן כדי לעזור לך לעשות את זה מחדש !!! הרם את הרמקול גבוה ולכוון לדהות
ראה את כל נתוני Fitbit שלך במרכז השליטה: 5 שלבים
ראה את כל נתוני Fitbit שלך בלוח מחוונים אחד: זו השנה החדשה וזה אומר שכולנו קיבלנו יעדים חדשים. מטרה משותפת לשנה החדשה היא להיות בריא יותר, בין אם זה אומר לאכול טוב יותר, להתאמן יותר או להיות פעיל יותר באופן כללי. הדרך האהובה עלי לעקוב אחרי כל מה ש- Fitbit שלי
ראה פתרון LoRa IoTea: 5 שלבים
פתרון LoRa IoTea: מערכת איסוף מידע אוטומטית המיושמת על מטעי תה. הוא חלק מאוסף המידע החקלאי החכם
ראה פתרון IoTea LoRa (עם Azure, עדכון 1812): 5 שלבים
ראה פתרון IoTea LoRa (עם Azure, עדכון 1812): Microsoft Azure הוא שירות ענן המספק כוח מחשוב חזק ויציב יותר. הפעם ניסינו לשלוח אליו את נתוני IoTea שלנו