איך לפתח אפליקציה לכבסה בשירות עצמי?
מטבעות ותורים במסוף — נקודת הכאב המרכזית של בעלי מכבסות בשירות עצמי. הלקוח מבזבז 5 דקות בחיפוש מטבעות, ועוד 2 דקות בבחירת תוכנית דרך מסך עמום. עם האפליקציה: סריקת QR על המכונה, בחירת תוכנית, תשלום, קבלת התראה כשהכביסה מוכנה. לבעל הרשת — ניטור מכונות מרחוק, סטטיסטיקות עומס, תמחור דינמי ללא ביקור פיזי. אנו מפתחים אפליקציות למכבסות בשירות עצמי כבר למעלה מ-5 שנים — נבדקו על 12+ רשתות, עובדו למעלה ממיליון מחזורי כביסה, וחוברו למעלה מ-800 מכונות. העלות הממוצעת למחזור כביסה היא כ-$3–4, והאפליקציה מחזירה את עצמה תוך 6–8 חודשים על ידי הגדלת עומס המכונות ב-25%.
MQTT הוא הפרוטוקול המרכזי לתקשורת עם המכונות. הוא מספק זמן השהיה מתחת ל-100 אלפיות השנייה, מהיר פי 10 מ-HTTP polling. ארכיטקטורה: מודול IoT ↔ ברוקר MQTT ↔ שרת backend ↔ אפליקציה ניידת דרך WebSocket.
כיצד MQTT מבטיח תקשורת עם המכונות?
מכונות כביסה בשירות עצמי נשלטות דרך מודול IoT, מובנה או מותקן במקביל: ESP32 או Raspberry Pi עם GSM/Wi-Fi. המודול מתחבר ללוח הבקרה של המכונה דרך ממסרים (אמולציית לחצנים) או דרך UART/RS485 אם למכונה יש ממשק שירות. רוב יצרני המכונות המסחריות (Electrolux Professional, Miele Professional, Speed Queen) מספקים API או לפחות תיאור פרוטוקול שירות — יש לבקש ישירות מהיצרן. מכונות זולות ללא פרוטוקול נשלטות דרך ממסרים: המודול מזהה אות "מחזור התחיל" מחיישן זרם (SCT-013) ושולח את המצב לשרת.
MQTT עם ברוקר (Mosquitto/HiveMQ) מבטיח חיבור קבוע ללא תקורה של HTTP. כל מכונה מפרסמת את הסטטוס שלה לנושא laundry/{id}/status — האפליקציה נרשמת ומקבלת עדכונים מיידית. אובדן חיבור מתוגמל על ידי Last Will Testament. השוואת פרוטוקולים:
| פרוטוקול | זמן השהיה | עומס שרת | צריכת חשמל של המודול |
|---|---|---|---|
| MQTT | <100 אלפיות השנייה | נמוך | נמוך |
| HTTP polling | 1-30 שניות | גבוה | גבוה |
| WebSocket | <50 אלפיות השנייה | בינוני | בינוני |
// Android: подписка на статус машины через MQTT
class LaundryMachineMonitor(private val machineId: String) {
private val mqttClient: MqttAndroidClient = /* инициализация */
fun subscribeToMachine(onUpdate: (MachineStatus) -> Unit) {
mqttClient.subscribe("laundry/$machineId/status", 1) { _, message ->
val json = String(message.payload)
val status = Json.decodeFromString<MachineStatus>(json)
onUpdate(status)
}
}
fun startCycle(program: WashProgram, token: String) {
val command = Json.encodeToString(StartCycleCommand(program, token))
mqttClient.publish("laundry/$machineId/command", command.toByteArray(), 1, false)
}
}
@Serializable
data class MachineStatus(
val state: MachineState, // IDLE, RUNNING, DONE, ERROR
val programName: String?,
val remainingSeconds: Int?,
val errorCode: String?
) איך לעקוף את עמלת חנות האפליקציות בתשלום עבור כביסה?
נושא מרכזי: אפל רואה בהעלאת יתרה בארנק בתוך האפליקציה "מוצר דיגיטלי" ודורשת IAP עם עמלה של 30%. אבל אם הארנק משמש לתשלום עבור שירותים פיזיים (כביסה היא שירות פיזי), ניתן להשתמש בסליקה חיצונית ישירות. תכנית: העלאת יתרה → הפניה ל-Safari/SafariViewController עם דף תשלום אינטרנטי (YooKassa, Stripe, CloudPayments). תשלום עבור מחזור ספציפי — ניכוי מהיתרה דרך API. הנחיות אפל 3.1.5(b) מאפשרות זאת עבור "מוצרים ושירותים אמיתיים." באנדרואיד עם Google Pay זה קל יותר: // Android: подписка на статус машины через MQTT class LaundryMachineMonitor(private val machineId: String) { private val mqttClient: MqttAndroidClient = /* инициализация */ fun subscribeToMachine(onUpdate: (MachineStatus) -> Unit) { mqttClient.subscribe("laundry/$machineId/status", 1) { _, message -> val json = String(message.payload) val status = Json.decodeFromString<MachineStatus>(json) onUpdate(status) } } fun startCycle(program: WashProgram, token: String) { val command = Json.encodeToString(StartCycleCommand(program, token)) mqttClient.publish("laundry/$machineId/command", command.toByteArray(), 1, false) } } @Serializable data class MachineStatus( val state: MachineState, // IDLE, RUNNING, DONE, ERROR val programName: String?, val remainingSeconds: Int?, val errorCode: String? ) עם כרטיס או אינטגרציה ב-WebView. חיסכון בעמלה — עד 30% לעסקה.
למה ההזמנה צריכה להיות בתשלום?
המשתמש רוצה לדעת אם מכונה פנויה לפני שהוא הולך למכבסה. מפת מיקומים עם מחווני זמינות מכונות בזמן אמת היא הפונקציה המרכזית של מסך הבית. סינון: "רק עם מכונות פנויות," "עם מייבשים."
הזמנת מכונה ל-10–15 דקות היא פונקציה שנויה במחלוקת. ללא הזמנה: אתה מגיע והכל תפוס. עם הזמנה: הרבה הזמנות נטושות. פשרה: הזמנה בתשלום (יחידה קונבנציונלית אחת מנוכה), שמוחזרת עבור המחזור. הניסיון שלנו: יישום הזמנה בתשלום הפחית הזמנות ריקות ב-70%.
התראה Push 5 דקות לפני סיום המחזור ועם סיומו — דרך FCM/APNs. בצד השרת: עובד בודק את הזמן הנותר לפי נתוני המכונה, ומתזמן Push דרך FCM Schedule (אנדרואיד) או APNs עם PaymentsClient.
צבירת נקודות נאמנות עבור כל מחזור כביסה — מנגנון שימור פשוט. כל מחזור N בחינם. יישום על השרת, האפליקציה הניידת מציגה התקדמות דרך API.
מה כלול בפרויקט
- תיעוד API למודול IoT ואינטגרציה עם האפליקציה הניידת.
- קוד מקור של האפליקציה הניידת (iOS/Android) ב-Swift 5.9+ / Kotlin עם Jetpack Compose.
- מודול שרת ב-Node.js או Python עם ברוקר MQTT.
- מדריך אינטגרציה לכל מכונה: API, UART/RS485, ממסרים.
- הכשרת צוות לניהול הרשת דרך CMS.
- תמיכה טכנית למשך 3 חודשים לאחר ההשקה.
תהליך העבודה
| שלב | משך | מה אנחנו עושים |
|---|---|---|
| אנליטיקה | 1-2 שבועות | לימוד צי המכונות, בחירת פרוטוקול, ביקורת תהליכים עסקיים קיימים |
| עיצוב | 2-3 שבועות | עיצוב UX (מפה, הזמנה, תשלום), ארכיטקטורת רשת IoT |
| פיתוח | 4-8 שבועות | קושחת מודול, קוד נייד, שרת, פאנל ניהול |
| בדיקות | 2-3 שבועות | בדיקות אינטגרציה עם מכונות אמיתיות, בדיקות עומס MQTT |
| השקה | 1-2 שבועות | התקנת מודולים במכבסות, פרסום ב-App Store / Google Play |
רשימת בדיקה לאינטגרציה עם מכונות
- קביעת סוג החיבור: האם למכונה יש API שירות או רק ממסרים?
- ל-API: בקשת תיעוד מהיצרן, בדיקת תמיכה ב-MQTT.
- לממסרים: בחירת חיישן זרם SCT-013 ומודול ESP32 עם Wi-Fi.
- הגדרת ברוקר MQTT (Mosquitto) על השרת.
- בדיקת פקודות התחלה וסיום מחזור ידנית.
- אינטגרציה עם שער תשלום (Stripe, YooKassa) להעלאת יתרה.
- הגדרת התראות Push דרך FCM/APNs.
- בדיקת הזמנה: הגדרת טיימר ל-10-15 דקות עם החזקת כספים.
לוחות זמנים משוערים
- MVP (מכבסה אחת, פונקציונליות בסיסית): 6–8 שבועות.
- פתרון מלא עם מפת מיקומים, תוכנית נאמנות ו-CMS: 4–5 חודשים.
העלות מחושבת באופן אישי — תלויה במספר המכונות, מורכבות האינטגרציה והצורך באישור App Store. הניסיון של הצוות שלנו (10+ שנים בפיתוח נייד, הסמכות של Apple ו-Google) מפחית סיכונים וזמנים. הזמינו פיתוח היום וקבלו מצגת עם דוגמאות פרויקטים שהושלמו. צרו קשר לייעוץ — נעריך את הפרויקט שלכם.







