#ifndef __CC3200R1M1RGC__ #include #endif #include #include "PubNub.h" #include #include #include #include #include "TembooAccount.h" #include #include #include #include #define APP_NAME "EDFT-2017_Mohamed RAHALI" #define RF430CL330H_BoosterPack_RESET_PIN 8 #define RF430CL330H_BoosterPack_IRQ_PIN 12 RF430 NFC (RF430CL330H_BoosterPack_RESET_PIN、RF430CL330H_BoosterPack_IRQ_PIN); //********* // // RFID/NFC 功能 /////********* // void RF430CL (void){ Serial.println ("初始化 I2C-"); Wire.begin(); Serial.println ("初始化 NFC Tag-"); nfc.begin(); Serial.println ("声明 URL 对象-"); NDEF_URI tirweb ("">freeboard.io/.../yMSkFJ"); serial.println ("声明 URL 的文本说明"); NDEF_TXT tidesc ("es"、"tf_2017 reizado por Mohamed RAHALi"); serial.println ("将 URL 对象写入 NFC 收发器-"); int ndef_size; //记录0 ndef、false = tiweb.sendTo(nfc;false = true //此消息应设置 MB,但不能设置 ME。 serial.println ("将文本对象写入 NFC 收发器"-); //记录1 ndef_size += tidesc.sendTo(nfc、false、true); //此消息应将 MB 保留为已清除状态,但将我设置为已清除状态。 serial.println ("激活 NFC 收发器"-); nfc.enable(); // serial.println ("打印串行端口的 URL -"); // tidweb.printURI (串行); //测试 NDEF_URI printURI ()功能 // Serial.println (); // Serial.printn (“将文本说明打印到串行端口”); // Serial.println (tidesc.getText ())); } //-------------------- 可变因素---------------------------- // double andrDouble( double min、double max、int numCasas){ long _min = min * pow (10、numCasas)+ 0.1; long _max = max * pow (10、numCasas)+ 0.1; return (double) random (_min、_max)/pow (10、numCasas); } Double Freq = RandomDouble (10.71、10.79、2)+1839755.00; double volte_1 = Randomble (0.82、0.88、2); double temperature = RandomDouble (18.30、20.00、2); double vol = 3.10 Double ( unsigned、3.29、2);long lastConnectionTime = 0; //上次连接到服务器时,以毫秒为单位 的布尔连接= false; //上次通过主循环 的连接状态 const unsigned long postingInterval = 0.001*1000; // ThingSpeak.com int failedCounter = 0; char buffer[25]; //buffer for float to string //网络设置 字符 SSID[]="TP-link_4B41C0"; //网络名称(SSID) 字符密码[]="L@F@mii@R@h@li/10"; //网络密码 int keyIndex = 0; //网络密钥索引号(仅用于 WEP) WiFiServer 服务器(80); WiFiClient client_1; WiFiClient *客户端; // WiFiClient 客户端; //--------------- floatToString 方法------------------------------------------------------- // 字符串 floatToString (float x、byte precision = 4){ char tmp[50]; dtostrf (x、0、precision、tmp); 返回字符串(Tmp); } //********* // PubNub Credencial & send 函数 //********* const static char pubkey[]="pub-c-f00e3441-95d8-4d27-a4fb-d03fb4def8ae"; const static char 子项[]="sub-c-9d695234-13ad-11e7-894d-0619f8945a4f";const static char char subsub []="sub-9d69d695234-13dsandome(+d)+jsunchar suntersene(=*2 ;dunchemdson.json.sw);d(*2;dunchemdunchemd(*2 dunchemdunchemdong2;dunchemdunchemdunt damendere*2;damdunchunche*2;damdunchunche*tursene 双温度= RandomDouble (18.30、20.00、2); double vol = Randomble (3.10、3.29、2); aJson.addStringToObject (sender、"name"、 "CC3100"); aJson.addItemToObject (msg、"发件人"、发件人); aJson.addNumberToObject (msg、 "SN"、SN); aJson.addNumberToObject (msg、"FreqTiva"、Freq); aJson.addNumberToObject (msg、"Voltiva"、voltive_1); aJson.addNumberToObject (msg、"TempNodes"、 温度); aJson.addNumberToObject (msg、"voltNodes"、vol); sn++; 如果(SN =9999){ SN = 0; } 返回 msg; } 空 dumpMessage (Stream &s、aJsonObject * msg) { int msg_count = aJson.getArraySize (msg); for (int j = 0;j < msg_count;j++){ aJsonObject *项、*发件人、*值; S.print ("Msg #"); S.println (j、DEC); item = aJson.getArrayItem (msg、j); 如果(!item){ S.println ("未获取商品"); 延迟(100); 返回; } //下面,我们解析和转储来自同修的消息。 * sender = aJson.getObjectItem (item、"sender"); 如果(!sender){ S.println ("未获取发件人"); 延迟(100); 返回; } S.println(); } //********* // WiFiConfig //配置 Wifi 设置,连接到网络并创建 Web 服务器 void WifiSettings(void){ Serial.print("Attempting to connect to Network named:"); //尝试连接到 Wifi 网络 Serial.println (SSID); //打印网络名称(SSID) WiFi.begin(ssid,密码); //连接到 WPA/WPA2网络。 如果在 ( wife.status()!= wl_connected ){时使用开放或 WEP 网络,请更改此行 serial.print("."); //等待连接时打印点 delay (300); } Serial.println ("\n 您已连接到网络"); Serial.println ("正在等待 IP 地址"); while (WiFi.localIP ()== INADDR_NONE){ serial.print("."); //等待 IP 地址时打印点 delay(300); } Serial.println("\nip Address obtained"); printWifiStatus()); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */ * 呼叫电话功能 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /void callphone (void){ TembooChoreo ConfirmTextToSpeechPromptChoreo (client_1); //设置 Temboo 帐户凭据 ConfirmTextToSpeechPromptChoreo.setAccountName(TEMBOO_ACCOUNT); ConfirmTextToSpeechPromptChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); ConfirmTextToSpeechPromptChoreo.setAppKey(TEMBOO_APP_KEY); //设置 Choreo 输入 字符串 CallbackURLValue ="">http://192.168.0.105/"; ConfirmTextToValue SpeechProeToPrompto.addInput ("CallbackURL"、CallbackURLMx);"ConfirmTextToValue" ="SpeedKeyString Number7Spine.7SpinoreNumber" ;"ConfirmProSpeedKeyKeyString ("ConfirmProSpeedNumber"); 字符串 ByeTextValue ="El valor actual de frecuencia Tiva es de "; ByeTextValue = ByeTextValue +(Freq/1000000)+" MHz。 El voltaje_Tiva detectado es de "+ voltage_1; ByeTextValue = ByeTextValue +"、la temperatura_Node1 es"+温度+"、el voltaje_Node1 es"+ vol; ByeTextValue = ByeTextValue +"、la volatura_Node2 es"+"voltage+"、"+"nodeje"+"voltaje_voltage"。 El informe de Estado del equipo ha terminado。 hasta pron."; ConfirmTextToSpeechPromptChoreo.addInput ("ByeText"、ByeTextValue"); String TextValue ="CC3100 Remotes Updates。 niveles dentro de rango de seguridad。"; TextValue = TextValue +"、。 Pulse uno para conocer los valores actuales de los parámetros ó n de medida。"; ConfirmTextToSpeechPromptChore.addInput ("text"、TextValue); String FromValue ="Mohamed Rahali"; ConfirmTextValue ToSpeechPromptChore.addInput ("来自"、FromOut"); String FromValue="Mohamed Rahali";ConfirmTextValue ="7680";ConfirmToTextValue";ConfirmText165391ToText1680"; pulse uno para conocer valores medios de las últimas 24 horas"; ConfirmTextToSpeechPromptChore.addInput ("FailedText"、FailedTextSecret); String MaxDigitsValue ="1";Value TextToSpeechPromptChore.addInput ("MaxDigitsise"、FailedTextValue");String MaxDigitechCode.1pintrabe1 ;"SecretValue1;"PrevertechobeDataCode.1pintrabeq1;"pintrabeData1;"pintrabeDataCode.q1 ConfirmTextToSpeechPromptChoreo.setChoreo("/Library/Nexmo/Voice/ConfirmTextToSpeechPrompt"); //运行 choreo unsigned int returnCode = ConfirmTextToSpeechPromptChoreo.run(); //返回代码为零意味着在 (返回代码= 0){时所有操作都正常 while (ConfirmTextToSpeechPromptChoreo.available ()){ string name = ConfirmTextToSpeechPromptChoreo.readStringUntil ('\x1F'); name.trim (); ConfirmTextToSpeechPromptChoreo.find ("\x1E"); } { * //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */ * SMS 功能 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // void SendSMSchoreo (void){ TembooChoreo SendSMSChoreo (client_1); //调用 Temboo 客户端 SendSMSChoreo.begin(); //设置 Temboo 帐户凭据 SendSMSChoreo.setAccountName(TEMBOO_ACCOUNT); SendSMSChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); SendSMSChoreo.setAppKey(TEMBOO_APP_KEY); //设置配置文件以用于执行 SendSMSChoreo.setProfile("SMStwilio"); //设置 Choreo 输入 字符串 OutTimeOut="1"; SendSMSChCallo.addInput ("IDTimeOut" 、"BackTimeOutNumber");SendSMTimeStack.AddValue ="09";"IDTimeBackNumber.TimeOut"; 字符串 BodyValue ="CC3100远程更新。 Niveles dentro de rango de seguridad。 La Frecuencia Tiva detectada es de; BodyValue = BodyValue +(Freq/1000000)+"MHz. El Voltaje_Tiva detectado es de "+volte_1; BodyValue = Bodyvol +"V, la temperatura_Node1"+温度+"°C,el voltaje_Node1 es"+ vol;Value = BodyValue +"V, la temperatura_Node2"+ Temperature +"°C,el Estudoes +"V。 Hasta pron."; SendSMSChoreo.addInput ("身体"、BodyValue); //识别 Choreo 以运行 SendSMSChoreo.setChoreo("/Library/Twilio/SMSMessages/SendSMS"); //运行 Choreo;如果结果可用,请将其打印为串行 // 901时间等待 Choreo 响应。 可根据需要进行编辑 // use_ssl 输入以告诉库使用 HTTPS SendSMSChoreo.run(901、use_ssl); while (SendSMSChoreo.available (){ char c = SendSMSChoreo.read(); serial.print(c); }SendSMSchoreo.close() ; }//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */ * Gmail 函数 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /void SendEmail (void){ TembooChoreo SendEmailChoreo (client_1); //调用 Temboo 客户端 SendEmailChoreo.begin(); medsimorahali@gmail.com //设置 Temboo 帐户凭据 SendEmailChoreo.setAccountName(TEMBOO_ACCOUNT); SendEmailChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); SendEmailChoreo.setAppKey(TEMBOO_APP_KEY);//设置 Choreo 输入字符串 FromAddressValue ="cc3100updates@gmail.com;SendEmailChAddresso.addInput ("FromTo3100");"SendUserNameValue" ;"SendUserName.ToName";"CC100DToName" string MessageBodyValue ="CC3100远程更新。 Niveles dentro de rango de seguridad。 La Frecuencia Tiva detectada es de; MessageBodyValue = MessageBodyValue +(Freq/1000000)+"MHz. El Voltaje_Tiva detectado es de "+volte_1; MessageBodyValue = EstBodyvol +"V、la temperatura_Node1"+温度+"° °C、el voltaje_Node1 es"+ Value;MessageValue = EstMessageMessagevol +"V、la terminatura_Node2"+"Temperature +"V、el terminature_Nodoe"+"V、"V、"+"V、"vertaje_informe"+"V、"V、"+"V、C +"V 和"V、C +"V。 hasta pron."; SendEmailChoreo.addInput ("MessageBody "、MessageBody901); String PasswordValue ="jnezwawthisucjqr"; SendEmailChoreo.addInput ("密码"、PasswordValue); //识别 Choreo 以运行 SendEmailChoreo.setChoreo("/Library/Google/Gmail/SendEmail"); //运行 Choreo;当结果可用时 ,等待串行响应打印/。 可根据需要进行编辑 // use_SSL 输入,以告诉库使用 HTTPS SendEmailChoreo.run(); while (SendEmailChoreo.available (){ char c = SendEmailChoreo.read(); serial.print(c); }SendemailChoreo.close() ; }////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */ * Twitter 功能 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // void Sendtweet (void){ TembooChoreo StatusesUpdateChoreo (client_1); //调用 Temboo 客户端 StatusesUpdateChoreo.begin(); //设置 Temboo 帐户凭据 StatusesUpdateChoreo.setAccountName(TEMBOO_ACCOUNT); StatusesUpdateChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME); StatusesUpdateChoreo.setAppKey(TEMBOO_APP_KEY); //设置 Choreo 输入 字符串 StatusUpdateValue ="CC3100远程更新。 F-Tiva="; StatusUpdateValue = StatusUpdateValue +(Freq/1000000)+" MHz。 V-Tiva="+ VOLTGE_1; StatusUpdateValue = StatusUpdateValue +"V, V_Node1="+vol+"V, t_Node1="+temperature; StatusUpdateValue = StatusUpdateValue +"°C,V_Node2="+vol+"V, t_Node2="+vol+"V,t_Node2="°C +"+vol+"+温度"。 Hasta pron."; StatusesUpdateChore.addInput ("SecretusUpdate"、StatusUpdateValue); 字符串消耗性键值="qCeCnJi3LRIFDXc5RIPa79Ep"; StatusesConsumerUpdateChore.addInput ("SrKeyKeyKeyKeyKeyKey"、"QFN ) ;"QFN QFN QFN QFN QFN QFN QFN QFN QFN QFN QFN 1 QFN 1 QFN 1 QFN QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 QFN 1 V0QFN 1 V 1 V 1 V 1 V 1 V 1 V 1 QFN 1 QFN 1 V 1 QFN 1 QFN 1 QFN 1 V QFN 1 QFN 1 V 1 QFN 1 QFN 1 QFN 1 V 1 StatusesUpdateChoreo.setChoreo("/Library/Twitter/Tweets/StatusesUpdate"); 当结果可用时、将其打印为串行 // 901时间等待 Choreo 响应。 可根据需要进行编辑 // use_ssl 输入以指示库使用 HTTPS StatusesUpdateChoreo.run(901、use_ssl); while (StatusUpdateChore.available (){ char c = StatusUpdateChoreo.read(); serial.print(c); } StatusUpdateChore.close(); } void setup(){ Serial.begin(115200);//初始化串行通信 WifiSettings(); Serial.println ("在端口80上启动 webserver "); server.begin(); //在端口80 Serial.println ("Webserver started!")、 PubNub.begin(pubkey 子项)、 Serial.println ("PubNub setup")、 RF430CL()、 }上启动 Web 服务器 void loop(){// WiFiClient *CLIENT; // Publish *// Serial.print("publishing a message:"); aJsonObject *msg = createMessage(); char *msgStr = aJson.print(msg); aJson.deleteItem(msg); client = PubNub.publishing (channel、msgStr); free(msgStr); // if (!client){ //return; //} int i = 0; WiFiClient client_1 = server.available ();//侦听传入的 Web 服务器客户端 (如果(client_1){ //如果您有一个客户端, serial.println ("新客户端"); //从串行端口打印一条消息 char buffer[150]={ 0}; //创建缓冲区来保存传入的数据 //创建缓冲区以保存传入数据(GRE_LED) while (client_1_connected()){ //在客户端连接时循环 if (client_1_available (){ //如果有字节要从客户端读取, char c = client_1_read(); //读取一个字节,然后 serial.write(c); //将其打印出串行监视器 如果(c ='\n'){ //如果字节是换行字符 if (strlen (buffer)=0){ client_1.println ("HTTP/1.1 200 OK"); client_1_println ("内容类型:text/html"); client_1.println ("连接:关闭");// se Cierra la conexión una vez se ha responsido a la peticion client_1_println ("\n 刷新:5");// se brunca la página automáticamente cada 5 segundos client_1_println(); client_1.println ("proyecto realizado en Las instalaciones de la UCLM por "); client_1.println ("\n\n"); client_1_println (" Mohamed RAHALI <\p>"); client_1.println ("\n\n"); client_1_println(); client_1_println (""); client_1.println (" ");//client_1.println (" <html lang='es'>");client_1.println (" <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" /> ");client_1.println (" <meta charset='UTF-8'>");//client_1.println (" <title>"); client_1_println ("servicios multimedia para El control de Alertas"); client_1.println (" <hr>"); client_1.println (" ");="" client_1.println("rel="stylesheet" type="text/css">");="" client_1.println("href="static.tumblr.com/.../estilos.min.css">"); client_1.println ("
"); client_1.println (""); client_1.println ("\n\n"); /-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // //正文多媒体(SMS、电话呼叫) client_1.println ("伺服系统多媒体参数 EL 控制 DE 警报
"); client_1.println ("
"); // mm cuidado H1 client_1.println (" 物联网 Web 服务器 "); client_1.println (" ");//client_1_println (");client_1_println ("www.educachip.com"); client_1_println (");client_1_println (");client_1_println (")");//client_1.println (" ");client_1.println (" ");client_1.println (""); client_1.println (" "); client_1.println (" "); // HTTP 响应以另一行结尾: client_1_println(); //中断 while 循环: 中断; } 否则{ //如果有换行符,则清除缓冲区: memset (buffer、0、150); // memset (buffer2、0、150); I = 0; } } 如果(c!='\r'){//如果您除了回车字符之外还有其他任何内容, Buffer[i++]= c; //将其添加到 currentLine 的末尾 //buffer2[i++]= c; } //检查客户端请求是"get /h"还是"get /L": if (endsWith (buffer、"get /Multimedia = 1"){ SendSMSChoreo(); serial.println ("\nSMS 已发送\n"); } if (endsWith (buffer、"get /Multimedia = 0"){ callphone(); serial.println ("\n 电话呼叫已进行"); } if (endsWith (buffer、"get /Mail=1"){ SendEmail(); serial.println ("\n 电子邮件已发送"); } // if (endsWith (buffer、"get /Mail=0"){ // //} if (endsWith (buffer、"get /Social = 1"){ Sendtweets(); serial.println ("\nTwitter 已更新"); // } // if (endsWith (buffer、"get /Social = 0"){ // //} } client_1_stop(); //关闭连接: serial.println ("客户端断开连接"); }//------- DLP-RF430CL 环路------------------------------------------------------- // if (nFC.loop()){ if (nFC.wasRead ()){ serial.println ("NDEF 标签已读取!"); } nfc.enable(); } // ////检查一个数组是否以另一个数组结尾的方法 // 布尔 endsWirh (char* inString、char* compString){ int compLength = strlen (compString); int strLength = strlen (inString); //比较 incompI 的最后"compLength "值 ; for (i+ i);(i+ I = 0+) char a = inString[(strLength - 1)- i]; char b = compString[(compLength - 1)- i]; 如果(a!= b){ 返回 false; } } 返回 true; }//----------------- printWifiStatus 函数------------------------------------------------------- // void printWifiStatus(){ Serial.print ("SSID:"); //打印连接到的网络的 SSID: serial.println (WiFi.ssid ()); IPAddress IP = WiFi.localIP ();//打印 WiFi IP 地址: serial.print ("IP 地址:"); serial.println (IP); 长 RSSI = WiFi.ssi (); //打印接收到的信号强度: serial.print ("信号强度(RSSI):"); serial.print (RSSI); serial.println (" dBm"); serial.print ("要实际查看此页,请打开浏览器至 http://"); //在浏览器中打印转至何处: serial.println (IP); }"); client_1.println (""); client_1.println ("伺服 Móviles
");//client_1.println (""); client_1.println ("");client_1.println (""); client_1_println(); //正文电子邮件 client_1.println ("");client_1.println ("");client_1.println ("");client_1_println ("LED Verde");client_1_println ("
");client_1.println (""); client_1.println (" ");//client_1.println (" "); client_1.println (" "); client_1.println ("");//client_1.println (" ");client_1.println ("");client_1.println (""); client_1.println (" ");//client_1.println (" "); client_1.println (" "); client_1.println ("");//client_1.println (" ");client_1.println (" ");client_1.println (""); client_1.println (""); client_1.println (""); client_1.println (" "); client_1.println (""); client_1_println(); client_1.println ("邮件
");//client_1.println (""); //社交媒体 client_1.println ("");client_1.println (""); client_1_println(); client_1.println ("");client_1.println ("");client_1.println ("");client_1_println ("LED Verde");client_1_println ("
");client_1.println (""); //aqui Solo una de las dos、无 TODO client_1.println (" ");//client_1.println (" "); client_1.println (" "); client_1.println ("");//client_1.println (" ");client_1.println ("");client_1.println (""); client_1.println (" ");//client_1.println (" "); client_1.println (" "); client_1.println ("");//client_1.println (" ");client_1.println (" ");client_1.println (""); client_1.println (""); client_1.println (""); client_1.println (""); client_1.println ("社交媒体
");//client_1.println ("");client_1.println ("");client_1.println ("");//client_1.println (" ");client_1.println ("");client_1.println ("");client_1.println ("");client_1_println ("LED Verde");client_1_println ("
");client_1.println (""); client_1.println (" ");//client_1.println (" "); client_1.println (" "); client_1.println ("");//client_1.println (" ");client_1.println ("");client_1.println (""); client_1.println (" ");//client_1.println (" "); //client_1_println ("");//client_1_println (" "); //client_1_println ("链接按钮"); client_1.println (" "); //client_1.println (" "); client_1.println (""); client_1.println (""); client_1.println ("
大家好、我遇到了一个小问题、下面我要处理通信协议的应用、我有 Tiva 硬件、CC2530空中模块、用于 WIFI 的 CC3100、我还可以使用 DLP-RF430CL330H。
单独运行很好、但当我将它们放在一起、在代码中安装所有 BoosterPack (一个在另一个之上)时、它对我没有任何作用、我甚至看不到串行端口被启用。 什么也不起作用。 我只需将这些片段复制并粘贴到单个代码中。
有人能告诉我问题可能是什么吗? 板是否存在一定的不兼容性? 或者它是我使用的软件(电源)吗?
我可以激活代码中不应该包含的内容吗?
我如何解决这个问题? 我需要信息或一些帮助、这很紧急。
提前感谢。
我使用 ENEGRIA IDE。V17。 我的代码是: