Skip to content

Add ESP32 WiFi CSI nanny bot prototype - #1

Open
ananyaarahate-wq wants to merge 28 commits into
mainfrom
nanny-wifi-csi-prototype
Open

Add ESP32 WiFi CSI nanny bot prototype#1
ananyaarahate-wq wants to merge 28 commits into
mainfrom
nanny-wifi-csi-prototype

Conversation

@ananyaarahate-wq

Copy link
Copy Markdown
Collaborator

No description provided.

iniyamalar and others added 28 commits July 6, 2026 14:46
Robot connects to Wi-Fi, estimates the child's position via RSSI
trilateration against fixed anchor APs, and pushes it to Firebase
Realtime Database. The Expo/React Native app subscribes live and shows
position, online status, battery, and safe-zone alerts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Flip CALIBRATION_MODE to 1 and reflash to get a serial-printed,
strongest-first list of nearby APs (SSID/BSSID/RSSI) instead of running
trilateration — makes filling in include/anchors.h a matter of reading
values off the serial monitor rather than doing it blind.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Create the ducklan Firebase project, its Realtime Database instance,
and a pinned Anonymous Auth identity for the robot. Rules now require
auth for reads and restrict writes to that one pinned identity, instead
of the fully-open rules a "test mode" database would otherwise have.

Firmware exchanges a refresh token for short-lived ID tokens before
each write; the app signs in anonymously to satisfy the read rule.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Renamed the mascot from "Ducky" to "DuckLAN" throughout and added a DuckLAN
wordmark to the Home screen. Lives in ducklan-app/ as a separate Expo Router
app so it doesn't touch the existing Firebase/robot-location dashboard in app/.
…tethered

Adds an optional Firebase push (main/secrets.h, gitignored) to the WiFi CSI
firmware so it reports status to the phone app over WiFi instead of needing
a USB cable to a laptop. Without secrets.h the firmware behaves exactly as
before (CSI onboarding/following + the USB serial dashboard).

App side: new robots/<deviceId>/status Firebase path, useRobotStatus hook,
and a CsiStatusCard on the dashboard showing online state, imprint progress,
detection count, and fall alerts (no x/y position — a single ESP32 doing CSI
sensing can't determine that, so this doesn't fake one).
# Conflicts:
#	app/src/screens/DashboardScreen.tsx
… secrets template

Rotated to a new anonymous Firebase identity for the robot (old one had no
recoverable refresh token) and pinned database.rules.json write access to it;
deployed live. Also corrected FIREBASE_HOST in secrets.h.example — it was
guessed as a regional europe-west1 URL but the actual instance resolves at
the legacy ducklan-default-rtdb.firebaseio.com host.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants