Uzaktan veri okuma

C++:
#include <HardwareSerial.h>
int gsmPowerPin = 10;
int gsmExtPowerPin = 3;
int led = 2;

HardwareSerial gsm(1);
char cmd[50];
char resp[50];
char text[50];

//int pinValue;

/* TIMER */
#define delayed  100000 //100k = 100ms
#define fcpu 80 //80MHZ
uint64_t tmr = 0;//64 bit timer
hw_timer_t *Timer0_Cfg = NULL;
void IRAM_ATTR Timer0_ISR()
{
  tmr++;
  if(tmr == 10){
    //1 saniye
  }
   //...
}

int sayac;
String sendCmd(char text[50])
{
  gsm.println(text);
  delay(250);
  if (gsm.available()>0)
  {
    char resp = gsm.read();
    Serial.print(resp);   
  }

}
void gsmCheck()
{
  //pinValue = digitalRead(gsmExtPowerPin);
  if (digitalRead(gsmExtPowerPin) == LOW)
  {
    digitalWrite(gsmPowerPin, HIGH);
    delay(1000);
    digitalWrite(gsmPowerPin, LOW);
    delay(100);
  }

}


void setup() {

  /* TIMER */
  Timer0_Cfg = timerBegin(0, fcpu, true);
  timerAttachInterrupt(Timer0_Cfg, &Timer0_ISR, true);
  timerAlarmWrite(Timer0_Cfg, delayed, true);
  timerAlarmEnable(Timer0_Cfg);

  Serial.begin(115200);
    
  // put your setup code here, to run once:
  pinMode(gsmPowerPin, OUTPUT);
  pinMode(gsmExtPowerPin, INPUT);
  pinMode(led, OUTPUT);
  gsm.setTimeout(300);
  gsm.begin (115200, SERIAL_8N1, 6, 7);
 
 
  digitalWrite(led, HIGH);
  delay(250);
  digitalWrite(led, LOW);
 
}

void loop() {
  // put your main code here, to run repeatedly:
  char text[] = "AT";
  gsmCheck();
  sendCmd(text);
}
Şöyle biraz kurcaladım.
tmr değişkenini kendi haline bırakmamak lazım belli bir değere ulaştığında 0layıp başka değişken set edilererek kullanımı bence daha uygun.
 
Seri Konsol Çıktısı:
rst:0x3 (RTC_SW_SYS_RST),boot:0xe (SPI_FAST_FLASH_BOOT)
Saved PC:0x403819be
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5810,len:0x438
load:0x403cc710,len:0x91c
load:0x403ce710,len:0x25b0
entry 0x403cc710
E (92) esp_core_dump_flash: Core dump data check failed:
Calculated checksum='4584a63a'
Image checksum='329a6ca1'
AT

E (92) esp_core_dump_flash: Core dump data check failed:

Core dump check failed
iş burada kopuyor.
 
Seri Konsol Çıktısı:
rst:0x3 (RTC_SW_SYS_RST),boot:0xe (SPI_FAST_FLASH_BOOT)
Saved PC:0x403819be
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5810,len:0x438
load:0x403cc710,len:0x91c
load:0x403ce710,len:0x25b0
entry 0x403cc710
E (92) esp_core_dump_flash: Core dump data check failed:
Calculated checksum='4584a63a'
Image checksum='329a6ca1'
AT

E (92) esp_core_dump_flash: Core dump data check failed:

Core dump check failed
iş burada kopuyor.
bence sendCmd(); içindeki delay loop'a taşınmalı.
 
E (92) esp_core_dump_flash: Core dump data check failed:
Calculated checksum='10a90d45'
Image checksum='85c01b72

checksum farkı bu işe sebep oluyor sanırım.
 
Çok seri bir şekilde AT komutu gönderince muhtemelen bir taşmaya sebep oluyorsun. Saniyede birkaç kere gönderince sorun devam ediyor mu?
 
Merhaba,
Projeyi merakla takip etmekteyim. GSM, phyton ve arduino hakkında bir bilgim yok. Sıcaklık verisini nereden alıyorsunuz? bu veri analog mu?dijital mi? GSM, datayı hex formatında mı yollamaktadır? Baudrate hızı nedir?
 
Aht10 isimli sıcaklık+ nem sensörü ve 10k ntc termistör var.
İki ayrı kanaldan hem analog hem de dijital sıcaklık okuyorum.
Veriyi GSM modül üzerinden evimdeki modemin 5000. Nolu portuna request ediyorum. Modem 5000. Nolu porta gelen isteği raspberry pi kartın üzerinde çalışan şeklinde flask uygulamasına aktarıyor. Flask de alıp veritabanına kaydediyor. Oradan telegram uygulaması ile takip ediyorum.
Gerçekten çok güzel ve zevkli bir konu. Kodlaması çok zevkli.
 
invalid hedaer 0xffffff diye bir hata verip reset atıyor.
Bu hatayı daha önce flash belleği bozulmuş bir ESP32'de yaşadım. Sorun çipte olabilir. Flash belleğisileryen ya da yazarken hiç hata verdiği oluyor mu?
 
Son düzenleme:
Bu hatayı daha önce flash belleği bozulmuş bir ESP32'de yaşadım. Sorun çipte olabilir. Flash belleğisileryen ya da yazarken hiç hata verdiği oluyor mu?
Hata vermiyor. Her defasında düzgün flaşlanıyor. İmaj hatalı vence
 
text ve resp değişkenlerini iki kere tanımlamışsınız. Hata burada.
 
text ve resp değişkenlerini iki kere tanımlamışsınız. Hata burada.

Boş rutin, LED blinkte de aynı durum var. Değişkenin yeniden tanımlanmasında dolayı olduğunu sanmıyorum. Yine de deneyeyim.
 
ESP32-C3 ile olan sorunu çözdüm. Bu da bana başka bir şey öğretti.

Olay şu şekilde çözüldü:
1680184111121.png

imaj yüklemeyi terminal / cmd ekranı ile uğraşmamak için Thonny ile yapmıştım. Daha önceki ESP32 yüklemelerimde sıkınt çıkmamıştı. Ama ESP32-c3 imajında ise sıkıntı çıkardı.
1680184229340.png

Burdaki yükleme komutlarını kullanarak yeeniden flaşladım ve sorun çözüldü. Hala sıkıntılı noktalar (neopixel gibi) var ama şimdilik işimi görüyor. Kod kısmında Gsm modülü ile veri çekme denemesi yaptım. Şimdilik Neopixel dışında sıkıntı yok gibi
 
Neopixel kütüphanesi bug da çözülmüş.
 
Son düzenleme:

Çevrimiçi personel

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,809
Mesajlar
99,206
Üyeler
2,468
Son üye
kate22

Son kaynaklar

Son profil mesajları

deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Back
Top