|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago | |
pi-relay.md | 4 weeks ago | |
virtual-device-relay.md | 4 weeks ago | |
wio-terminal-relay.md | 4 weeks ago |
README.md
השקיית צמחים אוטומטית
סקיצה מאת ניטיה נאראסימן. לחצו על התמונה לגרסה גדולה יותר.
השיעור הזה נלמד כחלק מסדרת פרויקט IoT למתחילים - חקלאות דיגיטלית של Microsoft Reactor.
שאלון לפני השיעור
מבוא
בשיעור הקודם למדתם כיצד לנטר את רמת הלחות בקרקע. בשיעור הזה תלמדו כיצד לבנות את הרכיבים המרכזיים של מערכת השקיה אוטומטית שמגיבה ללחות הקרקע. בנוסף, תלמדו על תזמון - כיצד חיישנים יכולים לקחת זמן להגיב לשינויים, וכיצד מפעילים יכולים לקחת זמן לשנות את התכונות הנמדדות על ידי החיישנים.
בשיעור הזה נעסוק ב:
- שליטה במכשירים בעלי הספק גבוה באמצעות מכשיר IoT בעל הספק נמוך
- שליטה בממסר
- שליטה בצמח שלכם באמצעות MQTT
- תזמון חיישנים ומפעילים
- הוספת תזמון לשרת השליטה בצמח שלכם
שליטה במכשירים בעלי הספק גבוה באמצעות מכשיר IoT בעל הספק נמוך
מכשירי IoT משתמשים במתח נמוך. בעוד שזה מספיק עבור חיישנים ומפעילים בעלי הספק נמוך כמו נורות LED, זה לא מספיק לשליטה בחומרה גדולה יותר, כמו משאבת מים המשמשת להשקיה. אפילו משאבות קטנות שניתן להשתמש בהן לצמחי בית צורכות יותר מדי זרם עבור ערכת פיתוח IoT ועלולות לגרום לנזק ללוח.
🎓 זרם, הנמדד באמפר (A), הוא כמות החשמל שעוברת דרך מעגל. מתח מספק את הדחיפה, והזרם הוא כמות הדחיפה. ניתן לקרוא עוד על זרם בעמוד זרם חשמלי בויקיפדיה.
הפתרון לכך הוא לחבר את המשאבה למקור כוח חיצוני ולהשתמש במפעיל כדי להפעיל את המשאבה, בדומה לאופן שבו מפעילים אור. נדרש מעט מאוד כוח (בצורת אנרגיה בגוף שלכם) כדי שהאצבע שלכם תלחץ על מתג, וזה מחבר את האור לחשמל ביתי הפועל ב-110v/240v.
🎓 חשמל ביתי מתייחס לחשמל המסופק לבתים ולעסקים דרך תשתיות לאומיות בחלקים רבים בעולם.
✅ מכשירי IoT יכולים בדרך כלל לספק 3.3V או 5V, בפחות מ-1 אמפר (1A) של זרם. השוו זאת לחשמל ביתי, שבדרך כלל פועל ב-230V (120V בצפון אמריקה ו-100V ביפן), ויכול לספק כוח למכשירים שצורכים 30A.
ישנם מספר מפעילים שיכולים לעשות זאת, כולל מכשירים מכניים שניתן לחבר למתגים קיימים שמחקים אצבע שמפעילה אותם. הפופולרי ביותר הוא ממסר.
ממסרים
ממסר הוא מתג אלקטרומכני שממיר אות חשמלי לתנועה מכנית שמפעילה מתג. הליבה של ממסר היא אלקטרומגנט.
🎓 אלקטרומגנטים הם מגנטים שנוצרים על ידי העברת חשמל דרך סליל חוט. כאשר החשמל מופעל, הסליל מתמגנט. כאשר החשמל כבוי, הסליל מאבד את המגנטיות שלו.
בממסר, מעגל הבקרה מפעיל את האלקטרומגנט. כאשר האלקטרומגנט מופעל, הוא מושך מנוף שמזיז מתג, סוגר זוג מגעים ומשלים מעגל פלט.
כאשר מעגל הבקרה כבוי, האלקטרומגנט נכבה, משחרר את המנוף ופותח את המגעים, מכבה את מעגל הפלט. ממסרים הם מפעילים דיגיטליים - אות גבוה לממסר מפעיל אותו, אות נמוך מכבה אותו.
מעגל הפלט יכול לשמש להפעלת חומרה נוספת, כמו מערכת השקיה. מכשיר ה-IoT יכול להפעיל את הממסר, להשלים את מעגל הפלט שמפעיל את מערכת ההשקיה, והצמחים מושקים. מכשיר ה-IoT יכול לאחר מכן לכבות את הממסר, לנתק את הכוח ממערכת ההשקיה ולכבות את המים.
בסרטון למעלה, ממסר מופעל. נורית LED על הממסר נדלקת כדי להצביע על כך שהוא מופעל (לחלק מלוחות הממסרים יש נוריות LED שמצביעות אם הממסר מופעל או כבוי), וכוח נשלח למשאבה, שמפעילה אותה ושואבת מים לצמח.
💁 ממסרים יכולים לשמש גם כדי לעבור בין שני מעגלי פלט במקום להפעיל או לכבות אחד מהם. כאשר המנוף זז, הוא מזיז מתג שמשלים מעגל פלט אחד או מעגל פלט אחר, בדרך כלל עם חיבור כוח משותף או חיבור קרקע משותף.
✅ בצעו מחקר: ישנם סוגים שונים של ממסרים, עם הבדלים כמו אם מעגל הבקרה מפעיל או מכבה את הממסר כאשר מופעל כוח, או מעגלי פלט מרובים. גלו על הסוגים השונים.
כאשר המנוף זז, בדרך כלל ניתן לשמוע אותו יוצר מגע עם האלקטרומגנט עם רעש קליק מוגדר היטב.
💁 ממסר יכול להיות מחובר כך שיצירת החיבור למעשה תנתק את הכוח מהממסר, תכבה אותו, מה שגורם לממסר לשלוח כוח שוב, וחוזר חלילה. זה אומר שהממסר יקליק במהירות רבה וייצור רעש זמזום. כך עבדו חלק מהפעמונים החשמליים הראשונים.
כוח הממסר
האלקטרומגנט לא צריך הרבה כוח כדי להפעיל ולמשוך את המנוף, ניתן לשלוט בו באמצעות יציאת 3.3V או 5V מערכת פיתוח IoT. מעגל הפלט יכול לשאת הרבה יותר כוח, תלוי בממסר, כולל מתח ביתי או אפילו רמות כוח גבוהות יותר לשימוש תעשייתי. כך ערכת פיתוח IoT יכולה לשלוט במערכת השקיה, ממשאבה קטנה לצמח יחיד ועד מערכת תעשייתית גדולה לחווה מסחרית שלמה.
התמונה למעלה מציגה ממסר Grove. מעגל הבקרה מתחבר למכשיר IoT ומפעיל או מכבה את הממסר באמצעות 3.3V או 5V. למעגל הפלט יש שני מסופים, כל אחד מהם יכול להיות כוח או קרקע. מעגל הפלט יכול להתמודד עם עד 250V ב-10A, מספיק למגוון מכשירים המופעלים על ידי חשמל ביתי. ניתן להשיג ממסרים שיכולים להתמודד עם רמות כוח גבוהות אף יותר.
בתמונה למעלה, כוח מסופק למשאבה דרך ממסר. ישנו חוט אדום שמחבר את מסוף ה-+5V של ספק כוח USB למסוף אחד של מעגל הפלט של הממסר, וחוט אדום נוסף שמחבר את המסוף השני של מעגל הפלט למשאבה. חוט שחור מחבר את המשאבה לקרקע של ספק כוח ה-USB. כאשר הממסר מופעל, הוא משלים את המעגל, שולח 5V למשאבה ומפעיל אותה.
שליטה בממסר
ניתן לשלוט בממסר באמצעות ערכת הפיתוח IoT שלכם.
משימה - שליטה בממסר
עבדו דרך המדריך הרלוונטי לשליטה בממסר באמצעות מכשיר ה-IoT שלכם:
שליטה בצמח שלכם באמצעות MQTT
עד כה הממסר שלכם נשלט ישירות על ידי מכשיר ה-IoT בהתבסס על קריאת לחות קרקע אחת. במערכת השקיה מסחרית, לוגיקת השליטה תהיה מרכזית, מה שמאפשר לה לקבל החלטות על השקיה באמצעות נתונים ממספר חיישנים, ולאפשר שינוי של כל הגדרות במקום אחד. כדי לדמות זאת, ניתן לשלוט בממסר באמצעות MQTT.
משימה - שליטה בממסר באמצעות MQTT
-
הוסיפו את ספריות MQTT/חבילות pip הרלוונטיות ואת הקוד לפרויקט
soil-moisture-sensor
שלכם כדי להתחבר ל-MQTT. שם הלקוח יהיהsoilmoisturesensor_client
עם קידומת מזהה שלכם.⚠️ ניתן להתייחס להוראות להתחברות ל-MQTT בפרויקט 1, שיעור 4 אם יש צורך](../../../1-getting-started/lessons/4-connect-internet/README.md#connect-your-iot-device-to-mqtt).
-
הוסיפו את קוד המכשיר הרלוונטי לשליחת טלמטריה עם הגדרות לחות הקרקע. עבור הודעת הטלמטריה, שם המאפיין יהיה
soil_moisture
.⚠️ ניתן להתייחס להוראות לשליחת טלמטריה ל-MQTT בפרויקט 1, שיעור 4 אם יש צורך](../../../1-getting-started/lessons/4-connect-internet/README.md#send-telemetry-from-your-iot-device).
-
צרו קוד שרת מקומי כדי להירשם לטלמטריה ולשלוח פקודה לשליטה בממסר בתיקייה בשם
soil-moisture-sensor-server
. שם המאפיין בהודעת הפקודה יהיהrelay_on
, ושם הלקוח יהיהsoilmoisturesensor_server
עם קידומת מזהה שלכם. שמרו על אותה מבנה כמו קוד השרת שכתבתם בפרויקט 1, שיעור 4, מכיוון שתוסיפו לקוד הזה בהמשך השיעור.⚠️ ניתן להתייחס להוראות לשליחת טלמטריה ל-MQTT](../../../1-getting-started/lessons/4-connect-internet/README.md#write-the-server-code) ושליחת פקודות דרך MQTT בפרויקט 1, שיעור 4 אם יש צורך.
-
הוסיפו את קוד המכשיר הרלוונטי לשליטה בממסר מהפקודות שהתקבלו, באמצעות המאפיין
relay_on
מההודעה. שלחו true עבורrelay_on
אם ה-soil_moisture
גדול מ-450, אחרת שלחו false, בדיוק כמו הלוגיקה שהוספתם למכשיר ה-IoT קודם.⚠️ ניתן להתייחס להוראות להתמודדות עם פקודות מ-MQTT בפרויקט 1, שיעור 4 אם יש צורך](../../../1-getting-started/lessons/4-connect-internet/README.md#handle-commands-on-the-iot-device).
💁 ניתן למצוא את הקוד הזה בתיקיית code-mqtt.
וודאו שהקוד פועל על המכשיר שלכם ועל השרת המקומי, ובדקו אותו על ידי שינוי רמות לחות הקרקע, או על ידי שינוי הערכים שנשלחים על ידי החיישן הווירטואלי, או על ידי שינוי רמות הלחות בקרקע על ידי הוספת מים או הסרת החיישן מהקרקע.
תזמון חיישנים ומפעילים
בשיעור 3 בניתם מנורת לילה - נורת LED שנדלקת ברגע שמתגלה רמת אור נמוכה על ידי חיישן אור. חיישן האור זיהה שינוי ברמות האור באופן מיידי, והמכשיר היה מסוגל להגיב במהירות, מוגבל רק על ידי אורך ההשהיה בפונקציית loop
או בלולאת while True:
. בתור מפתחי IoT, לא תמיד תוכלו להסתמך על לולאת משוב מהירה כל כך.
תזמון עבור לחות הקרקע
אם עשיתם את השיעור הקודם על לחות הקרקע באמצעות חיישן פיזי, הייתם שמים לב שלקח כמה שניות עד שרמת לחות הקרקע ירדה לאחר שהשקיתם את הצמח שלכם. זה לא בגלל שהחיישן איטי, אלא בגלל שלוקח זמן למים לחלחל דרך הקרקע.
💁 אם השקיתם קרוב מדי לחיישן, ייתכן שראיתם את הקריאה יורדת במהירות ואז עולה שוב - זה נגרם מכך שהמים ליד החיישן מתפשטים בשאר האדמה, מה שמפחית את רמת הלחות באדמה ליד החיישן.
בדיאגרמה למעלה, מדידת לחות הקרקע מראה 658. הצמח מושקה, אך המדידה הזו לא משתנה מיד, מכיוון שהמים עדיין לא הגיעו לחיישן. ההשקיה יכולה אפילו להסתיים לפני שהמים מגיעים לחיישן והערך יורד כדי לשקף את רמת הלחות החדשה.
אם הייתם כותבים קוד לשליטה במערכת השקיה באמצעות ממסר המבוסס על רמות לחות הקרקע, הייתם צריכים לקחת את העיכוב הזה בחשבון ולבנות תזמון חכם יותר במכשיר ה-IoT שלכם.
✅ הקדישו רגע לחשוב איך הייתם עושים זאת.
שליטה בתזמון החיישן והמפסק
דמיינו שקיבלתם משימה לבנות מערכת השקיה לחווה. בהתבסס על סוג הקרקע, נמצא שרמת הלחות האידיאלית עבור הצמחים תואמת קריאה של מתח אנלוגי בין 400 ל-450.
אפשר לתכנת את המכשיר באותו אופן כמו מנורת לילה - כל עוד החיישן קורא מעל 450, להפעיל ממסר שיפעיל משאבה. הבעיה היא שלוקח זמן עד שהמים מגיעים מהמשאבה, דרך הקרקע, אל החיישן. החיישן יפסיק את המים כשהוא מזהה רמה של 450, אך רמת המים תמשיך לרדת כשהמים שנשאבו ממשיכים לחלחל דרך הקרקע. התוצאה הסופית היא בזבוז מים וסיכון לנזק לשורשים.
✅ זכרו - יותר מדי מים יכולים להיות גרועים לצמחים כמו מעט מדי מים, וגם מבזבזים משאב יקר.
הפתרון הטוב יותר הוא להבין שיש עיכוב בין הפעלת המפסק לבין השינוי בתכונה שהחיישן מודד. המשמעות היא שלא רק שהחיישן צריך להמתין זמן מה לפני שהוא מודד את הערך שוב, אלא שהמפסק צריך להיכבות לזמן מה לפני שמדידת החיישן הבאה מתבצעת.
כמה זמן הממסר צריך להיות מופעל בכל פעם? עדיף להיות זהירים ולהפעיל את הממסר לזמן קצר בלבד, ואז להמתין שהמים יחלחלו, ואז לבדוק שוב את רמות הלחות. אחרי הכל, תמיד אפשר להפעיל אותו שוב כדי להוסיף עוד מים, אבל אי אפשר להוציא מים מהקרקע.
💁 תזמון מסוג זה מאוד ספציפי למכשיר ה-IoT שאתם בונים, לתכונה שאתם מודדים ולחיישנים ולמפסק שאתם משתמשים בהם.
לדוגמה, יש לי צמח תות עם חיישן לחות קרקע ומשאבה הנשלטת על ידי ממסר. שמתי לב שכאשר אני מוסיף מים, לוקח כ-20 שניות עד שרמת הלחות בקרקע מתייצבת. המשמעות היא שאני צריך לכבות את הממסר ולהמתין 20 שניות לפני שאני בודק את רמות הלחות. אני מעדיף שיהיו מעט מדי מים מאשר יותר מדי - תמיד אפשר להפעיל את המשאבה שוב, אבל אי אפשר להוציא מים מהצמח.
המשמעות היא שתהליך ההשקיה הטוב ביותר יהיה משהו כמו:
- הפעלת המשאבה ל-5 שניות
- המתנה של 20 שניות
- בדיקת לחות הקרקע
- אם הרמה עדיין מעל מה שצריך, חזרה על השלבים הנ"ל
5 שניות יכולות להיות זמן ארוך מדי למשאבה, במיוחד אם רמות הלחות רק מעט מעל הרמה הנדרשת. הדרך הטובה ביותר לדעת איזה תזמון להשתמש היא לנסות, ואז להתאים כשיש נתוני חיישן, עם לולאת משוב מתמדת. זה יכול אפילו להוביל לתזמון יותר מדויק, כמו הפעלת המשאבה לשנייה אחת עבור כל 100 מעל רמת הלחות הנדרשת, במקום 5 שניות קבועות.
✅ בצעו מחקר: האם יש שיקולי תזמון נוספים? האם ניתן להשקות את הצמח בכל זמן שבו לחות הקרקע נמוכה מדי, או שיש זמנים ספציפיים ביום שהם טובים או רעים להשקיית צמחים?
💁 תחזיות מזג אוויר יכולות גם להילקח בחשבון כאשר שולטים במערכות השקיה אוטומטיות לגידול חיצוני. אם צפוי גשם, ניתן להשהות את ההשקיה עד לאחר סיום הגשם. בשלב זה הקרקע עשויה להיות לחה מספיק כך שאין צורך להשקות, הרבה יותר יעיל מאשר לבזבז מים על השקיה רגע לפני הגשם.
הוספת תזמון לשרת השליטה בצמח
ניתן לשנות את קוד השרת כדי להוסיף שליטה סביב תזמון מחזור ההשקיה, ולהמתין לשינוי ברמות לחות הקרקע. הלוגיקה של השרת לשליטה בתזמון הממסר היא:
- הודעת טלמטריה מתקבלת
- בדיקת רמת לחות הקרקע
- אם היא תקינה, לא לעשות דבר. אם הקריאה גבוהה מדי (כלומר לחות הקרקע נמוכה מדי) אז:
- שליחת פקודה להפעיל את הממסר
- המתנה של 5 שניות
- שליחת פקודה לכבות את הממסר
- המתנה של 20 שניות לייצוב רמות לחות הקרקע
מחזור ההשקיה, התהליך מהגעת הודעת הטלמטריה ועד להיותו מוכן לעיבוד רמות לחות הקרקע שוב, לוקח כ-25 שניות. אנחנו שולחים רמות לחות קרקע כל 10 שניות, כך שיש חפיפה שבה מתקבלת הודעה בזמן שהשרת ממתין לייצוב רמות לחות הקרקע, מה שיכול להתחיל מחזור השקיה נוסף.
יש שתי אפשרויות להתמודד עם זה:
- שינוי קוד מכשיר ה-IoT כך שישלח טלמטריה רק פעם בדקה, כך שמחזור ההשקיה יושלם לפני שליחת ההודעה הבאה
- ביטול המנוי לטלמטריה במהלך מחזור ההשקיה
האפשרות הראשונה לא תמיד פתרון טוב עבור חוות גדולות. החקלאי עשוי לרצות לתפוס את רמות לחות הקרקע בזמן שהקרקע מושקית לצורך ניתוח מאוחר יותר, למשל כדי להיות מודע לזרימת המים באזורים שונים בחווה ולהנחות השקיה ממוקדת יותר. האפשרות השנייה טובה יותר - הקוד פשוט מתעלם מטלמטריה כשהוא לא יכול להשתמש בה, אבל הטלמטריה עדיין קיימת עבור שירותים אחרים שעשויים להירשם אליה.
💁 נתוני IoT לא נשלחים ממכשיר אחד לשירות אחד בלבד, אלא מכשירים רבים יכולים לשלוח נתונים למתווך, ושירותים רבים יכולים להאזין לנתונים מהמתווך. לדוגמה, שירות אחד יכול להאזין לנתוני לחות הקרקע ולאחסן אותם במסד נתונים לניתוח מאוחר יותר. שירות אחר יכול גם להאזין לאותה טלמטריה כדי לשלוט במערכת השקיה.
משימה - הוספת תזמון לשרת השליטה בצמח
עדכנו את קוד השרת שלכם כך שיפעיל את הממסר ל-5 שניות, ואז ימתין 20 שניות.
-
פתחו את התיקייה
soil-moisture-sensor-server
ב-VS Code אם היא לא פתוחה כבר. ודאו שהסביבה הווירטואלית מופעלת. -
פתחו את הקובץ
app.py
-
הוסיפו את הקוד הבא לקובץ
app.py
מתחת לייבוא הקיים:import threading
שורה זו מייבאת את
threading
מספריות פייתון, המאפשרת לפייתון לבצע קוד אחר בזמן המתנה. -
הוסיפו את הקוד הבא לפני הפונקציה
handle_telemetry
שמטפלת בהודעות טלמטריה שמתקבלות בקוד השרת:water_time = 5 wait_time = 20
זה מגדיר כמה זמן להפעיל את הממסר (
water_time
), וכמה זמן להמתין לאחר מכן כדי לבדוק את לחות הקרקע (wait_time
). -
מתחת לקוד הזה, הוסיפו את הקוד הבא:
def send_relay_command(client, state): command = { 'relay_on' : state } print("Sending message:", command) client.publish(server_command_topic, json.dumps(command))
קוד זה מגדיר פונקציה בשם
send_relay_command
ששולחת פקודה דרך MQTT לשליטה בממסר. הטלמטריה נוצרת כמילון, ואז מומרת למחרוזת JSON. הערך שמועבר ל-state
קובע אם הממסר צריך להיות מופעל או כבוי. -
לאחר הפונקציה
send_relay_code
, הוסיפו את הקוד הבא:def control_relay(client): print("Unsubscribing from telemetry") mqtt_client.unsubscribe(client_telemetry_topic) send_relay_command(client, True) time.sleep(water_time) send_relay_command(client, False) time.sleep(wait_time) print("Subscribing to telemetry") mqtt_client.subscribe(client_telemetry_topic)
זה מגדיר פונקציה לשליטה בממסר בהתבסס על התזמון הנדרש. היא מתחילה בביטול המנוי לטלמטריה כך שהודעות לחות הקרקע לא יעובדו בזמן שההשקיה מתבצעת. לאחר מכן היא שולחת פקודה להפעיל את הממסר. היא ממתינה ל-
water_time
לפני שליחת פקודה לכבות את הממסר. לבסוף היא ממתינה לייצוב רמות לחות הקרקע למשךwait_time
שניות. לאחר מכן היא נרשמת מחדש לטלמטריה. -
שנו את הפונקציה
handle_telemetry
לקוד הבא:def handle_telemetry(client, userdata, message): payload = json.loads(message.payload.decode()) print("Message received:", payload) if payload['soil_moisture'] > 450: threading.Thread(target=control_relay, args=(client,)).start()
קוד זה בודק את רמת לחות הקרקע. אם היא גבוהה מ-450, הקרקע צריכה השקיה, ולכן הוא קורא לפונקציה
control_relay
. פונקציה זו מופעלת על שרשור נפרד, שרץ ברקע. -
ודאו שמכשיר ה-IoT שלכם פועל, ואז הריצו את הקוד הזה. שנו את רמות לחות הקרקע וצפו מה קורה לממסר - הוא אמור להידלק ל-5 שניות ואז להישאר כבוי לפחות 20 שניות, ולהידלק רק אם רמות לחות הקרקע אינן מספקות.
(.venv) ➜ soil-moisture-sensor-server ✗ python app.py Message received: {'soil_moisture': 457} Unsubscribing from telemetry Sending message: {'relay_on': True} Sending message: {'relay_on': False} Subscribing to telemetry Message received: {'soil_moisture': 302}
דרך טובה לבדוק זאת במערכת השקיה מדומה היא להשתמש בקרקע יבשה, ואז לשפוך מים ידנית בזמן שהממסר מופעל, ולהפסיק לשפוך כשהממסר נכבה.
💁 ניתן למצוא את הקוד הזה בתיקייה code-timing.
💁 אם אתם רוצים להשתמש במשאבה כדי לבנות מערכת השקיה אמיתית, תוכלו להשתמש ב-משאבת מים 6V עם ספק כוח USB. ודאו שהכוח אל או מהמשאבה מחובר דרך הממסר.
🚀 אתגר
האם אתם יכולים לחשוב על מכשירי IoT או מכשירים חשמליים אחרים שיש להם בעיה דומה שבה לוקח זמן עד שתוצאות המפסק מגיעות לחיישן? סביר להניח שיש לכם כמה בבית או בבית הספר.
- אילו תכונות הם מודדים?
- כמה זמן לוקח לתכונה להשתנות לאחר שימוש במפסק?
- האם זה בסדר שהתכונה תשתנה מעבר לערך הנדרש?
- איך ניתן להחזיר אותה לערך הנדרש אם צריך?
שאלון לאחר ההרצאה
סקירה ולימוד עצמי
- קראו עוד על ממסרים כולל השימוש ההיסטורי שלהם במרכזיות טלפונים בעמוד ממסר בויקיפדיה.
משימה
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. בעוד שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.