Code Monkey home page Code Monkey logo

enginbozkurt / cruisecontrol-esp8266 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cohaolain/cruisecontrol-esp8266

0.0 2.0 0.0 92 KB

This is a project I'm working on so I can have cruise control in my car. It uses GPS in order to monitor the speed of your vehicle, and shows your speed on the OLED display. It allows you to set your desired speed limit using two push buttons. If you speed, the device screams - the pitch changing with your speeding.

Home Page: https://cohaolain.ie

C++ 100.00%

cruisecontrol-esp8266's Introduction

ESP8266 Cruise Control (GPS/OLED)

Build Status

This is a project I'm working on so I can have cruise control (ish) in my car.

It uses GPS in order to monitor the speed of your vehicle, and shows your speed on the OLED display.
It allows you to set your desired speed limit using two push buttons.
If you speed, the device screams - the pitch changing with your speeding.

I will write a better description at some point.

Hardware

  • ESP8266
    • I used a Heltec WiFi Kit 8
      • Which the manufacturer & retailer have about 5 completely different pinout diagrams for.
      • Eventually found a correct one after much digging ๐Ÿ˜ค.
      • You can find it here: Heltec Wifi Kit 8 - Pinout Diagram
    • Not actually using the WiFi capabilities of this myself, yet.
  • OLED display
    • Ideally compatible with u8g2. The WiFi Kit 8 already has such a display (128x32), quite handy.
      • It just took a while to figure out which pinout diagram to use ๐Ÿ˜ค.
  • GPS module
    • I used a module with a NEO-6M.
      • I had bought a MakerHawk module that claimed to have a NEO-6M. It actually turned out to be a NEO-7.
        I wanted to use the module's EEPROM to store our GPS receiver settings, but the newer version doesn't support EEPROM.
        The NEO-7 module still had the EEPROM soldered on, but it was inaccessible. So I'd to return that.
        Then I got myself a shiny new NEO-6M module!
    • EEPROM is useful so we
      • Don't need to connect the RX pin of the GPS module (I ran out of easily usable pins on my ESP8266)
      • Don't need to rely on the BBR (battery-backed RAM)
    • The default settings are changed so that we
      • Have a higher navigation refresh rate (5hz compared to 1hz)
      • Use the automotive navigation profile
      • Turn off the flashing light (timepulse)
      • Increase the baud rate (9600 to 19200)
      • Change what data the module actually provides
    • Breadboards, pushbuttons, a buzzer, wires, resistors etc.

Will include a schematic in the future.

Libraries

If you're using the PlatformIO IDE, you can install all required libraries with the single line:

platformio lib -g install TinyGPSPlus U8G2

You need to have platformio binary in your PATH. You can do this by adding the following to the bottom of your ~/.bashrc:

export PATH=$PATH:~/.platformio/penv/bin

Alternatively, use the relevant library-installation interface in your IDE of choice (e.g. PlatformIO or Arduino).

  • SoftwareSerial
    • For communicating with the GPS module
  • TinyGPS++
    • For dealing with all that GPS data
  • u8g2
    • For all our display interfacing needs
  • ESP8266WiFi
    • For (now), this is just to turn off the WiFi capabilities of the ESP8266.

More

Eventually....

cruisecontrol-esp8266's People

Contributors

cohaolain avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.