Diễn Đàn Điện Tử Ứng Dụng

Forum trao đổi chia sẽ giải quyết các vấn đề liên quan đến mạch điện tử


    CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Share

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 04/12/16, 09:35 pm


    Tải Thư viện tại đây:
    Đăng nhập để Tải

    đây là thư viện chỉnh sửa từ các file Demo ETHERNET do ST cung cấp ( tcp_echo_client )

    cách sử dụng :

    =>add vào các dự án của các bạn hoặc demo WEBSERVER do tôi cung cấp trên diễn đàn này.
    cách làm như sau:

    + add các file *c và include các file *h và chỉ đường dẫn tới thư mục chứa file *.h để keilc tìm ra.

    + thêm các hàm xử lí dữ liệu gửi và nhận vào chương trình chính (cho vào webserver.c hoặc main.c ):


    uint16_t LIB_ETHERNETCLIENT_CreateHeadersCallback(LIB_TCPCLIENT_t* connection, char* buffer, uint16_t buffer_length) {
    /* Create request headers */
    sprintf(buffer,"GET /channels/103193/fields/1/last HTTP/1.1\r\n");
    strcat(buffer, "Host: api.thingspeak.com\r\n");
    strcat(buffer, "Connection: close\r\n");
    strcat(buffer, "\r\n");
    /* We have available data for connection to receive */
    //USART_Puts(USART6,"DATA Receiveing from api.thingspeak.com\n");
    /* Return number of bytes in buffer */
    return strlen(buffer);
    }

    void LIB_ETHERNETCLIENT_ReceiveDataCallback(LIB_TCPCLIENT_t* connection, uint8_t* buffer, uint16_t buffer_length, uint16_t total_length) {
    uint16_t i = 0;

    /* Go through entire buffer, remove response headers */
    if (connection->headers_done == 0) {
    for (i = 0; i < buffer_length; i++) {
    if (
    buffer[i] == '\r' &&
    buffer[i + 1] == '\n' &&
    buffer[i + 2] == '\r' &&
    buffer[i + 3] == '\n'
    ) {
    /* Headers done */
    connection->headers_done = 1;
    /* Increase i */
    i += 3;
    /* Break */
    break;
    }
    }
    }
    /* Print data */
    for (; i < buffer_length; i++) {
    /* Print response */

    USART_Putc(USART6, buffer[i]);
    //a[m++]=buffer[i]; //gan vao mang de lay DATA
    }

    }
    void LIB_ETHERNETCLIENT_ConnectionStartedCallback(LIB_TCPCLIENT_t* connection) {
    /* Print to user */
    //printf("Connection %s has started\n", connection->name);
    }
    void LIB_ETHERNETCLIENT_ConnectedCallback(LIB_TCPCLIENT_t* connection) {
    /* We are connected */
    //printf("We are connected to %s\n", connection->name);
    }
    void LIB_ETHERNETCLIENT_ConnectionClosedCallback(LIB_TCPCLIENT_t* connection, uint8_t success) {
    /* We are disconnected, done with connection */
    if (success) {
    //printf("Connection %s was successfully closed. Number of active connections: %d\n", connection->name, *connection->active_connections_count);
    } else {
    //printf("Connection %s was closed because of error. Number of active connections: %d\n", connection->name, *connection->active_connections_count);
    }
    //n++;if(n>5) n=1;
    /* Increase number of requests */
    requests_count++;

    }


    + cuối cùng chạy hàm :

                   MyDNS.ip[0] = 184;//IP server thingspeak.com
    MyDNS.ip[1] = 106;
    MyDNS.ip[2] = 153;
    MyDNS.ip[3] = 149;

    tcp_echoclient_connect("api.thingspeak.com", MyDNS.ip[0], MyDNS.ip[1], MyDNS.ip[2], MyDNS.ip[3], 80, &requests_count);

    (***) lưu ý là thingspeak chỉ cho ghi data cách nhau 15s và đọc mỗi data về rất nhanh tùy theo tốc độ mạng và xử lý của MCU nhưng để ổn định nên cho nhận dữ liệu cách nhau 3s.

    thắc mắc hãy đăng bài tôi sẽ trả lời sớm nhất có thể, xin cảm ơn!

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 25/03/17, 04:08 am

    1/ a ơi.file websever demo của e nó không có mục WEBSEVER có bị gì không a . e tải thư viện client của a về add vào rồi(add ok không báo lỗi ).e tạo 1 mục WEBSEVER rồi add thư viện vào ( các thư viện như websever.c .v.v ) thì nó báo lỗi ( e add 9 mục .c giống a thì nó báo tới 240 cái lỗi , e đã chỉ thư mục tới nơi chưa file .h) . a có thể gữi cho em file thư viện WEBSEVER đc không ạ .tại vì e thấy thiếu file websever.c . mà add vào thì nó lại báo lỗi .  Mad  Mad
    2/  Với lại cho em hỏi , không biết vì sao mà 2 hàm _HttpWebserverSetupEthernetApplicationSetup();
          _HttpWebserverSetupEthernetLinkSetup();
    em đặt ở main.c  mà nó báo lỗi .
    .\STM324xG_EVAL\STM324xG_EVAL.axf: Error: L6218E: Undefined symbol enable_HttpWebserverSetupEthernetApplicationSetup (referred from main.o).
    3/ cho em hỏi 2 dòng lệnh này
    sprintf(buffer,"GET /update?key=XPTI1PFQG51FYMC2&field1=100 HTTP/1.1\r\n");
    tcp_echoclient_connect("api.thingspeak.com", MyDNS.ip[0], MyDNS.ip[1], MyDNS.ip[2], MyDNS.ip[3], 80, &requests_count);
    nó có nghĩa là truy cập thẳng vào địa chỉ " thingspeak.com/update?key=XPTI1PFQG51FYMC2&field1=100  " luôn phải không a.
    Mail của e : gsnvbu@gmail.com . e cám ơn  ạ.

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 25/03/17, 04:01 pm

    bukute122 đã viết:1/ a ơi.file websever demo của e nó không có mục WEBSEVER có bị gì không a . e tải thư viện client của a về add vào rồi(add ok không báo lỗi ).e tạo 1 mục WEBSEVER rồi add thư viện vào ( các thư viện như websever.c .v.v ) thì nó báo lỗi ( e add 9 mục .c giống a thì nó báo tới 240 cái lỗi , e đã chỉ thư mục tới nơi chưa file .h) . a có thể gữi cho em file thư viện WEBSEVER đc không ạ .tại vì e thấy thiếu file websever.c . mà add vào thì nó lại báo lỗi .  Mad  Mad
    2/  Với lại cho em hỏi , không biết vì sao mà 2 hàm _HttpWebserverSetupEthernetApplicationSetup();
          _HttpWebserverSetupEthernetLinkSetup();
    em đặt ở main.c  mà nó báo lỗi .
    .\STM324xG_EVAL\STM324xG_EVAL.axf: Error: L6218E: Undefined symbol enable_HttpWebserverSetupEthernetApplicationSetup (referred from main.o).
    3/ cho em hỏi 2 dòng lệnh này
    sprintf(buffer,"GET /update?key=XPTI1PFQG51FYMC2&field1=100 HTTP/1.1\r\n");
    tcp_echoclient_connect("api.thingspeak.com", MyDNS.ip[0], MyDNS.ip[1], MyDNS.ip[2], MyDNS.ip[3], 80, &requests_count);
    nó có nghĩa là truy cập thẳng vào địa chỉ " thingspeak.com/update?key=XPTI1PFQG51FYMC2&field1=100  " luôn phải không a.
    Mail của e : gsnvbu@gmail.com . e cám ơn  ạ.

    WEBSEVER không sử dụng nhé em   >>client.
    (bỏ các hàm server đi em>> em có thể ADD vào DEMO khác đâu nhất thiết là webserver).

    nó có nghĩa là truy cập thẳng vào địa chỉ " thingspeak.com/update?key=XPTI1PFQG51FYMC2&field1=100  " luôn phải không a. chinh xác

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 27/03/17, 05:30 am

    mình có cần mở Port 80 cho ip của module không ạ Surprised Surprised
    với lại nếu e để cái hàm
    sprintf(buffer, "GET /update?key=XPTI1PFQG51FYMC2&field1=100 HTTP/1.1\r\n");
    tcp_echoclient_connect("api.thingspeak.com", MyDNS.ip[0], MyDNS.ip[1], MyDNS.ip[2], MyDNS.ip[3], 80, &requests_count);

    trong vòng while() của void(main) luôn mà ko có delay thì có vấn đề gì không ạ.

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 27/03/17, 09:28 am

    Port80 được sử dụng trong code rồi, đặt trong while thì có delay post đầu tiên có lưu ý rồi mà

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 27/03/17, 05:48 pm

    dạ e có đọc rồi a. e chỉ hỏi thêm cho biết ạ chứ lúc làm là phải có delay ạ . Surprised Surprised e đã làm được rồi ạ.cám ơn a đã hướng dẫn tận tình Laughing Laughing

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 28/03/17, 01:47 am

    anh ơi.cho em hỏi 1 xíu ạ.nếu mình muốn truyền tới localhost của mình để test thử . thì phải chọn MyDNS thế nào a nhỉ . e đang viết 1 trang web với PHP.dữ liệu được cập nhật theo phước thức GET. ( e chỉ đang test ở localhost ạ ). nhưng e cũng ko biết lấy cái MyDNS ở đâu cho stm32 nó kết nối nữa ạ Neutral Neutral . (localhost chỉ có cổng port thôi ạ Rolling Eyes Rolling Eyes )

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 29/03/17, 09:06 pm

    bukute122 đã viết:anh ơi.cho em hỏi 1 xíu ạ.nếu mình muốn truyền tới localhost của mình để test thử . thì phải chọn MyDNS thế nào a nhỉ . e đang viết 1 trang web với PHP.dữ liệu được cập nhật theo phước thức GET. ( e chỉ đang test ở localhost ạ ). nhưng e cũng ko biết lấy cái MyDNS ở đâu cho stm32 nó kết nối nữa ạ Neutral Neutral . (localhost chỉ có cổng port thôi ạ Rolling Eyes Rolling Eyes )

    bạn nên tập thói quen hỏi chuyên gia google các vấn đề trước khi hỏi ai đó:

    google: localhost ip...>>>>>>>>>127.0...........

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 26/04/17, 07:04 pm

    em đã làm được rồi. truyền- nhận dữ liệu lên websever. e đã tạo một website + 1 database. arm đọc dữ liệu bên ngoài . cứ 5p truyền lên web 1 lần và lưu vào database. còn lúc nhận về thì cứ 1s nhận 1 lần từ database của e . e chọn máy của e làm host luôn.  cám ơn a đã hướng dẫn trong thời gian quá Very Happy Very Happy Very Happy

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 26/04/17, 08:33 pm

    Sao bạn không thử luôn trên hosting nhỉ. Thẳng tiến thôi!

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 27/04/17, 02:20 am

    dạ đó là dự định của e luôn đó a . e sài XAMPP để làm 1 host ảo . và đã ok. pulic ra ngoài được luôn a. bây giờ e thuê 1 cái host và đẩy những trang web và database của e lên thì e nghỉ nó vẫn ok ạ Very Happy Very Happy tới đây e sẻ thử .e nghỉ là thành công Laughing Laughing Laughing

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 20/06/17, 07:31 pm

    anh ơi cho em hỏi . không biết vì sao mà MCU của e .nó chạy vài phút là bị reset một lần.không biết a làm ethernet có bị vấn đề đó không ạ.

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 20/06/17, 11:23 pm

    Chưa xác định lỗi này, mcu có thể bị treo

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 22/06/17, 03:16 pm

    dạ đúng ý rồi đó a. em kiểm tra thấy MCU bị treo.nó reset lại là tại vì em sử dụng hàm Watdog để reset mỗi lúc bị treo.còn vấn đề bị treo thì em cũng không biết tại sao ạ.khi thì nó chạy rất lâu.khi thì chạy vài phút là nó treo và tự động reset .

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 22/06/17, 05:16 pm

    Cần thêm delay cho mỗi kết nối

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 25/06/17, 02:25 am

    được rồi anh ơi.cám ơn anh.cái module của anh nó bị hở 1 chân.em hàn lại và ok rồi.thêm ít delay nữa thì rất mượt và khó bị reset.cám ơn anh.hehe Laughing Laughing Laughing

    Admin
    Admin

    Tổng số bài gửi : 56
    Điểm tích lũy : 113
    Đã được thích : 19
    Join date : 12/03/2015
    Age : 26
    Đến từ : Thanh Hóa - TP.HCM

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Admin on 25/06/17, 08:54 am

    Nếu hở chân thì chẳng tài nào kết nối được module dù chỉ 1s. Thân!

    bukute122

    Tổng số bài gửi : 23
    Điểm tích lũy : 23
    Đã được thích : 0
    Join date : 28/02/2017

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by bukute122 on 25/06/17, 10:24 pm

    trước thì ổn a. tại e tháo ra tháo vào hoài nên nó hở e không để ý.trước là chỉ có bị reset thôi a.sau này nó bị 1 lúc 2 cái dồn dập.hên là đã giải quyết được rồi Very Happy

    Sponsored content

    Re: CODE STM32F4 + DP83848 ethternet truyền nhận data tới Thingspeak

    Bài gửi by Sponsored content


      Hôm nay: 23/11/17, 10:26 am