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.

[参考译文] cc3100

Guru**** 2782445 points

Other Parts Discussed in Thread: CC3200, CC3100, ENERGIA

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/690988/cc3100

主题中讨论的其他器件:CC3200CC3100ENERGIA

我正在处理通过 cc3100booster 和 msp432p401r 发送电子邮件的相关代码。 我在模块中的 WiFi 连接中遇到问题。 我正在提供移动热点、它会定期连接和断开连接。 我需要连续连接。

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

    您不提供有关您的环境的信息。
    请帮我、以便我能为您提供帮助。
    过去、我让 CC3200工作了数周、没有任何问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sherry、

    请提供更详细的调试信息、例如用于断开连接的错误代码和原因代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    感谢您考虑我的问题。

    我正在研究 Energia。 我已经在 cc3200上运行了完整代码、它可以正常工作。 但相同的代码显示了 cc3100的连接问题。 不存在编译错误。 唯一的问题是 WiFi 连接在几秒钟内中断、然后再次连接并再次中断、这种情况持续存在。 Energia、i.e、file-example-wii-sendAnEmail 的内置代码正在使用中、需要进行修改。

    正如我在最初所说的、我使用 了 cc3200的完整代码、它运行得很好。 我需要有关 cc3100的帮助。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您需要有关该项目的任何其他信息、请告诉我。 基本上、我正在开发基于物联网的智能手套、该手套可从脉冲传感器和温度传感器捕获数据、并通过 Temboo 服务器将数据发送到我的电子邮件。 我不知道影响我进度的连接问题是由某些硬件问题或软件引起的。 我无法理解定期断开连接的确切原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    此论坛保持对 CC31xx/CC32xx 器件的支持、并通过 SDK 和 IDE (CCS、IAR)进行开发。 有关 Energia 的问题、请访问 Energia 论坛- forum.43oh.com/.../

    在 Energia 论坛提问是一种更好的方法、因为它允许联系 Energia 专家。

    1月

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

    您已提到 sendAnEmail 示例。
    您能否在不进行修改的情况下检查它在 CC3100上的工作原理?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我正在链接项目的完整代码。

    您需要在 temboo.com 上创建 Temboo 帐户、并在用"xxxxxxxxxxxx"表示的几个字段中填写所需的详细信息

     

    #define TEMBO_account "xxxxxxx"// Temboo 帐户名称
    #define TEMBO_APP_KEY_NAME "xxxxxxx"// Temboo 应用程序名称
    #define TEMBOO_APP_KEY "xxxxxxxxxxxxxxxxxx"// Temboo 应用程序密钥
    
    #define WIFI_SSID"xxxxxx"//热点名称
    #WIFI_PASSWORD "xxxxxxx"#def_C2000_SECURE_SECURIT_SECURIT_SECURE_#def_SECURIT_SECURE_#def_SECURITY_#def_SECURITY_#def_#def_SECURE_
    
    
    #include 
    #include 
    #include 
    #endif
    
    
    const String Gmail_user_name ="boolean xxxxxxx";//发件人的电子邮件
    
    const String Gmail_app_password ="xxxxxx";//发件人的应用密码
    
    const String TO_EMAIL_address ="xxxxxxx";//接收人
    
    尝试的电子邮件= false;
    
    #include 
    LiquidCrystal LCD (13、33、12、24、5、25、6、26、27、8、28);
    
    浮点温度;
    浮点电压;
    int sensorValue1;
    int sensorValue2;
    int 计数;
    WiFiClient 客户端;
    
    char 服务器[]="api.thingspeak.com";
    unsigned long lastConnectionTime = 0; //上次连接到服务器时,以毫秒为单位
    表示无符号长后置间隔= 10L * 1000L;//更新之间的延迟,以毫秒
    
    为单位的空校验连接()
    {
    int wifStatus = WL_IDLE_STATUS;
    
    //确定 WiFi 屏蔽是否存在。
    serial.print ("\n\nShield:");
    serial.println ("qqqqqqqqqqqqq");
    
    if (wif.status ()=wL_no_shield){
    serial.println ("xxxxx");
    
    serial.println ("失败");
    serial.println ("yyyyy");
    
    
    //如果没有 WiFi 屏蔽,请在此处停止。
    while (true);
    }
    Serial.println ("zzzzzzz");
    
    while (wifiStatus!= WL_Connected){
    serial.print ("WiFi:");
    wifiStatus = WiFi.begin(WIFI_SSID、wifi 密码);
    
    if (wifStatus = WL_Connected){
    serial.println ("确定");
    } 否则{
    serial.println ("失败");
    }
    delay(1000);
    }
    Serial.println("waiting for an IP address");
    
    while (WiFi.localIP ()=INADDR_NONE){
    //等待 IP 地址时打印点
    serial.print(".");
    delay (300);
    }
    
    Serial.println ("\nip Address obtained");
    //我们已连接并具有 IP 地址。
    //打印 WiFi 状态。
    printWifiStatus();
    }
    
    void serverprog()
    {
    while (client.available (){
    char c = client.read();
    serial.write (c);
    }
    if (millis ()- lastConnectionTime > postingInterval){
    HttpRequest();
    }
    
    
    
    
    void HttpRequest(){//
    在发送新请求之前关闭任何连接。
    //这将释放 WiFi shield
    client.stop()上的套接字;
    
    //如果连接成功:
    if (client.connect (server、80)){
    serial.println ("正在连接...");
    char msg[200];
    sprintf (msgg、"获取/更新?api_key=xxxxxxxxxxxxxxxxxxxx&field1=%f&field2="%d"、temp、count);//必须在 thingspeak.com 上进行帐户并创建频道,然后创建2个字段。 然后复制写入 API 密钥以代替 xxxxxxxxx
    //发送 HTTP PUT 请求:
    client.println (msgg);
    client.println ("主机:api.thingspeak.com");
    client.println ("用户代理:Energia/1.1");
    client.println ("连接:关闭");
    client.println();
    
    //注意建立连接的时间:
    lastConnectionTime =毫秒();
    }
    否则{
    //如果无法建立连接:
    serial.tltn ("连接失败");
    }
    
    
    
    void printWifiStatus (){
    //打印您所连接网络的 SSID:
    serial.print ("ssid:");serial.println
    (WiFi.ssid ());
    
    //打印 WiFi IP 地址:
    ipaddress = WiFi.localIP ();
    serial.print ("sspisn
    
    
    
    )("Serial Strength)
    (ssi)(ssi);
    / print (ssi)信号强度:"(ssi);(ssi (串行)(ssi));(ssi (ssi (ssi))))(打印)
    serial.println (" dBm");
    }
    
    
    void setup (){
    lcd.begin(16、2);
    
    Serial.begin(9600);
    serial.println ("正在处理..." ");
    
    
    
    }
    
    
    
    void loop(){
    int sensorValue1 = analogRead (A0);
    lcd.clear();
    lcd.setCursor(0,2);
    lcd.print ("等待..");
    // lcd.setCursor(0,0);
    lcd.print ("温度=");
    lcd.setCursor(14,0);
    lcd.print (temp);*/
    
    serial.println (sensorValue1);
    vol=sensorValue1*3.22;
    temp=vol/10;
    serial.println (volt);
    serial.println ("temp=");
    serial.println (temp);
    delay (10);
    
    int sensorValue2;
    unsigned long start=millis ();
    analogReadResolution (10);
    unsigned long CurrentValue;
    float x=0;
    int y;
    count=0;
    delay (3000);
    lcd.clear();
    
    lcd.setCursor(0,2);
    lcd.print("正在检测... ");
    执行
    {
    int sensorValue2 = analogRead (A1);
    if (sensorValue2 > x)
    
    {
    X=sensorValue2;
    Y=1;
    
    }
    否则、如果(sensorValue2 < x)
    
    {
    x=sensorValue2;
    if (y=1)
    {
    count++;
    y=0;
    }
    }
    
    CurrentValue=Millis ();
    }
    while (CurrentValue-start<=30000);
    count=(count*2)/10000;
    lcd.clear ();
    lcd.setCursor(0,0);
    lcd.print ("temperature =");
    lcd.setCursor(14,0);
    lcd.print (temp);
    lcd.setCursor(0,2);
    lcd.print ("脉冲计数=");
    lcd.setCursor(14,1);
    lcd.print (count);
    延迟(1000);
    
    
    serial.println (sensorValue2);
    serial.println ("pulse count="");
    serial.println (count);
    checkconnection();
    延迟(3000);
    
    如果(!尝试){
    
    serial.println ("正在运行 SendAnEmail...");
    
    TembooChoreo SendEmailChoreo (客户端);
    
    SendEmailChoreo.begin();
    
    SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT);
    SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
    SendEmailChoreo.setAppKey(TEMBOO_APP_KEY);
    SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail");
    
    SendEmailChoreo.addInput ("用户名"、Gmail_user_name);
    
    SendEmailChoreo.addInput ("密码"、Gmail_app_password);
    SendEmailChoreo.addInput ("ToAddress"、To_email_address);
    
    SendEmailChoreo.addInput ("主题"、"接收到电子邮件???");
    char msg[100];
    sprintf (msg、"身体温度=%f、脉冲计数=%d、temp、count);
    SendEmailChoreo.addInput ("MessageBody "、msg);
    
    无符号整型返回码= SendEmailChoreo.run();
    
    如果(返回码= 0){
    serial.println ("成功! 电子邮件已发送!");
    } 否则{
    while (SendEmailChoreo.available ()){
    char c = SendEmailChoreo.read();
    serial.print(c);
    }
    }
    SendEmailChoreo.close();
    
    }
    serverprog();
    lcd.clear();
    
    }
    
    
    

    如果您需要其他信息、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有获得将查询发布到 enegia 论坛的链接。 请帮我解决这个问题!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用此代码、由于提供了电子邮件处理代码正上方的检查连接代码、因此连接问题得以解决。 但是、现在我遇到了一个新问题、即尽管代码在循环中存在、但代码只运行一次。 第二次会有一些东西阻碍它的发展。 当我们按下重置时、它可以完美地工作一次、然后停止工作、直到再次重置它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经为您获得了一些有价值的东西、我认为:
    e2e.ti.com/.../576053

    以上链接确保了您应该在 Energia 论坛上寻求帮助。
    请将此帖子标记为已解决、并根据上面的链接发布您的问题。