1、小心你的ckeditor编辑器不显示的有关问题
答:firefox设置了override,遨游浏览器设置了自定义useragent头,都会导致ckeditor无法显示!!!
自从乐鑫esp8266出现后,其价格低廉的解决方案,引起了业界的广泛关注,堪称业界里程碑。但是很多人买来之后不知道怎么使用,今天在这里和大家讨论分享一下:
ESP8266简介,乐鑫的单芯片wifi 控制器
目前市面上有3种开发方式:
1:使用乐鑫AT 固件,使用时,单片机通过串口用AT指令来实现wifi连接、网络通迅,例如arduino uno+esp8266他们间使用AT指令来交互。
2:使用乐鑫SDK开发包,直接用C编程。例如果云esp8266 sdk开发之类。直接开发BIN文件
3:使用NODEMCU固件,这是国内大能 在SDK基础上,加入了LUA语言
现在,出现了第4种开发方式,arduino直接编程,原理还是在SDK基础上开发,不过已经封装为我们熟的Arduino语言了。(想想都有点小激动{:soso_e102:})
注意已经不需要ARDUINO硬件了,而是利用arduino软件平台来编译8266的源码。即利用arduino 语句开发8266的sdk,
下面的几篇帖子将分别介绍开发的一些教程。
第一篇,基于esp8266的智能家居控制系统-基础篇1介绍arduino ide for esp8266,介绍背景,及软件下载
第二篇,基于esp8266的智能家居控制系统-基础篇2硬件平台搭建 ,搭建硬件开发环境
第三篇,基于esp8266的智能家居控制系统-通用篇,常用的示例代码,非无线
第四篇,基于esp8266的智能家居控制系统-局域网篇1 TCP/UDP,tcp通讯的准备作为客户端与电脑通讯
第五篇,基于esp8266的智能家居控制系统-局域网篇1手机控制和透传 ,作为客户端与手机通讯及透传
第六篇,基于esp8266的智能家居控制系统-局域网篇2,tcpserver,作为服务端与其他作为客户端的设备通讯
楼楼将持续更新,么么哒
转载自:http://www.arduino.cn/forum.php?mod=viewthread&tid=18361&highlight=esp8266
例子
<script type="text/JavaScript">
function jsCopy(){
var e=document.getElementById("contents");//对象是contents
e.select(); //选择对象
document.execCommand("Copy"); //执行浏览器复制命令
}
</script>
<textarea id="contents" cols="40" rows="5"></textarea>
<br />
<input type="button" onClick="jsCopy();" value="复制" />
js复制无非是以下三步:
1、获取复制的对象:document.getElementById("contents")这句话就是获取ID=“contents”的textarea。
2、全选对象的内容:e.select()
3、用execCommand("")函数将内容复制。
下面来详细介绍execCommand("")函数的参数:
1、格式:document.execCommand(sCommand[,交互方式, 动态参数])
2、参数详解:
002 |
[格式]:document.execCommand(”selectAll”) |
006 |
[格式]:document.execCommand(”open”) |
007 |
[说明]这跟VB等编程设计中的webbrowser控件中的命令有些相似,大家也可依此琢磨琢磨。 |
010 |
[格式]:document.execCommand(”saveAs”) |
014 |
[格式]:document.execCommand(”print”) |
020 |
document.execCommand(”Open”); |
023 |
document.execCommand(”SaveAs”); |
026 |
document.execCommand(”Cut”,” false ”, null ); |
029 |
document.execCommand(”Delete”,” false ”, null ); |
032 |
document.execCommand(”FontName”,” false ”,sFontName); |
035 |
document.execCommand(”FontSize”,” false ”,sSize|iSize); |
038 |
document.execCommand(”ForeColor”,” false ”,sColor); |
041 |
document.execCommand(”2D-Position”,” false ”,” true ”); |
044 |
document.execCommand(”AbsolutePosition”,” false ”,” true ”); |
047 |
document.execCommand(”BackColor”,” false ”,sColor); |
050 |
document.execCommand(”Bold”,” false ”, null ); |
053 |
document.execCommand(”Copy”,” false ”, null ); |
056 |
document.execCommand(”CreateBookmark”,” false ”,sAnchorName); |
059 |
document.execCommand(”CreateLink”,” false ”,sLinkURL); |
062 |
document.execCommand(”FormatBlock”,” false ”,sTagName); |
065 |
document.execCommand(”Open”); |
068 |
document.execCommand(”SaveAs”); |
071 |
document.execCommand(”Cut”,” false ”, null ); |
074 |
document.execCommand(��Delete”,” false ”, null ); |
077 |
document.execCommand(”FontName”,” false ”,sFontName); |
080 |
document.execCommand(”FontSize”,” false ”,sSize|iSize); |
083 |
document.execCommand(”ForeColor”,” false ”,sColor); |
086 |
document.execCommand(”2D-Position”,” false ”,” true ”); |
089 |
document.execCommand(”AbsolutePosition”,” false ”,” true ”); |
092 |
document.execCommand(”BackColor”,” false ”,sColor); |
095 |
document.execCommand(”Bold”,” false ”, null ); |
098 |
document.execCommand(”Copy”,” false ”, null ); |
101 |
document.execCommand(”CreateBookmark”,” false ”,sAnchorName); |
104 |
document.execCommand(”CreateLink”,” false ”,sLinkURL); |
107 |
document.execCommand(”FormatBlock”,” false ”,sTagName); |
注:火狐不支持此方法!
找了好久的一个方法,很管用,网上很多文章一大抄,拿下来根本没法用,他们自己也没有试验过,就写,真是服了
很想要个时钟模块,自己焊又太麻烦,干脆在TB上买下来了,省时。
模块参数:
1.尺寸:38mm(长)*22mm(宽)*14mm(高)
2.重量:8g
3.工作电压:3.3--5.5V
4.时钟芯片:高精度时钟芯片DS3231
5.时钟精度:0-40℃范围内,精度2ppm,年误差约1分钟
6.带2个日历闹钟
7.可编程方波输出
8.实时时钟产生秒、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿
9.芯片内部自带温度传感器,精度为±3℃
10.存储芯片:AT24C32(存储容量32K)
11.IIC总线接口,最高传输速度400KHz(工作电压为5V时)
12.可级联其它IIC设备,24C32地址可通过短路A0/A1/A2修改,默认地址为0x57
13.带可充电电池LIR2032,保证系统断电后,时钟任然正常走动
接线说明,以Arduino uno r3为例:
SCL→A5
SDA→A4
VCC→5V
GND→GND
代码部分:
#include <DS3231.h>
#include <Wire.h>
DS3231 Clock;
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
byte year, month, date, DoW, hour, minute, second;
void setup() {
// 启动I2C(IIC)接口
Wire.begin();
//以下部分是初始化时间,每次板子通电之后都会初始化成这个时间,只是测试用,以后可以删除。
Clock.setSecond(50);//Set the second
Clock.setMinute(59);//Set the minute 设置分钟
Clock.setHour(11); //Set the hour 设置小时
Clock.setDoW(5); //Set the day of the week 设置星期几
Clock.setDate(31); //Set the date of the month 设置月份
Clock.setMonth(5); //Set the month of the year 设置一年中的月份
Clock.setYear(13); //Set the year (Last two digits of the year) 设置年份(在今年的最后两位数——比如2013年最后的13)
// Start the serial interface
Serial.begin(115200);
}
void ReadDS3231()
{
int second,minute,hour,date,month,year,temperature;
second=Clock.getSecond();
minute=Clock.getMinute();
hour=Clock.getHour(h12, PM);
date=Clock.getDate();
month=Clock.getMonth(Century);
year=Clock.getYear();
temperature=Clock.getTemperature();
Serial.print("20");
Serial.print(year,DEC);
Serial.print('-');
Serial.print(month,DEC);
Serial.print('-');
Serial.print(date,DEC);
Serial.print(' ');
Serial.print(hour,DEC);
Serial.print(':');
Serial.print(minute,DEC);
Serial.print(':');
Serial.print(second,DEC);
Serial.print('\n');
Serial.print("Temperature="); //这里是显示温度
Serial.print(temperature);
Serial.print('\n');
}
void loop()
{
ReadDS3231();
delay(1000); //间隔1000ms(1000ms=1秒)循环一次。
}
一直想用锂电给arduino的板子供电,买了2种带充放的模块,其中一种有电量指示灯,另外一种没有,想在锂电为板子供电同时测量锂电电压,类似手机剩余电量显示这种。
电路比较简单,找2个10K的电阻串联在电池两端,电池负极接GND,电阻连接处接A3,代码如下:
#define voltsInPin A3
void setup()
{
pinMode(voltsInPin, INPUT);
Serial.begin(9600);
Serial.println("volts:");
}
void loop()
{
int rawReading = analogRead(voltsInPin);
float volts = rawReading / 220.62 * 2;
Serial.println(volts);
delay(500);
}
每隔半秒测试一次,220.62是我根据万用表测出的数值经过换算得来的,理论上应该是(1023/5=204.8),乘以2是因为两个10K的电阻分压了,所以测量到的电压是实际的一半大小,3.7V锂电充满一般4.2V左右。然后我找了个4位计时器(TM1637),加了几句代码,可以用数码管显示电压值了,两个脚分别接D2和D3。
#define voltsInPin A3
// 下面是4位计时器定义
#include "TM1637.h"
#define CLK 3//pins definitions for TM1637 and can be changed to other ports
#define DIO 2
TM1637 tm1637(CLK, DIO);
void setup()
{
pinMode(voltsInPin, INPUT);
//pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("volts:");
tm1637.init();
tm1637.set(BRIGHT_TYPICAL);
}
void loop()
{
int rawReading = analogRead(voltsInPin);
float volts = rawReading / 220.62 * 2;
Serial.println(volts);
int num = volts*100;
// 4位数显示
tm1637.display(0, num / 1000);
tm1637.display(1, (num % 1000) / 100);
tm1637.display(2, (num % 100) / 10);
tm1637.display(3, num % 10);
delay(500);
}
最后,请大家保持冷静,上面的代码在用USB供电时一点问题都没有,但是直接用升压模块接锂电供电后,测量的电压低了很多,而且跳跃的很厉害,我暂时还没有搞清楚到底是不能这样测试还是数码管的问题(数码管噪音很大),改天再测试了,或者还是直接用带电压显示的升压模块算了。。。。。。