由于工程代码中还有一些额外的 WebSocket 连接类,显示的 .ino 文件中一部分是必不可少的。对于整个项目,请参阅以下GitHub地址:https://github.com/bcatalin/esp8266-book/tree/master/Chapter7
必要的包含文件是:
#include "Wire.h"
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
#include <FS.h>
#include <ESP8266WiFi.h>
#include "SocketIOClient.h"
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <ArduinoJson.h>
#include <Wire.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266httpUpdate.h>
#include <SPI.h>
实例化一个 accel 对象并创建一个唯一标识作为类构造函数的参数:
Adafruit ADXL345_Unified accel = Adafruit_ADXL345_Unified(121212);
为服务器名称或IP地址分配空间,并将默认端口设置为 1234 稍后,用户可以在Wi-Fi设置过程中选择一个:
char acc_server[40];
characcport[6]="1234";
声明将使用的全局变量:
#define ACC_CLIENT_ID "RAM%06X"
#define INFO Serial.printf
char dev_name[50];
如果要格式化 SPIFFS 并将工程代码再次闪存到 ESP8266,请将 clean_g 设置为1:
int clean_ g = 0;
//用于保存数据的标志
bool ShouldSaveConfig = false ;
客户端对象将用于通过 websocket 协议发送和接收数据。类实现在此文件的外部,可以在 SocketIOClient.cpp 和SocketIOClient.h 文件中找到:
SocketIOClient client;
StaticJsonBuffer<300> jsonBuffer;
extern String RID;
extern String Rname;
//extern String Rcontent;
unsigned long previousMillis = 0;
long interval = 100;
unsigned long lastreply = 0;
unsigned long lastsend = 0;
用于通知我们需要将配置保存到 SPIFFS 上的 config.json 文件的回调函数是:
void saveConfigCallback() {
Serial.println("Should save config");
shouldSaveConfig = true;
}
在 setup()函数中,它将初始化并设置 ADXL345 芯片:
void setup( )
{
// 将您的设置代码放在这里,运行一次:
Serial.begin(115200