Arduino GPS/GPRS tracker for beginner

Hi
I`m really a beginner at Arduino! My major is web programming and now started to learn Arduino.

I have searched a lot on the net but none of them used exactly for my shields.

Simply: I have:

  • Arduino Uno ATMEGA 328
  • SIM800C EVB
  • GY-NEO6MVU
  • LCD Keypad Shield

DO you have any tutorial that I can build my GPS by these tools? Plus how to connect these devices together. I`m really a beginner :slightly_frowning_face: .

Warm Thank for your help :wink: .

Start by connecting the devices one at a time and trying example programs. That will help you understand each device.

My NeoGPS library has a section about connecting the GPS device. The most important choice will be which pins you use, as these determine how busy the UNO will be. Using SoftwareSerial is not recommended, because it disables interrupts for long periods of time. This will interfere with handling the LCD keypresses and the SIM800 event.

There are plenty of GPS examples in it to get you started. Just follow the Installation instructions or ask questions.

The most complicated part of your sketch is going to be the SIM800 handling. There are many different AT commands that you can send to it, and your sketch should avoid using delay to wait for those responses. For example, using delay will probably prevent the sketch from receiving GPS data or keypresses. It's ok to write a "blocking" program at first to understand the command/response sequence you need. But in the final sketch, you will need a more advanced technique: Blink without Delay and Finite-State machines. Read through Using millis() for timing. A beginners guide and the related tutorials on the Useful Links page.

Some general guidelines:

  • Indent your code. Just press control-T in the IDE editor and it will auto-format it for you.

  • Let loop run constantly. Never call delay, Serial.readString or stay in a while loop until something happens.

  • Don't use Stringβ„’. It is very inefficient, and it can cause your Arduino to quit working at random times.

  • Use the F macro around "double-quoted strings" that you print. It saves RAM.

  • Don't print too much information. It slows down the Arduino so that it spends most of its time waiting to send the next printed character. This is called "blocked".

When you have a sequence of commands that you want to send (and read the responses), and you understand the timing of the various events (keypresses, 1-second GPS updates, LCD drawing, timed intervals), you can work on the state machine that handles all these events.

As a noob, you have many things to learn. Take the project in steps and ask for help when you get stuck.

Cheers,
/dev