#Zaman o kadar değerli ki Youtube'da artık 1.25x hızda izliyorum videoları. 😀 Sizde böyle izliyor musunuz ?

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 4 / 9

#Pi3, arkadaşlar ne yaptıysam python dosyamı rc.local üzerinden bir türlü başlatamadım. Tam olarak nasıl yapılıyor? Verdiği hata bu: "/etc/rc.local: 19: /etc/rc.local: 0: not found"
Her seferinde reboot edip, denememek için dosyayı doğrudan çalıştırıp, deniyorum. Dosyada ip numarasını söyleyen örnek bir kod var ve doğru şekilde çalışıyor ama benim komut satırımı bir türlü çalıştırmadı.

sudo /home/pi/Documents/DHT22_GPS_On_Haz.py & şeklinde girdim, sudo'suz denedim ki Pi Organizasyonu bile sudo'suz örnek vermiş ama bir türlü çalıştırmadı.

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 38 / 46
  • lterlemez :) :\ :( @lterlemez

    @rdr; Systemd'yi de okudum ama tırstım açıçası, imajını bozabileceğim ikinci bir pi olsa sıkıntı olmayacak, o zaman denerim ama bu imajı bozamam. Çok fazla python kaynak kod ve deneme kodu var.

  • lterlemez :) :\ :( @lterlemez

    @rdr; Baştan öyle yapıyordum da pytthon kaynak dosyalarım çok hızlı çoğalıyor ve büyüyor ve SD imajı almak işleri çok yavaşlatıyor.

  • lterlemez :) :\ :( @lterlemez

    Merhaba Arkadaşlar, systemd olayı çözdü. Tabi ki biraz detay okumam lazım, verilen örneği hemen uygulayarak yaptım ama biraz okumak lazım tam olarak nasıl kullanıldığını çözmek için...
    Herkese teşekkürler...

    • lterlemez :) :\ :( @lterlemez

      @rdr; Tamam, not aldım; teşekkür ederim 👍⭐️⭐️⭐️⭐️⭐️

    • lterlemez :) :\ :( @lterlemez

      @rdr; O zaman ilk sorumu sorabilir miyim?
      Servis tanımını bu şekilde yaptım:
      [Unit]
      Description=DHT 22 GPS Kayıt Hizmeti
      After=network.target
      [Service]
      ExecStart=/usr/bin/python2.7 -u DHT22_GPS_On_Haz.py
      WorkingDirectory=/home/pi/Documents
      StandardOutput=inherit
      StandardError=inherit
      Restart=always
      User=pi
      [Install]
      WantedBy=multi-user.target

      ama şimdi saati internetten güncellemiyor ve hatalı saat gösteriyor. Şu an saati 16:25 mesela. Bunu nasıl düzeltebilirim? Bu servisi en son başlatmak istiyorum (farkındayım iki soru oldu), bunu nasıl sağlayabilirim?

    • lterlemez :) :\ :( @lterlemez

      @lterlemez; After anahtarı mı düzenliyor çalışma sırasını? Bu hizmetlerin çalıştırılma sırasını nasıl görebilirim (Evet, soru sayısı 3 oldu 🙂 )?

    • lterlemez :) :\ :( @lterlemez

      @rdr; Sistemi bozdu ya. Ben de bundan korkuyordum: hem tarih yanlış hem de saat... 🙁

    • lterlemez :) :\ :( @lterlemez

      @rdr; Oluşturduğum hizmeti iptal ettim, şimdi VNC ile ara yüze bağlanamıyorum, time out veriyor. SSH çalışıyor ama uğraştıracak şimdi beni ya. Offff, bu yüzden nefret ediyorum ve kurcalamak istemiyorum. Özellikle de linux'u....

    • lterlemez :) :\ :( @lterlemez

      @rdr; X (gui) de gitti, doğrudan cmd'ye düşüyor. Emekler gitti, yedekleri bir şekilde alsam bile hangi paketleri nasıl ve nereye indirdim bilmiyorum. Şimdi her ihtimale karşı bir bellek satın alıp, her şeyi sıfırdan kurmaya çalışacağım. Akşam fıstık gibi çalışıyordu. Bir kaç tane yükseltme somunu almıştım, onları takmak için açtım. Sonra bunlar oldu. Önce koordinatlar gelmedi, onlar geldi, tarih/saat şaşırdı. Şimdi de X gelmiyor. Linux'un daha 1001 fırın ekmek yemesi lazım, MacOS'u al Windows'a onu da al Linux'a vur işte.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Systemctl disable ettim. kendi ilk yüklendiği ne ise o güncelliyordu zamanı.

    • lterlemez :) :\ :( @lterlemez

      @rdr; raspi-config ile hiçbir ayarı değitiremiyorum, update yapınca locked file var diyor kalıyor.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Ustam (işin ustası olduğu için, yanlış anlamayın lütfen), ben şimdi yeni bir imaj kurdum. Arızalı raspi'nin partition'ına nasıl erişebilir bana adım adım yazabilir misin? Eğer, mümkün ise böyle bir şey, en azından python kaynaklarımı ve kaynak kodlarımı kurtarayım.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Raspbian; yeni karta da yeni adı ile Pi OS yükledim ama bu da başka uğraştırıyor. GPS'den doğrudan metin veri alıyordum, şimdi nedense byte veri alıyor. Çevirene kadar imanım gevredi. Mantığı anlıyorum ama o kadar karmaşık ki python, milletin kafayı yememesine şaşırıyorum. Gerçekten eziyet; R'ye karmaşık derdim ama meğer daha derli toplu imiş. En azından, derleme farklılıkları daha kolay giderilebiliyor. Bütün gün bununla uğraştım. Hem de o kadar saçma bir nedenle ki anlatamam. Rx-Tx için ttyAMA0 iptal edilmesi gerekiyor, anlatılanları yapıyorum hala Serial0 ile ilişkilendirilmiş gözüküyor. Konsoldan GPS verisi alıyorum ama python'dan alamıyorum. Sonra birden ne oldu ise almaya başladım. Gelin görün ki ttyAMA0 iptal olmuş ki python veriye ulaşabiliyor ancak kontrol ettiğinizde hala Serial0 ile bağlantısı var.
      Linux yetmezmiş gibi bir de python ile uğraşıyoruz yani. Neredeyse sıfırlayıp, raspian haline dönüp, herşeyi baştan yapacaktım.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Ne güzel çalışıyordu bir öncekinde. Sanırım, bir şekilde eski versiyonu da kurup deneyeceğim. Böyle olmuyor. Karman çorman, hepsi bir birine girmiş. Yardım bakıyorsun, her kafadan bir ses çıkıyor. Güncelleme bilgileri geç geliyor, vs vs vs. İnatçı olmasam, camdan atmıştım Pi'yi; yani, bir şeyler de çıkar ama bu kadar uğraştırmaması gerekir.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Programlama bilgim olmasa neyse, olup da dokümanlar arasında böyle hırpalanmak çok kötü. Hangi versiyon onu da anlamadım. 2.7, 3.4+ yazıyor ama anlamadım. Şu an çalışıyor, ne güzel string dönüyordu UART'tan şimdi Byte dönüyor (tüm örneklerde de metin dönüşe göre verilmiş). Ne gerek var ki? Belki de bir şeyler yanlış da uğraşamayacağım şu an. Sonuçta veriyi alıyorum bir şekilde...

    • lterlemez :) :\ :( @lterlemez

      @rdr; Uğraşım ya hobi yarı araştırma amaçlı, o yüzden sabır ediyorum zaten 🙂

    • lterlemez :) :\ :( @lterlemez

      @rdr; Bunların hepsini biliyorum zaten; python'un bunları otomatik yapmıyor olmasını eksik görüyorum ben açıkçası; tabi ki profesyoneli değilim işin ama faydalı bir şeyler üretecek kadar da biliyorum ya da öğrenebiliyorum. Evet, bu hali belki daha iyi ama modüler bir dilde, temel dillerde olan bir şeyin olmaması garibime gidiyor. Mesela Java'da Javascrip'te de benzer sıkıntılar var, var ... diye bildirim yapıp geçiyorsun ve sonra numerik veya alfanumerik olduğunu garantilemen gerekiyor.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Pardon, Java da kesin tanımlama var.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Ama bu da son kullanıcıyı uğraştırıyor işte. Çalışırlığı ispatlanmış bir tekniğin terk edilmesi çok garip....

    • lterlemez :) :\ :( @lterlemez

      @rdr; Serial'dan bu şekilde geliyor gps verisi;

      b'\x19A\x1d11\xb1\xcd\xe5\xd1\xdd\xb9\xd9\xc5\xd9\xd1\xe1\xb19\xb1\xc1\xcd\xc1\xc9\xe5\xb9\xe1\xcd\xe5\xdd\xe5\xb1\x15\xb1\xc5\xe1\xc5\xdd\xd1\xcd\xb9\xc1\xc1\xb1\x05\xb1\x05\xa9\xd9\xc55)\xff$GPRMC,181744.00,A,3947.61598,N,03029.84017,E,1.063,,200720,,,A*74\r\n'
      b'$GPVTG,,T,,M,1.063,N,1.969,K,A*20\r\n'
      b'$GPGGA,181744.00,3947.61598,N,03029.84017,E,1,06,1.51,812.5,M,38.0,M,,*5D\r\n'

      şu baştakiler ne olabilir, fikrin var mı? Daha önce böyle şeyler yapmıyordu bu cihaz?

    • lterlemez :) :\ :( @lterlemez

      @rdr; Dönüştürmüyor zaten sıkıntı orada?

    • lterlemez :) :\ :( @lterlemez

      @rdr; Normalde, b'$GPRMC,181744.00,A,3947.61598,N,03029.84017,E,1.063,,200720,,,A*74\r\n'
      b'$GPVTG,,T,,M,1.063,N,1.969,K,A*20\r\n' başlaması lazım ama baştaki garip ifadeler çıkıyor...

    • lterlemez :) :\ :( @lterlemez

      @rdr; Aynen öyle yapıyorum zaten; ancak, gps'den gelen veri, 2.7'de doğrudan metin geliyordu ve b'\x19A\x1d11\xb1\xcd\xe5\xd1\xdd\xb9\xd9\xc5\xd9\xd1\xe1\xb19\xb1\xc1\xcd\xc1\xc9\xe5\xb9\xe1\xcd\xe5\xdd\xe5\xb1\x15\xb1\xc5\xe1\xc5\xdd\xd1\xcd\xb9\xc1\xc1\xb1\x05\xb1\x05\xa9\xd9\xc55)\xff şeklinde sonuçlar üretmiyordu.

    • lterlemez :) :\ :( @lterlemez

      @rdr; pynmea2'den yararlanıyorum:

      import serial
      import pynmea2

      port = "/dev/ttyAMA0"
      serialPort = serial.Serial(port, baudrate = 9600, timeout = 0.5)

      while True:
      str = serialPort.readline()
      msg = pynmea2.parse(str)
      if msgKöşeParantez0:6KöşeParantez=="&GPGGA":
      print(msg.latitude,msg.longitude)

      şeklinde, şimdi açmaya üşendim cihazı, yarın tam kodu koyarım.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Bunlara bakmıştım ama bir daha bakayım. Belki bir şey kaçırmışımdır?

    • lterlemez :) :\ :( @lterlemez

      @rdr; Konsoldan böyle, garip değerler ve/veya byte değerler almıyorum. Herşey olması gerektiği gibi çıkıyor.

    • lterlemez :) :\ :( @lterlemez

      @rdr; En bu şekilde hallettim gibi, arada başka bir hata türü çıkar ise onları da eklerim artık. Bakalım, hoşuna gidecek mi? Tabi ki bir düzen gelecek, daha csv olarak yazılması var verinin. Onu da halledince, bu sefer belleğin imajını alıp, boot otomasyonuna geçeceğim. Daha sonra da 3B bir kasa tasarlamaya çalışacağım.

      import sys
      sys.path.append("/home/pi/Downloads/SSD1360-python")
      sys.getdefaultencoding()

      import serial
      import time
      import pytz,datetime
      import spidev as SPI
      from PIL import Image, ImageDraw, ImageFont
      import SSD1306
      import Adafruit_DHT
      import pynmea2

      #OLED Ekran Ayarları
      RST=19
      DC=16
      bus=0
      device=0
      disp=SSD1306.SSD1306(RST,DC, SPI.SpiDev(bus,device))

      disp.begin()
      disp.clear()
      disp.display()
      image=Image.new('1',(disp.width,disp.height))

      draw=ImageDraw.Draw(image)
      padding=1
      top=padding
      #x=padding
      x=0
      font_path_date = "/home/pi/Downloads/SSD1360-python/Montserrat-Medium.ttf"
      font_date = ImageFont.truetype(font_path_date, 14)
      font_path_stats = "/home/pi/Downloads/SSD1360-python/Montserrat-Medium.ttf"
      font_stats = ImageFont.truetype(font_path_stats, 11)

      disp.image(image)
      disp.display()

      #Zaman Ayarları
      tz=pytz.timezone("Asia/Istanbul")

      #GPS Ayarları
      port="/dev/ttyAMA0"
      ser=serial.Serial(port, baudrate=9600, timeout=.5)

      while True:
      try:
      curr_time = datetime.datetime.now(tz=tz)
      hum, temp =Adafruit_DHT.read_retry(22,4)
      newdata=ser.readline()
      #print(newdata)
      #print(newdata.encode('ascii', 'ignore'))
      newdata=newdata.decode() #.replace("\r\n", "\n")

      if newdata[0:6] == "$GPGGA":
      newmsg=pynmea2.parse(newdata)
      lat=round(newmsg.latitude,5)
      lng=round(newmsg.longitude,5)
      alt=round(newmsg.altitude,5)
      num_sat=newmsg.num_sats
      gps = "Lat: " + str(lat) + " Long: " + str(lng) + " Alt:" +str(alt)+ " Sat_Num: " +str(num_sat)
      print(gps,hum,temp)
      if hum is not None and temp is not None:
      draw.rectangle((0,0,disp.width,disp.height),outline=0,fill=0)
      draw.text((x,top),curr_time.strftime("%d/%m/%y")+" "+curr_time.strftime("%H:%M:%S"),font=font_date,fill=255)
      draw.text((x,top+12),"HU",font=font_stats,fill=255)
      draw.text((x+24,top+12),": "+str(round(hum,2))+"% TE: "+ str(round(temp,2))+"C",font=font_stats,fill=255)
      draw.text((x,top+22),"LAT",font=font_stats,fill=255)
      draw.text((x+24,top+22),": "+str(lat),font=font_stats,fill=255)
      draw.text((x,top+32),"L0N",font=font_stats,fill=255)
      draw.text((x+24,top+32),": "+str(lng),font=font_stats,fill=255)
      draw.text((x,top+42),"ALT",font=font_stats,fill=255)
      draw.text((x+24,top+42),": "+str(alt),font=font_stats,fill=255)
      draw.text((x,top+52),"SAT",font=font_stats,fill=255)
      draw.text((x+24,top+52),": "+str(num_sat),font=font_stats,fill=255)
      disp.image(image)
      disp.display()
      #time.sleep(1)
      except UnicodeDecodeError:
      draw.rectangle((0,0,disp.width,disp.height),outline=0,fill=0)
      draw.text((x,top),"İŞLEM HATASI",font=font_date,fill=255)
      print("HATA")
      pass

    • lterlemez :) :\ :( @lterlemez

      @rdr; try bloku ile hataları görmezden gelerek hal ettim gibi. Hatalı/işlenemeyen/nasıl işlenebileceğini bilmediğim-araştırmadığım okuma durumunda try'ın except UnicodeDecodeError: adımını kullanarak ilk okuma işlemine yeniden dönmesini sağladım. Aslında, temel dillerden hata işleme konusundan haberdardım ama python'da uğraşmak istemiyordum ancak mecbur kaldım. En azından veri elde edeyim diye, ortaya çıkabilecek diğer hata türlerini de except ekine ekler devam ederim dedim.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Sorun karakter seti değil zaten, bozulan sistemde doğrudan bu şekilde geliyordu veri (örnek serial okuma satırı):

      "$PLCJ,5F01,66FC,AA,9390,6373"

      yeni sistemde ise başlarda böyle gelmeye başladı;

      b'$PLCJ,5F01,66FC,AA,9390,6373'

      hadi, decode metodunu buldum, "tamam" en azından düzgün şekilde alabiliyorum diyemeden

      b'\x19A\x1d11\xb1\xcd\xe5\xd1\xdd\xb9\xd9\xc5\xd9\xd1\xe1\xb19\xb1\xc1\xcd\xc1\xc9\xe5\xb9\xe1\xcd\xe5\xdd\xe5\xb1\x15\xb1\xc5\xe1\xc5\xdd\xd1\xcd\xb9\xc1\xc1\xb1\x05\xb1\x05\xa9\xd9\xc55)\xff'

      şeklinde de veri gelmeye başladı. "Ne oldu şimdi?" dedim. Headless çalışacağım desem sorun değil, bağlantı ile hemen müdahale edebilirim sonuçta ama powerbank'a bağlayacağım ve mobil olarak standalone çalışacak. Yanımda pc olmayabilir, olabilir pili bitik olabilir falan filan. Üstelik veri dosyası olarak da saklayacak.

    • lterlemez :) :\ :( @lterlemez

      @rdr; OLED ekran da sadece çalıştığını anlayabilmem için yoksa o da olmayacak. Sadece bir iki bilgiyi gösteriyor.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Bozulan raspian'da sıkıntı yoktu bunda oldu nedense. Ya bir şeyleri beceremedim ya da raspian'da çalışıyor ama Pi OS'ta bir şeyler değiştiği için faklı şekilde iletiyor veriyi UART. Neyse, sonuçta bir şekilde hatalarda takılmadan (işlemler durmadan devam ediyor en azından) doğru şekilde veri alabiliyorum. Tabi, hatada pas geçtiği için göreceli daha düzensin zaman aralıklarında veri alıyorum ama olsun. Sonuçta, kullanabileceğim veriye ulaşabiliyorum. Daha sonra, nedenini araştırırım. Şunu kullanıyorum: https://www.robotistan.com/gy-neo6mv2-gps-modulu-ucus-kontrol-sistem-gpsi

    • lterlemez :) :\ :( @lterlemez

      @rdr; Şu an ki en son çıktı hali bu şekilde:

      Dosya mevcut, kullanılacak!
      2020-07-21 21:37:23.391322+03:00
      HATA
      Lat: 39.79372 Long: 30.49724 Alt:801.6 Sat_Num: 08 99.9 20.0 21/07/20 21:37:24
      Lat: 39.79372 Long: 30.49725 Alt:801.7 Sat_Num: 07 99.9 20.0 21/07/20 21:37:32
      Lat: 39.79372 Long: 30.49725 Alt:801.7 Sat_Num: 08 99.9 19.9 21/07/20 21:37:41
      Lat: 39.79372 Long: 30.49725 Alt:801.7 Sat_Num: 08 99.9 19.9 21/07/20 21:37:51
      Lat: 39.79372 Long: 30.49725 Alt:801.8 Sat_Num: 08 99.9 19.9 21/07/20 21:38:09

      CSV dosyasına da yazıyor artık. Önce yazılacak dosya var mı bakıyor. Varsa, yukarıdaki cevap veriyor ve dosyaya append yapıp, try-except karar yapısından hata alıyor ise "HATA" sonucu üretip tekrar While'ın başına dönüyor UART'tan istenen şekilde veri gelirse de alttaki gibi GPS ve DHT22 verisi derliyor ve append yaptığı csv dosyasının sonuna ekliyor.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Dosya yok ise "Dosya mevcut değil, yaratıldı!" diyor, dosyayı yaratıyor ve ona yazıyor değerleri...

    • lterlemez :) :\ :( @lterlemez

      @rdr; Neyse, bugünlük başını bu kadar ağrıttığım yeter, teşekkür ederim yardımların için.

    • lterlemez :) :\ :( @lterlemez

      @rdr; Söylemeyi unuttum, asıl dert DHT22'de sıcaklık okumaları accurate ama nemin kalibre edilmesi lazım ve çok meşakkatli bir iş, nasıl yapacağımı bilemiyorum. Talimatlar var ama ne o kadar zamanım var ne de teçhizatım.

İlkay Zaman olayı hakkında ne düşünüyorsunuz?
Yalan diyorlar, gerçek diyorlar, ölsün diyorlar.
#konudışı #İlkay #zaman

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 5 / 10

Zaman nedir? Nasıl ölçülür? ÖDEV : 60'lık sayı sistemi bize kimin hediyesidir...:=)))
Düşündün mü bakim Araştır. #akış #zaman

Zamanın Kısa Tarifi

Pancar Tarlası Sunar. Videolarımızın devamı için kanalımıza Abone olmayı unutmayınız. Müzik: Digital_Solitude - Youtube müzik arşivinde mevcuttur. :) ZAMANIN KISA TARİFİ Zamanın...
BeğenFavori PaylaşYorum yap