Postări

Se afișează postări din august, 2025

Vitezometru OLED / Speedometer GPS

Codul de mai jos este un vitezometru pentru masina. Are o corectie pentru 5km/h, avertizari optice si acustice pentru depasiri de viteza. Deasemenea pentru a evita fluctuatiile numarului de sateliti disponibili are integrate unele protectii pentru a nu deruta in cazul lipsei numarului minim de sateliti disponibili. Totusi in dreapta ecranului afiseaza in continuare viteza GPS In partea stanga jos indica numarul de sateliti disponibili. Are integrate atentionari sonore: lipsa GPS, conectare, si "overspeed" #include <TinyGPS++.h> #include <SoftwareSerial.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); TinyGPSPlus gps; SoftwareSerial ss(4, 3); // RX, TX const int led1 = 6; // 55 km/h const int led2 = 7; // 95 km/h const int led3 = 8; // 135 km/h const int buzzerPi...

Ceas GPS cu TM1637 / GPS clock with TM1637

#include <TinyGPS++.h> #include <SoftwareSerial.h> #include <TM1637Display.h> // Pinii pentru display TM1637 #define CLK 13 #define DIO 12 TM1637Display mydisplay(CLK, DIO); // Pinii pentru GPS Neo6m (RX, TX) pe D1 Mini // GPS TX -> D2(GPIO4) pe D1 Mini (RX ESP8266 pentru SoftwareSerial) // GPS RX -> D1(GPIO5) - nefolosit în acest caz, poți lăsa neconectat SoftwareSerial ss(4, 5); // RX = GPIO4 (D2), TX = GPIO5 (D1) TinyGPSPlus gps; void setup() { Serial.begin(115200); ss.begin(9600); mydisplay.setBrightness(7); mydisplay.clear(); mydisplay.showNumberDec(0, false, 4, 0); // afișare inițială "0000" } void loop() { while (ss.available() > 0) { gps.encode(ss.read()); } if (gps.time.isValid() && gps.date.isValid()) { int rawHour = gps.time.hour(); int minute = gps.time.minute(); int year = gps.date.year(); int month = gps.date.month(); int day = gps.date.day(); int hour = adjustHourForR...