หมายเหตุ: โครงการนี้ไม่ได้รับการรับรองหรือสนับสนุนโดย Lime หรือบริษัทในเครือใดๆ ทำสิ่งนี้กับสกู๊ตเตอร์ที่ได้รับอย่างถูกกฎหมายที่คุณเป็นเจ้าของเท่านั้น! คุณมักจะซื้อมันได้ในการประมูล
เป้าหมายของโปรเจ็กต์นี้คือการแทนที่ IoT ของ Lime Gen 3 ด้วย IoT แบบกำหนดเอง เพื่อให้เราควบคุมได้ด้วยแอปของเราเอง หากคุณทราบข้อมูลเพิ่มเติมเกี่ยวกับการสื่อสาร โปรดส่งได้ที่นี่
โมดูล IoT ถูกแทนที่ด้วยไมโครคอนโทรลเลอร์ ESP32 เพื่อให้เราควบคุมสกู๊ตเตอร์ด้วยแอปของเราได้ แอปสื่อสารกับ ESP32 โดยใช้ Bluetooth Low Energy (BLE) ESP32 เข้ามาแทนที่ฟังก์ชันของ IoT เดิม ในขณะเดียวกันก็ให้การตอบสนองแบบเรียลไทม์เกี่ยวกับความเร็ว ระดับแบตเตอรี่ และข้อมูลอื่นๆ
ติดตั้งโปรแกรมเสริม ESP32 สำหรับ Arduino IDE หากคุณยังไม่มี นี่คือบทช่วยสอน
ติดตั้งไลบรารี crc โดย robtillaart จากตัวจัดการไลบรารี
แฟลชคอนโทรลเลอร์พร้อมเฟิร์มแวร์ที่ปลดล็อคแล้ว
แฟลชโค้ด Arduino จากโฟลเดอร์ LimeIoT ไปยัง esp32
หมายเหตุ: คอนโทรลเลอร์ให้ไฟ 36v แก่คุณ ดังนั้นคุณต้องแปลงเป็น 5v ที่เสถียรสำหรับจอแสดงผลและ esp32 ฉันทำมันโดยใช้ตัวแปลงบั๊กและ ams1117
เชื่อมต่อสายไฟ:
ตัวเชื่อมต่อ | อีเอสพี32 |
---|---|
ล็อคตัวควบคุม | จีพีโอ 12 |
ตัวควบคุม RX | จีพีโอ 1 |
ตัวควบคุมเท็กซัส | จีพีโอ3 |
คอนโทรล 36v | ตัวแปลงบั๊ก -> ams1117 -> 5V |
คอนโทรลเลอร์ Gnd | ทั่วไป |
จอแสดงผล 5v | 5V |
แสดง Gnd | ทั่วไป |
แสดงเท็กซัส | จีพีโอ 16 |
จอแสดงผล RX | จีพีโอ 17 |
หากต้องการ คุณสามารถเชื่อมต่อลำโพงกับ GPIO 13
ได้ หากต้องการ
คุณสามารถดาวน์โหลดแอปได้ที่นี่: App.apk
รหัสผ่านบลูทูธเริ่มต้นคือ 123456789
คุณสามารถเปลี่ยนได้ในไฟล์ ble_security.ino
ขณะนี้ใช้งานได้บน Android เท่านั้นและดูดีกับโทรศัพท์ที่รองรับ Material You เท่านั้น
หากคุณไม่ต้องการหรือสามารถใช้แอปได้ คุณสามารถดาวน์โหลดแอปเทอร์มินัลบลูทูธ เช่น nRF Connect (Play Store | App Store) และส่งคำสั่งด้วยตัวเอง:
คำสั่ง | การกระทำ |
---|---|
unlock | ปลดล็อคสกู๊ตเตอร์ |
lock | ปิดตัวควบคุม |
unlockforever | ช่วยให้สกู๊ตเตอร์ปลดล็อกเมื่อถอดการเชื่อมต่อ |
alarm | ปล่อยให้สกู๊ตเตอร์ดังขึ้น (หากเชื่อมต่อลำโพงอยู่) |
หากต้องการปลดล็อคคอนโทรลเลอร์ ให้จ่ายไฟ 3.3V ให้กับสายสีน้ำเงินที่เชื่อมต่อกับ IoT และส่งคำสั่ง 464316610001F1F28F
เพื่อเปิดเครื่อง เมื่อเปิดเครื่องแล้ว ให้ส่งฮาร์ทบีท 4643110100084C494D4542494B45BE8A
ทุกๆ 500ms หากต้องการปิดคอนโทรลเลอร์ ให้ตัดแหล่งจ่ายไฟ 3.3V และส่งคำสั่ง 464316610001F0E2AE
baudrate สำหรับคำสั่งทั้งหมดคือ 9600
คำสั่งที่คอนโทรลเลอร์ส่งไปยัง IoT ประกอบด้วย 42 ไบต์ ไบต์ที่ 9 แสดงถึงความเร็ว และไบต์ที่ 20 แสดงถึงระดับแบตเตอรี่ สองไบต์สุดท้ายของคำสั่งคือการตรวจสอบ CRC-16/XMODEM
หมายเลขไบต์ | ความหมาย |
---|---|
9 | ความเร็ว |
20 | แบตเตอรี่ |
สองไบต์สุดท้าย | เช็คซัม CRC-16/XMODEM |
46 58 0C FF 00 22 11 00 00 40 00 00 41 3F 60 42 00 FF 44 64 52 00 61 F1 80 00 00 72 01 5C 01 59 82 00 00 00 00 E0 00 00 0A B3
บอดเรต: 115200
ผลรวมตรวจสอบ: width=8 poly=0x31 init=0x0a refin=true refout=true xorout=0x00 check=0xc1 residue=0x00
ตารางต่อไปนี้แสดงความหมายที่ทราบของไบต์ในคำสั่งที่ส่งไปยังจอแสดงผล:
ไบต์ | ความหมาย |
---|---|
12 | สถานะ (ดูด้านล่าง) |
14 | แบตเตอรี่ |
16-17 | ความเร็ว |
ไบต์สุดท้าย | เช็คซัม |
ไบต์ | สถานะ |
---|---|
21 | สแกนเพื่อขี่ |
22 | ไม่พร้อมใช้งาน |
23 | หยุดชั่วคราว |
24 | ล็อคแล้ว |
25 | เสร็จแล้ว |
26 | กำลังชาร์จ |
31 | ขับรถ |
41 | การขับแบตเตอรี่ต่ำ |
42 | การแจ้งเตือนการขับขี่ |
43 | ขับรถไม่มีที่จอดรถ |
44 | ขับรถไม่ขี่ |
45 | การขับขี่ด้วยความเร็วสูงสุด |
51 | กำลังอัปเกรด |
4C 42 44 43 50 01 10 11 00 09 01 31 01 1E 02 00 CD 01 00 9A
คุณสามารถปิด LED สีแดงได้ด้วยคำสั่งต่อไปนี้: 4C 42 44 43 50 01 10 1B 00 08 03 00 00 00 03 00 00 00