物联网实验1
阿里云远程控制小灯
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include "tick.h"
#include "myUart.h"
#include "buffer.h"
#include "ATCommand.h"
#include "cJSON.h"
#include "exti.h"
#include "led.h"
#include "oled.h"
#define _debug_
const char* wifi_ssid = "HONOR 30";
const char* wifi_pwd = "treasure3";
const char* ProductKey = "i34te8zl80V";
const char* DeviceName = "led0";
const char* DeviceSecret = "7cb89003811b8a485fd97156b22b0fc8";
const char* ProductSecret = "ixwudEccQ5uW53rr";
#define BLANK_DATA " "
#define LINE_SIZE 16
#define MaxCommandLength 100
char exti1 = 0;
char ATCommandBuffer[MaxCommandLength];
int led_switch = 0;
int fputc(int ch, FILE *f)
{
MAP_UART_transmitData(EUSCI_A0_BASE, ch & 0xFF);
return ch;
}
int ReturnData(void)
{
cJSON *JsonCommand = cJSON_CreateObject();
cJSON *SendJson = cJSON_CreateObject();
cJSON_AddStringToObject(JsonCommand, "id", "10001001");
cJSON_AddNumberToObject(JsonCommand, "PowerSwitch", led_switch);
cJSON_AddStringToObject(JsonCommand, "version", "1.0");
cJSON_AddStringToObject(JsonCommand, "method", "thing.event.property.post");
char *command = cJSON_PrintUnformatted(JsonCommand);
cJSON_AddStringToObject(SendJson, "send_cmd", command);
cJSON *send_cmd = cJSON_GetObjectItem(SendJson, "send_cmd");
char *send_str = cJSON_PrintUnformatted(send_cmd);
AT_Send_message(send_str);
free(command);
free(send_cmd);
free(send_str);
cJSON_Delete(SendJson);
cJSON_Delete(JsonCommand);
return true;
}
int RemoveWireless(void)
{
OLED_Clear();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_1, "IoT Experiment 1", LINE_SIZE);
delay_ms(1000);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Stop Wireless... ", LINE_SIZE);
if(!Stop_WiFi_Connection())
{
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Stop Wi-Fi Error!", LINE_SIZE);
led2blink(Red, 3, 500);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, BLANK_DATA, LINE_SIZE);
exti1 = 0;
return 1;
}
else
{
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "Remove SSID.....", LINE_SIZE);
AT_Remove_SSID(ATCommandBuffer, MaxCommandLength);
execAT(ATCommandBuffer);
delay_ms(1000);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "Remove IoT ID...", LINE_SIZE);
AT_Remove_IoTID(ATCommandBuffer, MaxCommandLength);
execAT(ATCommandBuffer);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "Wi-Fi Removed.", LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_4, "Press RESET Key.", LINE_SIZE);
}
exti1 = 0;
return 0;
}
int main(void)
{
MAP_WDT_A_holdTimer();
MAP_FPU_enableModule();
MAP_CS_setDCOFrequency(4000000);
MAP_CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1);
MAP_CS_initClockSignal(CS_HSMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4);
MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4);
ms_ticker_init();
MAP_SysTick_enableModule();
MAP_SysTick_enableInterrupt();
LED_Init();
myUartInit();
EXTIX_Init();
Beep_Init();
OLED_Init();
OLED_Clear();
printf("Starting Wi-Fi Module...");
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_1, "IoT Experiment 1", LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Starting Wi-Fi..", LINE_SIZE);
delay_ms(12000);
#ifndef _debug_
MAP_UART_disableModule(EUSCI_A0_BASE);
#endif
while(1)
{
led2ShowRed();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Checking Wi-Fi..", LINE_SIZE);
if(!Check_WiFi_Connection())
{
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Connection fail!", LINE_SIZE);
led2blink(Red, 3, 500);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Device Register.", LINE_SIZE);
AT_Device_Register(ATCommandBuffer, MaxCommandLength, \
ProductKey, DeviceName, DeviceSecret, ProductSecret);
execAT(ATCommandBuffer);
delay_ms(1000);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Connecting Wi-Fi", LINE_SIZE);
AT_Connect_WiFi(ATCommandBuffer, MaxCommandLength, wifi_ssid, wifi_pwd);
execAT(ATCommandBuffer);
delay_ms(14000);
}
else
{
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Wi-Fi Connected.", LINE_SIZE);
led2ShowGreen();
break;
}
}
GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN1);
myEUSCIA0Init();
printf("------ Connection finished. ------\r\n");
while(1)
{
MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P2, GPIO_PIN1);
delay_ms(300);
if(exti1 == 1)
{
GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN1);
execAT("AT+IDMCLS\r\n");
printf("------Power off-----\r\n");
OLED_Clear();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_1, "-- Power Off ---", LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Press RESET Key.", LINE_SIZE);
GPIO_setOutputLowOnPin(GPIO_PORT_P2,GPIO_PIN1);
break;
}
else if(exti1 == 2)
{
RemoveWireless();
break;
}
char *Sub_Json_ptr = AT_Get_SUB_In_Json(&myBuffer);
if(Sub_Json_ptr != NULL)
{
cJSON *praseDataPtr = cJSON_Parse(Sub_Json_ptr);
cJSON *PowerSwitch = cJSON_GetObjectItem(praseDataPtr, "PowerSwitch");
if(cJSON_IsNumber(PowerSwitch))
{
led_switch = PowerSwitch->valueint;
if(led_switch == 0)
{
printf("Turn off the light.\r\n");
MAP_GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "LED1 Status: OFF", LINE_SIZE);
}
else if(led_switch == 1)
{
printf("Turn on the light.\r\n");
MAP_GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "LED1 Status: ON ", LINE_SIZE);
}
ReturnData();
}
cJSON_Delete(praseDataPtr);
}
}
while(1);
}
实验2
分析整个物联网应用数据流转的过程
s1,s2组成2种组合(任意一个按钮打开及2个按钮都打开),控制msp432红灯的亮度(PWM降低),当成功调节亮度后物联网开发板蜂鸣器(5.5连接buzer)响1s。
web前端添加时间字段,固件端设置新定时器,每隔一秒刷新一次前端时间数据,且可以通过pc(uart工具)设置初始时间。(提示:前端页面新增3个不可控int字段,表示时分秒,其他和之前的时钟操作类似,可参考定时器章节设置定时器)
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include "i2c.h"
#include "tick.h"
#include "myUart.h"
#include "myTimer.h"
#include "buffer.h"
#include "ATCommand.h"
#include "cJSON.h"
#include "exti.h"
#include "led.h"
#include "oled.h"
#include "hts221.h"
#include "sw.h"
#include "beep.h"
#define _debug_
const char* wifi_ssid = "HONOR 30";
const char* wifi_pwd = "treasure3";
const char* ProductKey = "g5tk1FRbp5v";
const char* ProductSecret = "JSdWdXhHffVKYvxX";
const char* DeviceName = "10205102444";
const char* DeviceSecret = "16ebf3ebb9f84531dc28cbb681cf8700";
#define BLANK_DATA " "
#define LINE_SIZE 16
#define MaxCommandLength 150
extern char exti1;
char ATCommandBuffer[MaxCommandLength];
char UserCommandBuffer[MaxCommandLength];
char SendMsgBuffer[128];
char OLED_BUFF[32];
#define TA1_PERIODS (62500)
#define PWM_PERIODS (62500/50)
const eUSCI_UART_Config uartConfig =
{
EUSCI_A_UART_CLOCKSOURCE_SMCLK,
6,
8,
17,
EUSCI_A_UART_NO_PARITY,
EUSCI_A_UART_LSB_FIRST,
EUSCI_A_UART_ONE_STOP_BIT,
EUSCI_A_UART_MODE,
EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION
};
const Timer_A_UpModeConfig TA0 =
{
TIMER_A_CLOCKSOURCE_SMCLK,
TIMER_A_CLOCKSOURCE_DIVIDER_1,
PWM_PERIODS - 1,
TIMER_A_TAIE_INTERRUPT_DISABLE,
TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE,
TIMER_A_DO_CLEAR
};
Timer_A_CompareModeConfig TA0_CCR1_PWM =
{
TIMER_A_CAPTURECOMPARE_REGISTER_1,
TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE,
TIMER_A_OUTPUTMODE_RESET_SET,
PWM_PERIODS
};
Timer_A_CompareModeConfig TA0_CCR2_PWM =
{
TIMER_A_CAPTURECOMPARE_REGISTER_2,
TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE,
TIMER_A_OUTPUTMODE_RESET_SET,
PWM_PERIODS
};
Timer_A_CompareModeConfig TA0_CCR3_PWM =
{
TIMER_A_CAPTURECOMPARE_REGISTER_3,
TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE,
TIMER_A_OUTPUTMODE_RESET_SET,
PWM_PERIODS
};
int fputc(int ch, FILE* f) {
MAP_UART_transmitData(EUSCI_A0_BASE, ch & 0xFF);
return ch;
}
int ReturnData(char* message) {
cJSON* JsonCommand = cJSON_CreateObject();
cJSON* SendJson = cJSON_CreateObject();
cJSON_AddStringToObject(JsonCommand, "DATA", message);
char* command = cJSON_PrintUnformatted(JsonCommand);
cJSON_AddStringToObject(SendJson, "send_cmd", command);
cJSON* send_cmd = cJSON_GetObjectItem(SendJson, "send_cmd");
char* send_str = cJSON_PrintUnformatted(send_cmd);
AT_Send_message(send_str);
free(command);
free(send_cmd);
free(send_str);
cJSON_Delete(SendJson);
cJSON_Delete(JsonCommand);
return true;
}
bool PraseCommand(char* cmd) {
char* ptr = NULL;
ptr = strtok(cmd, ",");
while (ptr) {
if (!strcmp(ptr, "Light")) {
ptr = strtok(NULL, ",");
if (!strcmp(ptr, "1")) {
tunnOnLed1();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "LED1 Status: ON ", LINE_SIZE);
}
else if (!strcmp(ptr, "0")) {
turnOffLed1();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "LED1 Status: OFF", LINE_SIZE);
}
}
ptr = strtok(NULL, ",");
}
return true;
}
int RemoveWireless(void) {
OLED_Clear();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_1, "IoT Experiment 2", LINE_SIZE);
delay_ms(1000);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Stop Wireless... ", LINE_SIZE);
if (!Stop_WiFi_Connection())
{
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Stop Wi-Fi Error!", LINE_SIZE);
led2blink(Red, 3, 500);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, BLANK_DATA, LINE_SIZE);
exti1 = 0;
return 1;
}
else {
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "Remove SSID.....", LINE_SIZE);
AT_Remove_SSID(ATCommandBuffer, MaxCommandLength);
execAT(ATCommandBuffer);
delay_ms(1000);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "Remove IoT ID...", LINE_SIZE);
AT_Remove_IoTID(ATCommandBuffer, MaxCommandLength);
execAT(ATCommandBuffer);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, "Wi-Fi Removed.", LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_4, "Press RESET Key.", LINE_SIZE);
}
exti1 = 0;
while (1);
}
void pwninit()
{
uint8_t port_mapping[] =
{
PM_TA0CCR1A,
PM_TA0CCR2A,
PM_TA0CCR3A,
PM_NONE,
PM_NONE,
PM_NONE,
PM_NONE,
PM_NONE
};
MAP_PMAP_configurePorts((const uint8_t*)port_mapping, PMAP_P2MAP, 1, PMAP_DISABLE_RECONFIGURATION);
MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN0 | GPIO_PIN1 | GPIO_PIN2, GPIO_PRIMARY_MODULE_FUNCTION);
MAP_Timer_A_configureUpMode(TIMER_A0_BASE, &TA0);
Interrupt_enableMaster();
MAP_Timer_A_startCounter(TIMER_A0_BASE, TIMER_A_UP_MODE);
myEUSCIA0Init();
TA0_CCR1_PWM.compareValue = PWM_PERIODS * 1000 * 3.3 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR1_PWM);
TA0_CCR2_PWM.compareValue = PWM_PERIODS * 1000 * 3.3 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR2_PWM);
TA0_CCR3_PWM.compareValue = PWM_PERIODS * 1000 * 3.3 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR3_PWM);
printf("------ Connection finished. ------\r\n");
MAP_UART_enableInterrupt(EUSCI_A0_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT);
MAP_Interrupt_enableInterrupt(INT_EUSCIA0);
}
int main(void) {
int Temp = 0;
int Humi = 0;
int led1_stat = 0;
int sw1_stat = 0;
int sw2_stat = 0;
MAP_WDT_A_holdTimer();
MAP_FPU_enableModule();
MAP_CS_setDCOFrequency(4000000);
MAP_CS_initClockSignal(CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1);
MAP_CS_initClockSignal(CS_HSMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4);
MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4);
ms_ticker_init();
MAP_SysTick_enableModule();
MAP_SysTick_enableInterrupt();
LED_Init();
switchInit();
myUartInit();
EXTIX_Init();
Beep_Init();
i2c_init(NULL);
HTS221_Init();
OLED_Init();
OLED_Clear();
timer0Init(4000000);
printf("Starting Wi-Fi Module...");
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_1, "IoT Experiment 2", LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Starting Wi-Fi..", LINE_SIZE);
delay_ms(12000);
#ifndef _debug_
MAP_UART_disableModule(EUSCI_A0_BASE);
#endif
while (1) {
led2ShowRed();
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Checking Wi-Fi..", LINE_SIZE);
if (!Check_WiFi_Connection())
{
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Connection fail!", LINE_SIZE);
led2blink(Red, 3, 500);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Device Register.", LINE_SIZE);
AT_Device_Register(ATCommandBuffer, MaxCommandLength, \
ProductKey, DeviceName, DeviceSecret, ProductSecret);
execAT(ATCommandBuffer);
delay_ms(1000);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Connecting Wi-Fi", LINE_SIZE);
AT_Connect_WiFi(ATCommandBuffer, MaxCommandLength, wifi_ssid, wifi_pwd);
execAT(ATCommandBuffer);
delay_ms(14000);
}
else {
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, "Wi-Fi Connected.", LINE_SIZE);
led2ShowGreen();
delay_ms(3000);
break;
}
}
pwninit();
while (1) {
delay_ms(100);
if (sw1_stat != getS1Status() || sw2_stat != getS2Status()) {
exti1 = 1;
}
if (exti1 == 1) {
Temp = HTS221_Get_Temperature();
Humi = HTS221_Get_Humidity();
led1_stat = getLed1Status();
sw1_stat = getS1Status();
sw2_stat = getS2Status();
memset(SendMsgBuffer, 0, sizeof(SendMsgBuffer));
sprintf(SendMsgBuffer, "Temp,%d,Humi,%d,Light,%d,Switch1,%d,Switch2,%d", \
Temp, Humi, led1_stat, sw1_stat, sw2_stat);
ReturnData(SendMsgBuffer);
memset(OLED_BUFF, 0, sizeof(OLED_BUFF));
sprintf(OLED_BUFF, "Temp:%d Humi:%d ", Temp, Humi);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_2, OLED_BUFF, LINE_SIZE);
memset(OLED_BUFF, 0, sizeof(OLED_BUFF));
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_3, OLED_BUFF, LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_4, "Reporting Data..", LINE_SIZE);
OLED_PrintString(OLED_COLUMN_START, OLED_ROW_4, BLANK_DATA, LINE_SIZE);
if (sw1_stat && sw2_stat)
{
TA0_CCR1_PWM.compareValue = PWM_PERIODS * 300.0 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR1_PWM);
TA0_CCR2_PWM.compareValue = PWM_PERIODS * 300.0 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR2_PWM);
TA0_CCR3_PWM.compareValue = PWM_PERIODS * 300.0 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR3_PWM);
Play_Successful();
}
else if (sw1_stat || sw2_stat) {
TA0_CCR1_PWM.compareValue = PWM_PERIODS * 3000.0 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR1_PWM);
TA0_CCR2_PWM.compareValue = PWM_PERIODS * 3000.0 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR2_PWM);
TA0_CCR3_PWM.compareValue = PWM_PERIODS * 3000.0 / 16384 / 3;
MAP_Timer_A_initCompare(TIMER_A0_BASE, &TA0_CCR3_PWM);
Play_Successful();
}
exti1 = 0;
}
else if (exti1 == 2) {
RemoveWireless();
}
char* Sub_Json_ptr = AT_Get_SUB_In_Json(&myBuffer);
if (Sub_Json_ptr != NULL) {
cJSON* praseDataPtr = cJSON_Parse(Sub_Json_ptr);
cJSON* DATA = cJSON_GetObjectItem(praseDataPtr, "DATA");
if (cJSON_IsString(DATA)) {
memset(UserCommandBuffer, 0, sizeof(UserCommandBuffer));
memcpy(UserCommandBuffer, DATA->valuestring, strlen(DATA->valuestring));
PraseCommand(UserCommandBuffer);
}
cJSON_Delete(praseDataPtr);
}
}
}
int h = 0;
int m = 0;
int s = 0;
int time = 0;
int idx = 0;
int num = 0;
void EUSCIA0_IRQHandler(void) {
char tmp[3] = {0};
uint32_t status = MAP_UART_getEnabledInterruptStatus(EUSCI_A0_BASE);
MAP_UART_clearInterruptFlag(EUSCI_A0_BASE, status);
if (status & EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG)
{
sprintf(tmp, "%c", MAP_UART_receiveData(EUSCI_A0_BASE));
if (tmp[0] == 'g')
{
time = 1;
}
else if (tmp[0] == 'h')
{
time = 2;
}
else if (tmp[0] == 'm')
{
time = 3;
}
else if (tmp[0] == 's')
{
time = 4;
}
if (tmp[0] >= '0' && tmp[0] <= '9' && idx <= 2)
{
num *= 10;
num += tmp[0] - '0';
++idx;
}
}
}
#include<bits/stdc++.h>
void T32_INT1_IRQHandler(void) {
MAP_Timer32_clearInterruptFlag(TIMER32_0_BASE);
if (time == 0) return;
if (time == 1) {
s++;
if (s >= 60) {
s -= 60;
m++;
}
if (m >= 60) {
m -= 60;
h++;
}
if (h >= 24) {
h -= 24;
}
sprintf(SendMsgBuffer, "hh:%02d mm:%02d ss:%02d", h, m, s);
ReturnData(SendMsgBuffer);
}
else if (time == 2 && num < 24)
{
h = (24 + num) % 24;
}
else if (time == 3 && num < 60)
{
m = (60 + num) % 60;
}
else if (time == 4 )
{
s = (60 + num) % 60;
}
}
前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AIoT Test Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="jquery.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.10"></script>
</head>
<body>
<div class="all">
<div class="top">
<ul class="navigation">
<li><button onclick="openLight()">Light on</button></li>
<li><button onclick="closeLight()">Light off</button></li>
</ul>
</div>
<div class="cover">
<div class="sub_frame">
<div class="sub_cover">
<div class="show">
<div id="app">
<div class="content">Light: {{Light}}</div>
<div class="content">Switch1: {{Switch1}}</div>
<div class="content">Switch2: {{Switch2}}</div>
<div class="content">Temp: {{Temp}}</div>
<div class="content">Humi: {{Humi}}</div>
</div>
<div class="content" id="message">WebsocketStatus: </div>
</div>
</div>
</div>
</div>
</div>
</body>
<script>
var deviceName = '10205102444'
function openLight() {
var settings = {
"url": "https://mxlab.mxchip.com:9999/api/iot/controlField?deviceName=" + deviceName + "&targetField=Light&targetValue=1",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": window.sessionStorage.getItem('token')
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
}
function closeLight() {
var settings = {
"url": "https://mxlab.mxchip.com:9999/api/iot/controlField?deviceName=" + deviceName + "&targetField=Light&targetValue=0",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": window.sessionStorage.getItem('token')
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
}
function sayhello() {
var settings = {
"url": "https://mxlab.mxchip.com:9999/api/iot/controlField?deviceName=" + deviceName + "&targetField=OLed&targetValue=1",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": window.sessionStorage.getItem('token')
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
}
var websocket = null;
if ('WebSocket' in window) {
websocket = new WebSocket("wss://mxlab.mxchip.com:9999/connectWebSocket/" + deviceName + "/" + window.sessionStorage.getItem('token'));
}
else {
alert('Not support websocket')
}
websocket.onerror = function () {
setMessageInnerHTML("Error");
};
websocket.onopen = function (event) {
var settings = {
"url": "https://mxlab.mxchip.com:9999/api/iot/initData?deviceName=" + deviceName,
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": window.sessionStorage.getItem('token')
},
};
$.ajax(settings).done(function (response) {
for (var key in response.data) {
switch (key) {
case "Light":
app.Light = response.data[key]
break
case "Switch1":
app.Switch1 = response.data[key]
break
case "Switch2":
app.Switch2 = response.data[key]
break
case "Temp":
app.Temp = response.data[key]
break
case "Humi":
app.Humi = response.data[key]
break
}
}
console.log('init...')
console.log(response);
});
setMessageInnerHTML("Open");
}
websocket.onmessage = function (event) {
console.log(event)
var json = JSON.parse(event.data)
for (var key in json) {
switch (key) {
case "Light":
app.Light = json[key]
break
case "Switch1":
app.Switch1 = json[key]
break
case "Switch2":
app.Switch2 = json[key]
break
case "Temp":
app.Temp = json[key]
break
case "Humi":
app.Humi = json[key]
break
}
}
console.log(event.data);
}
websocket.onclose = function () {
setMessageInnerHTML("close");
}
window.onbeforeunload = function () {
websocket.close();
}
function setMessageInnerHTML(innerHTML) {
document.getElementById('message').innerHTML += innerHTML + '<br/>';
}
var app = new Vue({
el: '#app',
data: {
Light: 0,
Switch1: 0,
Switch2: 0,
Temp: 0,
Humi: 0
}
})
</script>
<style>
*{
padding: 0;
margin: 0;
}
a:link{
color: aliceblue;
text-decoration: none;
}
a:visited{
color: aliceblue;
text-decoration: none;
}
.all{
width: 100%;
margin: 0 auto;
}
.top{
height: 45px;
background-color: rgba(192,192,192,1.0);
text-align: left;
margin: 0 auto;
}
.top ul li{
cursor: pointer;
text-align: center;
height: 100%;
width: 30%;
list-style-type: none;
float: left;
line-height: 45px;
<!--"Comic Sans MS"-->
font-family: "Comic Sans MS";
}
.top button{
font-family: "Comic Sans MS";
color: black;
font-size: 30px;
width:90%;
height: 100%;
border-top:0px solid transparent;
border-bottom:0px solid transparent;
border-left:0px solid transparent;
border-right:0px solid transparent;
}
.cover{
width: 100%;
height: 700px;
background-image: url('salt.jpg');
background-size: cover;
opacity: 1.0;
}
.sub_frame{
width: 700px;
height: 700px;
margin: 10px auto;
position: relative;
border: 5px darkgrey dotted;
border-radius: 50%;
top: 50%;
transform: translateY(-50%);
}
.sub_cover{
width: 650px;
height: 650px;
margin-top: 25px;
margin-left: 25px;
border-radius: 50%;
background-color: rgba(192,192,192,0.5);
<!---令子块居中--->
display:flex;
align-items:center;
justify-content:center;
position:absolute;
}
.show{
position:absolute;
left:15%;
top:15%;init...
}
.content{
font-family: "Comic Sans MS";
color: black;
font-size: 45px;
}
</style>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)