Skip to content

About

תושבת טלוויזיה אוטונומית שמזהה סנוור ומטה את המסך — ESP32 וחיישני BH1750

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SmartMount

דמו חי — סימולציה בדפדפן, בלי חומרה מחוברת.

SmartMount היא הדגמת קונספט חומרה לפריט תיק עבודות: קושחת ESP32 + דפים סטטיים בעברית (RTL). הרעיון — שני חיישני BH1750 מודדים יחס אור, ומנוע צעד מטה את המסך כשיש בוהק.

זה לא מוצר, לא תושבת שנבדקה על הקיר, ולא שירות. הקושחה ב־firmware/smart_mount.ino נכתבה ללוח אמיתי אך טרם רצה מול חומרה. אלגוריתם הבוהק לא כויל מול מדידה. אין ענן, אין חשבונות ואין סליקה.

In English

SmartMount is a portfolio piece, not a product (market verdict: PARK). It is ESP32 firmware (firmware/smart_mount.ino) that reads two BH1750 light sensors and tilts a screen with a stepper when their ratio suggests glare, plus a static Hebrew site that runs the same control law in the browser.

  • What is measured: the firmware compiles for ESP32 (arduino-cli, esp32 core 3.3.12 and 2.0.17, 27.9.2026). Before that fix it did not compile at all. 140+ host tests pin the control law, the HTTP contract and every cell of the state machine.
  • What is not: it has never been flashed to a board. The glare threshold is not calibrated. There is no homing switch, so position zero is a guess. The 12-case bench plan (HIL) has not run.
  • Start here (90 seconds): https://swissystem7.github.io/SmartMount/case/ (Hebrew).
  • Contact: a public GitHub issue form, https://github.com/Swissystem7/SmartMount/issues/new?template=recruiter.yml. Please do not post a phone number or email there.

דפים

עמוד מה יש בו
בית 30 שניות: מה זה, PARK, מה לא נבדק
מקרה הנדסי תיק למגייסים: באגי בטיחות, FSM, פשרות. הקושחה לא רצה על לוח
מעבדה הנדסית חדר וירטואלי + קונסולת תקלות (חיישן / WiFi / גבול פאנל) על חוק smart_mount.ino
מפרט בנייה BOM כנה, מחשבון מומנט מול NEMA17, חיווט SVG
גאומטריית בוהק חוק ההחזרה + למה יחס lux אינו בהירות לצופה
חוזה API חמישה נתיבי HTTP + Serial 115200 — בדיוק מה שבקושחה
מכונת מצבים מה שה־.ino עושה (auto + moveTo) מול FSM בטוח מוצע — 32 + 176 תאים מ־step()
תזמון והספק פרופיל AccelStepper, גנט של loop(), הבזק שמש שמתפספס בין דגימות
תוכנית HIL שלושה-עשר מקרים על השולחן. אפס רצו. HIL-10 אוסר טלוויזיה

הוצאו מהניווט ב-28.9.2026 (נשארים באוויר לקישור ישיר; התוכן המרכזי עבר לעמוד אחר, כדי שהתיק ייקרא ב-90 שניות):

עמוד מה יש בו איפה התוכן המרכזי
תקציב הספק זרם idle / תנועה / WiFi וחישוב סוללה — דפי נתונים, לא מד-זרם תזמון והספק
חלופות צעד מול סרבו מול מפעיל קווי; יחס lux מול מוחלט; למה המסגרת מקרה הנדסי
לוח בקרה סליידרי lux על control.js — בלי Cloud ובלי חשבון מעבדה

קוד: Swissystem7/SmartMount.

מה באמת עובד

בדיקות יחידה רצות על המחשב בלי תלויות (node --test): חוק ההטיה, חוזה ה־HTTP, מומנט המנוע, הפער בין lux לבהירות, כל תא במכונת המצבים (2×15 + 11×15), תקציב תזמון/הספק/סוללה, תוכנית HIL שמוגדרת כ־never-run, וחלופות שנדחו. פירוט מה נבדק ומה אי אפשר לבדוק בלי לוח: docs/TESTING.md. תוכנית השולחן: docs/HIL.md.

בקושחה ובדשבורד תוקנו באגים שהיו מסוכנים או מטעים:

  • קריאת חיישן כושלת (BH1750 מחזיר ערך שלילי) מחזיקה זווית — לא מטה למקסימום.
  • מנוע: stepper.moveTo ממיקום מוחלט; currentAngle לא מתעדכן לפני שהמנוע מגיע. targetAngle הוא הצעד המעוגל חלקי STEPS_PER_DEGREE (כמו currentAngle), כך ש־/status מראה angle == target בדיוק כשהתנועה נגמרת. המראה ב־JS מעגלת כמו הלוח: מכפלת float32 ואז lroundf (חצי מתרחק מאפס), לא Math.round על double.
  • API: set-angle / set-mode דוחים ארגומנט חסר/לא תקין; סוג פאנל נפרס ב־strtol עם צריכה מלאה, כמו deg: type=foo → 400, לא OLED. set-panel מצמיד את היעד לגבול החדש, לא את הזווית הנוכחית — תנועה באמצע ממשיכה. POST /stop מכבה אוטו ומאט עד עצירה (stepper.stop()), לא קופץ למיקום הנוכחי. ב־/status קריאת BH1750 כושלת יוצאת כ־lux_top: null / lux_bot: null, לא כ־-1 lux. נתיב לא מוכר או מתודה שגויה (GET /stop) מקבלים 404 בעטיפת ה־JSON של כל שגיאה, {"ok":false,"error":"not found"}, לא Not found בטקסט.
  • WiFi: timeout — המצב האוטומטי המקומי ממשיך גם בלי רשת.
  • דשבורד: סימולציית חוק בקרה בלבד (control.js). אין Cloud, אין התחברות, אין לוח זמנים — אלה לא קיימים בקושחה.
  • גבולות צפייה: OLED 40° (הרחב ביותר), QLED 30°, LED/VA 20°.

הידור: הקושחה מתקמפלת ל־ESP32 (core 3.3.12 ו־2.0.17, נמדד 27.9.2026). לפני כן היא לא התקמפלה בגלל min(float, double). זה הידור בלבד, לא ריצה על לוח. פירוט: docs/TESTING.md.

מה לא עובד: אין ESP32 מחובר לדמו, אין מדידת בוהק אמיתית, ואין הרכבה מכנית שנשאה מסך. הומינג, מפעיל נעילה עצמית וגאומטריית הכתם — פתוחים (ראו מפרט). מכונת המצבים ה«בטוחה», מספרי התזמון/הספק/הסוללה ותוכנית ה-HIL הם מודלים ומסמכים על המחשב, לא קושחה שרצה ולא מדידת מעבדה.

מה המחקר מצא

פסק דין שוק: PARK — לא לבנות חומרה מסחרית סביב הסיפור הזה. הפירוט: RESEARCH.md.

פסק דין הכנסה: אין נתיב הכנסה. לא רישוי, לא ערכת מייקרים, לא ספונסרשיפ. זה פריט תיק עבודות. הפירוט עם מחירים וקישורים: MONETIZATION.md. הדף למגייסים: מקרה הנדסי.

  1. אף תושבת ממונעת מסחרית לא עושה הטיה אוטומטית לפי חיישן אור. Vogel's MotionMount TVM 7675 מסתובב בהדלקה ובמדריך כתוב במפורש שאין הטיה. הקרוב ביותר היה Sanus LMT15 (2009) והוא הופסק.
  2. השוק פתר בוהק בציפוי הפאנל, לא בזרוע. Samsung Glare Free OLED ודירוגי RTINGS לחדר בהיר.
  3. מה היה פותח את זה מחדש: ראיון עם 10 בעלי MantelMount או MotionMount — «האם היית משלם עוד $150–$300 על הטיה אוטומטית לפי חיישן אור?» אם פחות משניים אומרים כן בלי היסוס — לגנוז סופית.

סנכרון קבועים

מקור האמת: config/control-params.json. אחרי עריכה:

node scripts/sync-control-params.js

הסקריפט ממלא בלוק מסומן ב־firmware/smart_mount.ino ומייצר את src/lib/control-params.js. הדשבורד והמעבדה טוענים את אותו קובץ JS (בלי bundler). הבדיקות נכשלות אם ה־JSON והקוד שנוצר מתפצלים.

Sentry ו־Codecov

  • Sentry: מוגדר דרך <meta name="sentry-dsn" content="__SENTRY_DSN__"> ב־index.html ומודול src/lib/sentryLoader.js. ללא DSN תקף (סוד SENTRY_DSN), Sentry אינו מופעל ואינו שולח דבר.
  • Codecov: צעד העלאת כיסוי בדיקות ב־CI (.github/workflows/validate.yml) ופקודת npm run coverage (tools/codecov.js). בהיעדר CODECOV_TOKEN, ההעלאה מדולגת בשקט והבדיקות מצליחות.

כנות

  • הדמו מציג נתוני סימולציה. הבאנר בדשבורד אומר את זה במפורש.
  • BOM של ₪35–50 שהופיע בהאקתון הוא ESP32 + חיישן + מנוע בסיסי — בלי פלדה, בלמים, UL/TÜV או אחריות לנפילת מסך. הטווח הכנה במפרט: אלקטרוניקה ≈₪110–220; תושבת שנשאת מסך הרבה יותר.
  • אין מנוי, אין אחריות יצרן, אין סליקה. מסמך ההאקתון שדיבר על Cloud ₪9.90 הועבר ל־docs/archive/.

About

תושבת טלוויזיה אוטונומית שמזהה סנוור ומטה את המסך — ESP32 וחיישני BH1750

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages