This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3120:发送电子邮件

Guru**** 2539500 points
Other Parts Discussed in Thread: CC3120

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/691030/cc3120-send-an-email

器件型号:CC3120

您好!

我正在尝试与 CC3120发送电子邮件、我正在关注本实验:  

我能够让 IFTTT 正常工作、现在我正在尝试让 LAB20_wifi 项目 ping URL、以便 IFTTT 发送电子邮件。

我需要对"get_time_and_weather.c"进行哪些修改、以便对 URL 执行 ping 操作?

CC3120连接到 Wifi、我可以连接到主机: Weather_Server "maker.ifttt.com"//"api.openweathermap.org"并连接到 IT App_CB.weatherSockID = createConnectionforWeather();

但是、如果我发送 HTTP GET、我将不会收到任何电子邮件:

//将 HTTP GET 字符串发送到打开的 TCP/IP 套接字。
RetVal = sl_Send (App_CB.weatherSockID、App_CB.weatherSendBuff、
strlen ((const char *) App_CB.weatherSendBuff)、0);

有什么想法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michael、

    几个问题:

    • 您是否已检查 sl_send 的返回值?
    • 是否返回任何错误代码?
    • 在您发布的文档中、步骤12 (使用 Web 浏览器)是否适合您?
    • 此外,您是否修改了服务器并获取了步骤13中概述的请求变量?
    • 当您尝试运行程序时、是否有任何终端输出?  您可以分享吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的奥斯汀:

    这是我的 UART 输出:

    ****启动主循环**

    **使用硬编码配置文件进行连接。

    设备在站点模式下启动

    [WLAN 事件] STA 连接到 AP:Mika、BSSID:C8:e:14:60:A8:9d

    [NetApp 事件]获取的 IP:IP=192.168.178.104,Gateway=192.168.178.1

    器件已连接到 Mika

    设备 IP 地址为192.168.178.104

    主机已到达!t

    发送水通知

    我已修改此函数:

    静态 int32_t getWeather (void)
    
    {
    
    int32_t RetVal =-1;
    
    strcpy ((char *) App_CB.weatherHostName、Weather_Server);
    
    RetVal = getHostIPforWeather ();
    
    if (RetVal < 0)
    
    {
    
    UART_PRINT ("无法到达主机\n\r");
    
    ASSERT_ON_ERROR (RetVal);
    
    }
    
    UART_PRINT ("已到达主机!t\n\r\n);
    
    App_CB.ConnectionSockID = createforWeather ();
    
    ASSERT_ON_ERROR (App_CB.weatherSockID);
    
    //
    
    strcpy (((char *) App_bc.char) CityParams、(convestar) Democity.char *)
    
    RetVal = getForecastData();
    
    assert_on_error (RetVal);
    
    RetVal = sl_Close (App_CB.weatherSockID);
    
    assert_on_error (RetVal);*/
    
    return 0;
    
    } 

    现在我已经连接好了,我只想发送一篇帖子:

    静态 int32_t SendEmail (void)
    
    {
    
    uint8_t* p_BufLocation = NULL;
    
    int32_t RetVal =-1;
    
    UART_PRINT ("发送水通知\n"r);
    
    memset (App_CB.weatherRecvbuff、0、sizeof (App_weatherRecvbuff)));
    
    P_bufLocation = App_CB.weatherSendBuff;
    
    strcpy ((char *) p_bufLocation、prefix_buffer);
    
    //将 HTTP GET 字符串发送到打开的 TCP/IP 套接字。
    
    RetVal = sl_Send (App_CB.weatherSockID、App_CB.weatherSendBuff、
    
    strlen ((const char *) App_CB.weatherSendBuff)、0);
    
    assert_on_error (RetVal);
    
    return 0;
    
    } 

     

    第12步适用于我、我已尝试使用浏览器。

    我修改了以下内容:

    #define weather_Server "maker.ifttt.com"//"api.openweathermap.org"
    #define prefix_buffer "Get /trigger/trigger/with/key/xUEjchDyEHpXlKskyuqK-YYtG0ELTJS9IzRgx3RWV9 (获取)"

    但是、如何简单地修改项目以发送帖子?

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此 CC3220发送的内容没有错误、但我没有收到任何电子邮件。

    代码如下:

    静态 int32_t SendEmail (void)
    {
    /***** 获取主机 IP ******** /
    int32_t status =-1;
    
    strcpy ((char *) App_CB.emailHostName、email_Server);
    /*根据地址接收主机的 IP */
    状态= sl_NetAppDnsGetHostByName ((signed char *) App_CB.emailHostName、
    strlen(((const char*) App_CB.emailHostName),
    (unsigned long*)&App_CB.emailDestinationIP、
    SL_AF_iNet);
    ASSERT_ON_ERROR (STATUS);
    
    
    /***** 创建连接****** /
    SlSockAddrIn_t Addr;
    
    int16_t SD = 0;
    int16_t AddrSize = 0;
    int32_t RET_val = 0;
    
    Addr.Sin_Family = SL_AF_iNet;
    Addr.sin 端口= sl_Htons (80);
    
    /*将 DestinationIP endianity 更改为 big endian */
    Addr.sin addr.s_addr = sl_Htonl (App_CB.emailDestinationIP);
    
    AddrSize = sizeof (SlSockAddrIn_t);
    
    SD = sl_Socket (sl_AF_iNet、sl_sock_stream、0);
    if (SD < 0)
    {
    log_message ("创建套接字时出错\n\r\n\r\n");
    ASSERT_ON_ERROR (SD);
    }
    
    RET_val = sl_Connect (SD、(SlSockAddr_t *)&Addr、AddrSize);
    if (ret_val < 0)
    {
    /*错误*/
    log_message("连接到服务器时出错\n\r\n\r\n");
    ASSERT_ON_ERROR (RET_val);
    }
    
    APP_CB.emailSockID = SD;
    
    /***** 发送 GET 请求******** /
    
    uint8_t* p_BufLocation = NULL;
    int32_t RetVal =-1;
    log_message ("发送通知\n\r");
    memset (App_CB.emailRecvbuff、0、sizeof (App_CB.emailRecvbuff));
    
    P_bufLocation = App_CB.emailSendBuff;
    strcpy ((char *) p_BufLocation、post_text);
    
    
    
    // char acSendBuff[512];
    // strcpy (acSendBuff、post_text);
    // RetVal = sl_Send ((App_CB.emailSockID、acSendBuff、strlen (acSendBuff)、0);
    
    //将 HTTP GET 字符串发送到打开的 TCP/IP 套接字。
    RetVal = sl_Send (App_CB.emailSockID、App_CB.emailSendBuff、strlen ((const char *) App_CB.emailSendBuff)、0);
    ASSERT_ON_ERROR (RetVal);
    log_message ("消息发送方式:%i、现在接收\n\r\n、RetVal);
    
    /*接收响应*/
    RetVal = sl_Recv (App_CB.emailSockID、App_CB.emailRecvbuff、1000、0);
    ASSERT_ON_ERROR (RetVal);
    
    log_message ("请求已完成!!\n\n");
    
    int i=0;
    对于(i=0;i<1000;i++)
    {
    log_message ("%i"、App_CB.emailRecvbuy[i]);
    }
    
    
    返回0;
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    要在 MSP432和 CC3120上工作、请点击此处: e2e.ti.com/.../2548887