folder Tahribat.com Forumları
linefolder Elektronik / Embedded / Mobil Cihazlar
linefolder Arduino İle ESP8266 İçin Derleme Yapamıyorum



Arduino İle ESP8266 İçin Derleme Yapamıyorum

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    antivir-US
    antivir-US's avatar
    Kayıt Tarihi: 04/Ocak/2006
    Erkek

    Slm gençler;

    geçenlerde 3W lık amatör bir lazer engraver satın aldım. Cihaz iyidir hoştur ama aleti daha hoş yapacak bir özelliği daha var. Cihazı ESP8266 wifi modülü monte ederek kablosuz olarak da çalıştırabiliyorsunuz. Kablo ile derdin nedir diyenler için anlatayım; alet sonuçta ahşap yakıyor ve evin içine bir süre sonra duman ve yanık ahşap kokusu çörekleniyor, bir fotoğrafı ahşaba yüksek çözünürlüklü basmak yarım günden fazla sürdüğü oluyor. Bu nedenle aleti gerektiğinde cam balkona çıkarayım, orda kendi başına takılsın, ben de odamda PC kullanmaya devam edebileyim.

    Derleme konusuna dönecek olursak arduino kaynak kod ve kütüphaneler şurada;

    https://github.com/arkypita/ESP8266-SerialWebSocket

    Bu sayfada hangi kütüphanelerin indirilmesi gerektiği, yapılacaklar sırasıyla anlatılmış, tek tek link verirsem daha da kafa karıştırır.

    1- Derleme esnasında nerede hata yapıyor olabilirim? arduino ide versiyon 1.8.8

    2- Derlenecek olan bu koda müdahale etmem gerekiyor mu, yani SSID, password, çip konfigürasyonları vb. bilgileri bunların içine derleme öncesi mi girmeliyim yoksa derleyip cihaza yükledikten sonra cihaza bağlanıp mı girmeliyim anlamadım.

    Aldığım derleme hatası ise şöyledir;

     

    Arduino:1.8.8 (Windows 10), Kart:"Generic ESP8266 Module, 80 MHz, Flash, Enabled, none, 26 MHz, 40MHz, DOUT, 4M (1M SPIFFS), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"
    
    websocketserver:33:14: error: 'void SerialTerminal::setup()' cannot be overloaded
    
             void setup() {
    
                  ^
    
    websocketserver:162:6: error: with 'void SerialTerminal::setup()'
    
     void setup()
    
          ^
    
    websocketserver:39:14: error: 'void SerialTerminal::loop()' cannot be overloaded
    
             void loop() {
    
                  ^
    
    websocketserver:180:6: error: with 'void SerialTerminal::loop()'
    
     void loop()
    
          ^
    
    C:\Users\EST\Desktop\ESP8266-SerialWebSocket-master\websocketserver\websocketserver.ino: In function 'void webSocketEvent(uint8_t, WStype_t, uint8_t*, size_t)':
    
    websocketserver:124:77: error: 'SendFormat' was not declared in this scope
    
                     SendFormat(num, "Connected to:    %s\n", WiFi.SSID().c_str());
    
                                                                                 ^
    
    websocketserver:136:67: error: 'SendFormat' was not declared in this scope
    
         SendFormat(num,"CPU Freq:        %uMHz\n", ESP.getCpuFreqMHz());
    
                                                                       ^
    
    websocketserver:145:61: error: invalid conversion from 'const char*' to 'const uint8_t* {aka const unsigned char*}' [-fpermissive]
    
                  Serial.write((const char *) (payload), (lenght));
    
                                                                 ^
    
    In file included from C:\Users\EST\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta1\cores\esp8266/Arduino.h:263:0,
    
                     from C:\Users\EST\Desktop\ESP8266-SerialWebSocket-master\websocketserver\websocketserver.ino:3:
    
    C:\Users\EST\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta1\cores\esp8266/HardwareSerial.h:168:12: error:   initializing argument 1 of 'virtual size_t HardwareSerial::write(const uint8_t*, size_t)' [-fpermissive]
    
         size_t write(const uint8_t *buffer, size_t size)
    
                ^
    
    exit status 1
    'void SerialTerminal::setup()' cannot be overloaded
    
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.
    

     

    Merak edenler için satın aldığım cihaz şudur;

    https://goo.gl/b2Viwa

    Az sonra işe gideceğim, cepten cevap yazabilirim ama PC evde kalacağı için derleyip denemem geceyi bulacaktır, o nedenle kimse darılmasın :D

    Ayrıca bu cihaz ile ilgili iş tekliflerine açığım, sevgililer gününe de az kaldı, beraber güzel hediyelikler tasarlayıp satabiliriz :D


    Camınızı kırar, duvarınıza işer, bisikletinize biner, tekerini keser, arabanızı çizer, zilinize basar kaçarım. Kısacası ben annenizin sokağa çıkarken uzak dur dediği çocuklardan biriyim.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    antivir-US
    antivir-US's avatar
    Kayıt Tarihi: 04/Ocak/2006
    Erkek

    Bari bi selam verip çıkın da up olsun :D


    Camınızı kırar, duvarınıza işer, bisikletinize biner, tekerini keser, arabanızı çizer, zilinize basar kaçarım. Kısacası ben annenizin sokağa çıkarken uzak dur dediği çocuklardan biriyim.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    Bissürü hata vermiş.. 

    Başka bir ide dene..

    Adamın notları vardır..


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    antivir-US
    antivir-US's avatar
    Kayıt Tarihi: 04/Ocak/2006
    Erkek

    Muhtemelen ben bir şeyleri eksik giriyorum veya yazarken syntax hatası yapıyor olabilirim. Arduino bilgim zayıf olduğundan çözemedim bir türlü. Arduino iyi bilen birinin belki de 5dk sını almaz ama beni ugrastiriyor işte.

    Ayrıca farklı ide versiyonları ile denedim yine olmadi

    antivir-US tarafından 21/Oca/19 21:44 tarihinde düzenlenmiştir

    Camınızı kırar, duvarınıza işer, bisikletinize biner, tekerini keser, arabanızı çizer, zilinize basar kaçarım. Kısacası ben annenizin sokağa çıkarken uzak dur dediği çocuklardan biriyim.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Zork.
    torpedo_XL
    torpedo_XL's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Hocam bi ara arduino ide de bir bug vardı aynı bu senin hataları veriyordu. Tavsiyem beta veya hourly buildleri bir dene bakalım aynı hataları verecek mi?

    https://www.arduino.cc/download_handler.php?f=/ide_beta/arduino-1.9.0-beta-windows.zip

    https://www.arduino.cc/download.php?f=/arduino-nightly-windows.zip

    Bu arada  o engraverı ülkeye sokarken vergi ödedin mi nasıl oldu?

    Edit: Benden önce yazmışsın denediğini sayfayı yenilememişim :). Bir ihtimal eğer elinde uno dışında farklı bir uart-usb çevirici birşey varsa onun üzerinden atmayı dene.

    torpedo_XL tarafından 21/Oca/19 21:56 tarihinde düzenlenmiştir

    Bilge insanlar konuşurlar çünkü söyleyecek bir şeyleri vardır. Aptal insanlar konuşurlar çünkü bir şey söylemek zorundadırlar. Demokrasi, bir eğitim işidir. Eğitimsiz kitlelerle demokrasiye geçilirse oligarşi olur. Devam edilirse demagoglar türer. Demagoglardan da diktatörler çıkar. --Platon, Devlet                                                                                                                                                                                                                                                                                                                                                                                         
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yucel
    Yucel's avatar
    Kayıt Tarihi: 16/Haziran/2006
    Erkek

    Selamlar,

    Benzer bir cihazı topladım ben de aktif olarak kullanıyorum. Benbox arayüzü üzerinden kazıma,kesme, işleme gibi işlemler yaptırabiliyorum. 3W'lık bir lazer üreteç çoğu konuda iş görevilir özellikle deri, mukavva, keçe gibi malzemelerde etkisini görürsün. Fakat Plexi,Metal gibi malzemelerde sonuç hüsran :)

    Kod kısmına gelirsek, Wi-fi bilgilerini kod içerisinde belirtilen ssid, wifi password gibi kısımları derlemeden önce girmelisin. Derledikten sonra oluşturduğu kodu arduino'ya yükleyeceksin. Bazı kütüphaneleri görmüyor gibi, özellikle SendFormat fonksiyonunu içeren kütüphane. Ayrıca IDE olarak da 1.5.x herhangi bir ide'yi kullanırsan iyi olur gibi, eski versiyonlar daha stabil çalışıyor gördüğüm kadarıyla.


    less than one, more than zero.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    Senin kodu da göndersen iyi bilenler inceler hiç olmazsa..

    Ben de böyel bir şey düşünüyorum inceden..


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    antivir-US
    antivir-US's avatar
    Kayıt Tarihi: 04/Ocak/2006
    Erkek

    Arkadaşlar cevaplar için teşekkür ederim, eve geçince cevap yazacagim


    Camınızı kırar, duvarınıza işer, bisikletinize biner, tekerini keser, arabanızı çizer, zilinize basar kaçarım. Kısacası ben annenizin sokağa çıkarken uzak dur dediği çocuklardan biriyim.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Şunu dener misiniz? https://paste.ubuntu.com/p/PxR7Jv8CyM/

    // Credits: Based on LaserWeb codebase, https://github.com/LaserWeb/LaserWeb3-ESP8266
    
    #include <Arduino.h>
    #include <ESP8266WiFi.h>
    #include <WebSocketsServer.h>    //https://github.com/Links2004/arduinoWebSockets/issues/61
    #include <Hash.h>
    #include <DNSServer.h>
    #include <ESP8266WebServer.h>
    #include <ESP8266HTTPUpdateServer.h>
    #include <WiFiManager.h>         //https://github.com/tzapu/WiFiManager
    
    
    // Transparent Serial Bridge code from Marcus https://github.com/Links2004/arduinoWebSockets/issues/61
    
    ESP8266WebServer httpServer(80);
    ESP8266HTTPUpdateServer httpUpdater;
    const char* update_path = "/firmware";
    const char* update_username = "admin";
    const char* update_password = "admin";
    
    void SendFormat (uint8_t num, char * format, ...);
    WebSocketsServer webSocket = WebSocketsServer(81);
    
    
    WiFiManager wifiManager;
    int RESET_PIN = 0; // = GPIO0 on nodeMCU
    bool socketConnected = false;
    
    #define SEND_SERIAL_TIME (50)
    
    class SerialTerminal {
        public:
            void setup();
            void loop();
    
        protected:
            uint8_t _buffer[1460];
            uint8_t * _bufferWritePtr;
            unsigned long _lastRX;
    
            void resetBuffer() {
                // offset for adding Websocket header
                _bufferWritePtr = &_buffer[WEBSOCKETS_MAX_HEADER_SIZE];
                // addChar('T');
            }
    
            inline void addChar(char c) {
                *_bufferWritePtr = (uint8_t) c; // message type for Webinterface
                _bufferWritePtr++;
            }
    };
    void SerialTerminal::setup(){
                _lastRX = 0;
                resetBuffer();
                Serial.begin(115200);
    }
    void SerialTerminal::loop(){
                unsigned long t = millis();
                bool forceSend = false;
    
                size_t len = (_bufferWritePtr - &_buffer[0]);
                int free = (sizeof(_buffer) - len);
    
                int available = Serial.available();
                if(available > 0 && free > 0) {
                    int readBytes = available;
                    if(readBytes > free) {
                        readBytes = free;
                    }
                    readBytes = Serial.readBytes(_bufferWritePtr, readBytes);
                    _bufferWritePtr += readBytes;
                    _lastRX = t;
                }
    
                // check for data in buffer
                len = (_bufferWritePtr - &_buffer[0]);
                if(len >=  sizeof(_buffer)) {
                    forceSend = true;
                }
                if(len > (WEBSOCKETS_MAX_HEADER_SIZE + 1)) {
                    if(((t - _lastRX) > SEND_SERIAL_TIME) || forceSend) {
                        webSocket.broadcastTXT(&_buffer[0], (len - WEBSOCKETS_MAX_HEADER_SIZE), true);
                        resetBuffer();
                    }
                }
            }
    SerialTerminal term;
    
    void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght) 
    {
      if (type == WStype_DISCONNECTED)
      {
        socketConnected = false;
      }
      else if (type == WStype_CONNECTED)
      {
        socketConnected = true;
        webSocket.sendTXT(num, "Connected\n");
      }
      else if (type == WStype_TEXT)
      {
        if(lenght > 0)
        {
          String command = String((const char *)payload);
          command.toUpperCase();
                if (command == "WIFIRESET\n")
                {
                  webSocket.sendTXT(num, "ok\n");  
                    webSocket.sendTXT(num, "Resetting WiFi settings!\n");
                    delay(500);   
            wifiManager.resetSettings();
                    delay(100);
                    ESP.restart();
                }
                else if (command == "WIFISTATUS\n")
                {
            webSocket.sendTXT(num, "ok\n");  
                  
                  char buffer[100];      //declare array
                    IPAddress local = WiFi.localIP();
                    IPAddress gatew = WiFi.gatewayIP();
                  
                    SendFormat(num, "Connected to:    %s\n", WiFi.SSID().c_str());
            SendFormat(num, "Signal strength: %ddBm\n", WiFi.RSSI());
                    SendFormat(num, "Local IP:        %d.%d.%d.%d\n", local[0], local[1], local[2], local[3]);
                    SendFormat(num, "Gateway IP:      %d.%d.%d.%d\n", gatew[0], gatew[1], gatew[2], gatew[3]);
                }
                else if (command == "CHIPSTATUS\n")
                {
            webSocket.sendTXT(num, "ok\n"); 
            uint32_t realSize = ESP.getFlashChipRealSize();
            uint32_t ideSize = ESP.getFlashChipSize();
            FlashMode_t ideMode = ESP.getFlashChipMode();
    
            SendFormat(num,"CPU Freq:        %uMHz\n", ESP.getCpuFreqMHz());
            SendFormat(num,"Flash speed:     %uMHz\n", ESP.getFlashChipSpeed()/1000000);
            SendFormat(num,"Flash real size: %uKB\n", realSize/1024);
            SendFormat(num,"Flash ide  size: %uKB\n", ideSize/1024);
            SendFormat(num,"Flash ide  mode: %s\n", (ideMode == FM_QIO ? "QIO" : ideMode == FM_QOUT ? "QOUT" : ideMode == FM_DIO ? "DIO" : ideMode == FM_DOUT ? "DOUT" : "UNKNOWN"));
            SendFormat(num,"Flash ID:        %08X\n", ESP.getFlashChipId());
                }
                else
                {
                  Serial.write((payload), (lenght));
                }
        }
      }
    
    }
    
    void SendFormat (uint8_t num, char * format, ...)
    {
      char buffer[100];
      va_list args;
      va_start (args, format);
      vsnprintf (buffer, 100, format, args);
      va_end (args);
      webSocket.sendTXT(num, buffer); 
    }
    
    void setup()
    {
        delay(5000); //BOOT WAIT
        pinMode(RESET_PIN, INPUT_PULLUP);
        wifiManager.autoConnect("ESP8266");
    
        webSocket.begin();
        webSocket.onEvent(webSocketEvent);
    
        httpUpdater.setup(&httpServer, update_path, update_username, update_password);
        httpServer.begin();
    
        term.setup();
    
        WiFi.setSleepMode(WIFI_NONE_SLEEP); // disable WiFi sleep for more performance
    }
    
    
    void loop()
    {
        term.loop();
        webSocket.loop();
        httpServer.handleClient();
    }
    
    
    

     


    Olaylara karışmayın!
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    antivir-US
    antivir-US's avatar
    Kayıt Tarihi: 04/Ocak/2006
    Erkek

    torpedo_XL

    Yucel

    cevaplarınız için teşekkür ederim, nasıl oldu bilmiyorum ama kocaman bir kutu olarak gümrüğe takılmadan geldi makina. Nasıl olsa yakalanmıyor yakında çinden otomobil almayı bile deneyeceğim :D Ayrıca Benbox çok rezalet bir program, heryeri sorun sıkıntı ve lazerin PWM sini ayarlamadığı için lazer son güçte ahşabı yakıp geçiyor. Normalde cihaz benbox ile kullanılıyor ama ben lasergrbl yükledim ve rahat ettim, lasergrbl çok çok daha başarılı. Şimdi bir de wifi sorunu da çözüldü, ohh tadından yenmez artık :)

    YeniHarman

    hocam Allah senden razı olsun, tek seferde çat diye derledi ve yükledi makina hiçbir ayar girmeden. vallahi kaç gündür deli dana gibi PC etrafında dönüp duruyordum.

    Hocam bir anlatır mısın nasıl oldu bu iş? Şöyle yüzeysel göz attım bazı satırları değiştirmiş yeniden düzenlemişsin. Neye göre nasıl yaptın hocam?

    Ayrıca daha önce ESP8266 kullandın mı? bunu şunun için soruyorum; arduino da bazı ayarlar var. Elimdeki ESP nin özelliklerini hatırlamıyorum(zamanında ebaydan almıştım ve ebay alışveriş detaylarını 3 ay sonra sildiği için kartın özelliklerini unuttum(bellek vb.)). Biliyorsan bu konuda yardımcı olabilir misin, yükleme hangi seçeneklerde yapılmalı?

    elimdeki ESP8266 nın(25Q41BT flaşlı) yakından çektiğim fotoğrafı şu;


    Camınızı kırar, duvarınıza işer, bisikletinize biner, tekerini keser, arabanızı çizer, zilinize basar kaçarım. Kısacası ben annenizin sokağa çıkarken uzak dur dediği çocuklardan biriyim.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    NoktaliVirgul
    NoktaliVirgul's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    3W lazer ile paslanmaz çeliğe kazıma yapabilir miyiz? En az kaç W olması lazım?


    If my calculations are correct, when this baby hits eighty-eight miles per hour... you"re gonna see some serious shit.
Toplam Hit: 2723 Toplam Mesaj: 20
arduino arduino esp8266