Forum: Markt Sammelbestellung OLED 0.96 I2C für den ESP8266


von R. W. (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Gibt es Interessierte eine private Sammelbestellung für die OLED 0.96 
I2C Display’s  durchzuführen?

Ich bestelle heuer noch in China und würde eventuell einen Posten 
mitbestellen, der Versand entfällt, es fallen lediglich die 
Einfuhrabgaben nach Steuerbescheid an.

Die OLED die der Händler anbietet gibt es hier ab 4,70 USD :
http://www.electrodragon.com/product/0-96-12864-oled-display-iicspi/

Ich weiß, er ist nicht der günstigste, aber der verlässlichste, daher 
bestelle ich immer wieder mal bei ihm, weil ich mich darauf verlassen 
kann und habe auch in Zukunft nicht vor, den zu wechseln.

Aliexpress sowie ebay kommen für mich nicht in Frage.

Wer Interesse hat, einfach PM an mich. Vorkasse nehme ich nicht, bezahlt 
wird erst wenn es in Deutschland ist. Wenn eine Stückzahl feststeht, 
frage ich nach ob ED Nachlass gibt.

Btw, ich persönlich nutze den OLED für den ESP8266 mit I2C.

Siehe Bild.

Lg rudi ;-)
Frohe Festtage!

Interesse & Fragen bitte per PM

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

R. W. schrieb:
> Aliexpress sowie ebay kommen für mich nicht in Frage.

Ich habe hier schon einen kleinen Stapel von diesen Displays.

ESP8266 mit I2C: Wie geht das? GPIOs aus der Ferne einzeln setzen? Oder 
kann der ESP8266 direkt I²C per AT-Kommando? Das würde doch beides nur 
in einer Art "transparent bridge mode" gehen, der doch in der normalen 
Firmware gar nicht enthalten ist, oder?

: Bearbeitet durch User
von Ronny S. (phoenix-0815)


Lesenswert?

Hallo,

ja also ich Hätte auch hier Interesse dran.

>  ESP8266 mit I2C: Wie geht das?

Diese Frage wollte ich auch stellen vor allem mit welcher Firmware.

Gruß Ronny

von R. W. (Gast)


Angehängte Dateien:

Lesenswert?

Hi
Die technischen Fragen wären besser im ESP8266 Thread aufgehoben?

> ESP8266 mit I2C: Wie geht das?

Das fragt sich Espressif auch.
Zwei Wochen warten bis Espressif soweit ist -

http://bbs.espressif.com/viewtopic.php?f=7&t=69#p326

btw:
Der ESP unterstützt I²C sowie auch SPI.

Anbei ein Beispiel zum studieren mit mehreren I2C Sensoren und auch 
Analogen Gas Sensor.

Quelle: "Costaud"
http://bbs.espressif.com/viewtopic.php?f=15&t=31

> GPIOs aus der Ferne einzeln setzen?

Geht

> kann der ESP8266 direkt I²C per AT-Kommando?

Da muss ich nachfragen wie die Frage gemeint ist Torsten.
At Command und I²C passen nicht so recht in meinem Kopf.

> Das würde doch beides nur
> in einer Art "transparent bridge mode" gehen, der doch in der normalen
> Firmware gar nicht enthalten ist, oder?

btw
was ist heutzutage noch normal?
Spass beiseite.

ESP8266 z.B.I²C mit den ESP-12
Beispiel:
SDA : GPIO2
SCL : MTMS (GPIO14 )

SSD1306 lib einbinden vom Hersteller/Vertreiber
Den SoC wie jeden anderen auch üblichen I²C Procederas beibbringen.

mit dem ESP-01,02,03,04,05
siehe Bild

oder ein einfaches I²C 16x2 mit dem ESP-01..

http://www.esp8266.com/viewtopic.php?f=6&t=841&hilit=i2c

einfach die I²C Pins definieren in der Firmware Erstellung.
Register Einstellungen guckst Dir vom dem IoT Beispiel ab, solange 
Espressif keine Register Listen für I²C herausbringt.
So einfach ist das.

@Torsten
Was meinst Du mit Art "transparent bridge mode"?

@Ronny
Fimrware? Es ist keine Standard FW.

zum besseren Verständis
anbei einfacher C51 code für das gleiche Driver Display
nur anderer Hersteller.

1
/**********************************************************************************************
2
   Project Code   : LY096BG30-128064
3
   Dot Matrix     : 128X64
4
   Driver IC      : SSD1306Z
5
   Interface      : I2C
6
   MCU          : AT89C52
7
   Revision       : A
8
   Date           : 2010/9/28
9
   Editor         : Frank chen
10
11
   Copyright (c)  : Li Yuan Electronics Co.,Ltd.  
12
   Contact us     : Tel: +86 755 26523608  Email: hellojack2009@hotmail.com
13
**********************************************************************************************/
14
#include "reg52.h"
15
#define high 1
16
#define low 0 
17
/*************Pin Define***************/
18
sbit CS=P1^2;
19
sbit RES=P1^3;
20
sbit DC=P1^4;
21
sbit W_R=P1^5;
22
sbit R_D=P1^6;
23
sbit SCL=P0^0;
24
sbit SDA=P0^1;
25
/****************************************************/
26
void Initial_LY096BG30();
27
void Delay_50ms(unsigned int Del_50ms);
28
void Delay_1ms(unsigned int Del_1ms);
29
void fill_picture(unsigned char fill_Data);
30
void Picture_1();
31
void IIC_Start();
32
void IIC_Stop();
33
void Write_IIC_Command(unsigned char IIC_Command);
34
void Write_IIC_Data(unsigned char IIC_Data);
35
void Write_IIC_Byte(unsigned char IIC_Byte);
36
/***********************Initial code*********************/
37
void Initial_LY096BG30()
38
{
39
  Write_IIC_Command(0xAE);   //display off
40
  Write_IIC_Command(0x20);  //Set Memory Addressing Mode  
41
  Write_IIC_Command(0x10);  //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
42
  Write_IIC_Command(0xb0);  //Set Page Start Address for Page Addressing Mode,0-7
43
  Write_IIC_Command(0xc8);  //Set COM Output Scan Direction
44
  Write_IIC_Command(0x00);//---set low column address
45
  Write_IIC_Command(0x10);//---set high column address
46
  Write_IIC_Command(0x40);//--set start line address
47
  Write_IIC_Command(0x81);//--set contrast control register
48
  Write_IIC_Command(0x7f);
49
  Write_IIC_Command(0xa1);//--set segment re-map 0 to 127
50
  Write_IIC_Command(0xa6);//--set normal display
51
  Write_IIC_Command(0xa8);//--set multiplex ratio(1 to 64)
52
  Write_IIC_Command(0x3F);//
53
  Write_IIC_Command(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
54
  Write_IIC_Command(0xd3);//-set display offset
55
  Write_IIC_Command(0x00);//-not offset
56
  Write_IIC_Command(0xd5);//--set display clock divide ratio/oscillator frequency
57
  Write_IIC_Command(0xf0);//--set divide ratio
58
  Write_IIC_Command(0xd9);//--set pre-charge period
59
  Write_IIC_Command(0x22); //
60
  Write_IIC_Command(0xda);//--set com pins hardware configuration
61
  Write_IIC_Command(0x12);
62
  Write_IIC_Command(0xdb);//--set vcomh
63
  Write_IIC_Command(0x20);//0x20,0.77xVcc
64
  Write_IIC_Command(0x8d);//--set DC-DC enable
65
  Write_IIC_Command(0x14);//
66
  Write_IIC_Command(0xaf);//--turn on oled panel 
67
}
68
/***********************Picture Code**************************/
69
unsigned char code show1[]=
70
{
71
0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFF,0x01,0x01,0x00,0x00,0x00,0x00,0x20,0xF1,
72
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x07,0x19,0xE0,0x10,0x0D,0x03,0x01,0x01,
73
0x10,0xF0,0x00,0x00,0x10,0xF0,0x00,0x00,0x20,0x90,0x90,0x50,0xE0,0x00,0x20,0xF0,
74
0x20,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFF,0x21,0x21,0x21,0x71,
75
0x03,0x00,0x02,0xFF,0x00,0x00,0xE0,0x50,0x50,0x50,0x60,0x00,0x00,0xE0,0x10,0x10,
76
0x10,0x20,0x00,0x10,0xFC,0x10,0x10,0x20,0xF0,0x20,0x10,0x10,0x00,0xC0,0x20,0x10,
77
0x10,0x20,0xC0,0x00,0x20,0xF0,0x20,0x10,0x10,0xE0,0x00,0x20,0xF1,0x00,0x00,0xE0,
78
0x10,0x10,0x10,0x20,0x00,0x00,0x60,0x90,0x90,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
79
0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x06,0x01,0x04,0x07,
80
0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x00,0x00,0x00,
81
0x00,0x03,0x04,0x04,0x02,0x07,0x02,0x00,0x07,0x04,0x04,0x02,0x07,0x04,0x04,0x07,
82
0x04,0x00,0x04,0x07,0x04,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x04,0x04,
83
0x06,0x01,0x04,0x07,0x04,0x00,0x03,0x04,0x04,0x04,0x02,0x00,0x00,0x03,0x04,0x04,
84
0x04,0x02,0x00,0x00,0x07,0x04,0x02,0x04,0x07,0x04,0x00,0x00,0x00,0x01,0x02,0x04,
85
0x04,0x02,0x01,0x00,0x04,0x07,0x04,0x00,0x04,0x07,0x04,0x04,0x07,0x04,0x00,0x03,
86
0x04,0x04,0x04,0x02,0x00,0x00,0x06,0x04,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
87
0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,
88
0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
89
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
90
0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
91
0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
92
0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,
93
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,
94
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
95
0x00,0x00,0x00,0x7F,0x80,0x80,0x80,0x7F,0x00,0x00,0x80,0x00,0x8F,0x90,0x50,0x30,
96
0x1F,0x00,0x7C,0x8A,0x85,0x84,0x78,0x00,0x88,0xFC,0x80,0x88,0xFC,0x88,0x04,0x84,
97
0xF8,0x80,0x00,0x78,0x84,0x84,0x4C,0x00,0x81,0xFF,0x88,0x04,0x84,0xF8,0x80,0x00,
98
0x00,0x00,0x3E,0x41,0x80,0x80,0x80,0x80,0x41,0x3E,0x00,0x80,0xFF,0x80,0x80,0x80,
99
0x80,0x40,0x80,0xFF,0x88,0x88,0x9C,0x81,0x40,0x80,0xFF,0x80,0x80,0x80,0x80,0x41,
100
0x3E,0x00,0x00,0x00,0x00,0x80,0xFF,0x81,0x0E,0x70,0x80,0x70,0x0E,0x81,0xFF,0x80,
101
0x00,0x00,0x78,0x84,0x84,0x84,0x78,0x00,0x00,0x78,0x84,0x84,0x49,0xFF,0x40,0x04,
102
0x7C,0x80,0x80,0x44,0xFC,0x40,0x81,0xFF,0x80,0x00,0x78,0x94,0x94,0x58,0x00,0x00,
103
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x80,0xC0,0x00,
104
0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
105
0x00,0x80,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xC0,0x40,
106
0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
107
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
108
0x00,0x80,0x40,0x40,0x40,0x80,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
109
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x00,
110
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
111
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x71,0x22,0x42,0x44,0x44,0x39,0x00,
112
0x44,0x7E,0x40,0x44,0x7E,0x44,0x02,0x42,0x7C,0x40,0x00,0xEC,0x52,0x52,0x52,0x4E,
113
0x82,0x40,0x7F,0x40,0x00,0x3C,0x4A,0x4A,0x2C,0x00,0x00,0x00,0x00,0x40,0x7F,0x44,
114
0x04,0x04,0x03,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x00,0x02,0x1E,0x60,0x12,0x1E,
115
0x62,0x18,0x06,0x02,0x00,0x3C,0x4A,0x4A,0x2C,0x00,0x44,0x7E,0x44,0x02,0x00,0x00,
116
0x00,0x71,0x22,0x42,0x44,0x44,0x39,0x00,0x02,0x3E,0x40,0x40,0x22,0x7E,0x20,0x04,
117
0xFE,0x24,0x42,0x42,0x3C,0x00,0x04,0xFE,0x24,0x42,0x42,0x3C,0x00,0x40,0x7F,0x40,
118
0x02,0x0E,0x32,0xC0,0x3A,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
119
0x00,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,
120
0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x00,0x01,0x02,0xC2,0x22,0x02,
121
0x81,0x40,0x40,0xC0,0x00,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,
122
0x80,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,
123
0xC0,0x40,0x40,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x80,0x40,0x40,0x40,0xC0,0x00,
124
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0xC2,
125
0x23,0x02,0x00,0x00,0x80,0xC0,0x02,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x80,0x40,
126
0x42,0x42,0xC3,0x00,0x40,0xC0,0x40,0x40,0x80,0x00,0x40,0x40,0xC0,0x40,0x40,0x00,
127
0x00,0x00,0x1D,0x22,0x22,0x22,0x1D,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,0x1D,0x22,
128
0x22,0x22,0x1D,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,0x40,0x38,0x06,0x01,0x00,0x00,
129
0x1F,0x22,0x22,0x22,0x1C,0x00,0x1D,0x22,0x22,0x22,0x1D,0x00,0x1F,0x20,0x20,0x20,
130
0x1F,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,0x80,0x60,0x00,0x00,0x00,0x00,0x20,0x20,
131
0x3F,0x20,0x20,0x00,0x31,0x28,0x24,0x22,0x21,0x00,0x1F,0x20,0x20,0x20,0x10,0x00,
132
0x80,0x60,0x00,0x00,0x00,0x00,0x10,0x20,0x22,0x22,0x1D,0x00,0x40,0x38,0x06,0x01,
133
0x00,0x00,0x04,0x0B,0x08,0x3F,0x28,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x31,0x22,
134
0x22,0x24,0x18,0x00,0x20,0x3F,0x22,0x02,0x01,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,
135
};
136
/**********************************************
137
//IIC Start
138
**********************************************/
139
void IIC_Start()
140
{
141
   SCL = high;
142
   //Delay_us(1);    
143
   SDA = high;
144
   //Delay_us(1);
145
   SDA = low;
146
  // Delay_us(1);
147
   SCL = low;
148
  // Delay_us(1);
149
}
150
151
/**********************************************
152
//IIC Stop
153
**********************************************/
154
void IIC_Stop()
155
{
156
   SCL = low;
157
   //Delay_us(1);
158
   SDA = low;
159
   //Delay_us(1);
160
   SCL = high;
161
   //Delay_us(1);
162
   SDA = high;
163
   //Delay_us(1);
164
}
165
/**********************************************
166
// IIC Write byte
167
**********************************************/
168
void Write_IIC_Byte(unsigned char IIC_Byte)
169
{
170
  unsigned char i;
171
  for(i=0;i<8;i++)    
172
  {
173
    if(IIC_Byte & 0x80)    //1?0?
174
    SDA=high;
175
    else
176
    SDA=low;
177
    //Delay_us(1);
178
    SCL=high;
179
    //Delay_us(1);
180
    SCL=low;
181
    //Delay_us(1);
182
    IIC_Byte<<=1;      //loop
183
  }
184
  SDA=1;
185
  //Delay_us(1);
186
  SCL=1;
187
  //Delay_us(1);
188
  SCL=0;
189
  //Delay_us(1);
190
}
191
/**********************************************
192
// IIC Write Command
193
**********************************************/
194
void Write_IIC_Command(unsigned char IIC_Command)
195
{
196
   IIC_Start();
197
   Write_IIC_Byte(0x78);            //Slave address,SA0=0
198
   Write_IIC_Byte(0x00);      //write command
199
   Write_IIC_Byte(IIC_Command); 
200
   IIC_Stop();
201
}
202
/**********************************************
203
// IIC Write Data
204
**********************************************/
205
void Write_IIC_Data(unsigned char IIC_Data)
206
{
207
   IIC_Start();
208
   Write_IIC_Byte(0x78);      
209
   Write_IIC_Byte(0x40);      //write data
210
   Write_IIC_Byte(IIC_Data);
211
   IIC_Stop();
212
}
213
/********************************************
214
// fill_Picture
215
********************************************/
216
void fill_picture(unsigned char fill_Data)
217
{
218
  unsigned char m,n;
219
  for(m=0;m<8;m++)
220
  {
221
    Write_IIC_Command(0xb0+m);    //page0-page1
222
    Write_IIC_Command(0x00);    //low column start address
223
    Write_IIC_Command(0x10);    //high column start address
224
    for(n=0;n<128;n++)
225
      {
226
        Write_IIC_Data(fill_Data);
227
      }
228
  }
229
}
230
/******************************************
231
// picture
232
******************************************/
233
void picture_1()
234
{
235
  unsigned char x,y;
236
  unsigned int i=0;
237
  for(y=0;y<8;y++)
238
    {
239
      Write_IIC_Command(0xb0+y);
240
      Write_IIC_Command(0x00);
241
      Write_IIC_Command(0x10);
242
      for(x=0;x<128;x++)
243
        {
244
          Write_IIC_Data(show1[i++]);
245
        }
246
    }
247
}
248
/***********************Delay****************************************/
249
void Delay_50ms(unsigned int Del_50ms)    //
250
{
251
  unsigned int m;
252
  for(;Del_50ms>0;Del_50ms--)
253
    for(m=6245;m>0;m--);
254
}
255
256
void Delay_1ms(unsigned int Del_1ms)    //
257
{
258
  unsigned char j;
259
  while(Del_1ms--)
260
  {  
261
    for(j=0;j<123;j++);
262
  }
263
}
264
/*******************************Main*******************************/
265
void main(void)
266
{
267
  RES=0;
268
  Delay_1ms(10);
269
  RES=1;
270
  Delay_1ms(10);  
271
  R_D=0;      //In I2C mode, they should be connected to GND in hardware.
272
  W_R=0;      //
273
  DC=0;      //
274
  CS=0;      //
275
  Initial_LY096BG30();
276
  Delay_1ms(5);
277
  while(1)
278
  {
279
    fill_picture(0xff);  Delay_50ms(100);
280
    fill_picture(0xf0);  Delay_50ms(100);
281
    Picture_1();    Delay_50ms(200);
282
  }
283
}

von Peter L. (localhost)


Lesenswert?

Hast du ein SSD1306 am ESP am laufen?
Wenn ja, kannste mal code posten?
Bei mir bleibt das Display schwarz. :x

von r_u_d_i (Gast)


Lesenswert?

Peter L. schrieb:
> Hast du ein SSD1306 am ESP am laufen?
> Wenn ja, kannste mal code posten?
> Bei mir bleibt das Display schwarz. :x
Eröffne mal einen Thread zu dem Problem und zeig mal Deinen Code.


Sammelbestellung:
Die Sammelbestellung schliesst sich hier.
Weiteren Ablauf dann per PM.
lg rudi ;-)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

R. W. schrieb:
> Die technischen Fragen wären besser im ESP8266 Thread aufgehoben?

Davon gibt's inzwischen viele, meinst Du einen bestimmten? Da das Thema 
Sammelbestellung durch ist und ich noch Antworten schuldig bin, poste 
ich trotzdem nochmal hier.

R. W. schrieb:
>> kann der ESP8266 direkt I²C per AT-Kommando?
> Da muss ich nachfragen wie die Frage gemeint ist Torsten.
> At Command und I²C passen nicht so recht in meinem Kopf.

Na z.B. ein ATI2CWRITE=3,111 könnte 3 Bytes erwarten und die an die 
I²C-Adresse 111 senden.

R. W. schrieb:
> was ist heutzutage noch normal?
> Was meinst Du mit Art "transparent bridge mode"?

Sorry, der Begriff war wohl eh falsch. Ich meinte: Kann man die 
AT-Kommandos auch per Telnet schicken, statt über den UART, um den ESP 
standalone zu benutzen? Mit "normal" meine ich, ohne eigene Firmware 
flashen zu müssen, also im Auslieferungszusand. Aber die Frage hat sich 
m.E. geklärt:

   Der ESP lässt sich im Auslieferungszusand nicht standalone nutzen .

R. W. schrieb:
> einfach die I²C Pins definieren in der Firmware Erstellung. …
> So einfach ist das.

Na gut, dann muss ich da wohl durch, vielen Dank (doppelt unterstrichen) 
für Deine Tipps!

von R. W. (Gast)


Lesenswert?

Torsten C. schrieb:
> R. W. schrieb:
>> Die technischen Fragen wären besser im ESP8266 Thread aufgehoben?
>
> Davon gibt's inzwischen viele, meinst Du einen bestimmten?

das stimmt ;-)
na ja - den ellenlangen halt -
vieleicht ist es wirklich besser man macht mal einen cut
und eröffnet einen nur für FW Technik?

> R. W. schrieb:
>>> kann der ESP8266 direkt I²C per AT-Kommando?
>> Da muss ich nachfragen wie die Frage gemeint ist Torsten.
>> At Command und I²C passen nicht so recht in meinem Kopf.
>
> Na z.B. ein ATI2CWRITE=3,111 könnte 3 Bytes erwarten und die an die
> I²C-Adresse 111 senden.

Als 0815 FW noch nicht Torsten, aber Ja  - wenn man die selber macht:
nehme jetzt anstatt TTW jetzt SPI her, ist der selbe Ablauf:
z.B. jetzt mit dem SPI Beispiel und dem MCP23S17

kann man einrichten so wie du das andenkst, bist schon richtig,
lesen. schreiben etc..nehme deine Fährte auf und modeliere um:

AT+SPIWRITE=3,213
in dem Fall dann für MCP23S17 Device 3 ( A2=0 A1=1 A0=1 ) den WERT 213 
schreiben ( 1 1 0 1 0 1 0 1 )

oder wie du vorgibst
3 Byte an Adresse 111
dann muss die Syntax klar sein wie du die 3 Byte eingeben willst
also entweder bestimmter Delimeter oder einfach Leerzeichen

AT+I2CWRITE=3,111
> 29 211 21
SEND OK

ok?

da kann man ein ganzes Protokoll anlegen.
von der Init bis zu den Regsitern und den Datenaustausch.

geb dir demnächst das beispiel vor, mit SPI und dem MCP23S17
ich werde dann an den PortA eine 8fach Relais Karte anstecken
und über
AT+SPIWRITE=3,213

5 Relais High
3 Relias Low
schalten

oder

wenn du ein LCD anschliesst

AT+SPIWRITE=3,65

ein 'A' schreiben

oder dann mit einem Array von Zeichen ganze Wörter usw.

das gleiche geht auch mit TTW

>
> R. W. schrieb:
>> was ist heutzutage noch normal?
>> Was meinst Du mit Art "transparent bridge mode"?
>
> Sorry, der Begriff war wohl eh falsch. Ich meinte: Kann man die
> AT-Kommandos auch per Telnet schicken,

Ja - das macht auch Sinn,
wenn du die Baudrate ändern willst
dann machst du das einfach per Telnet über WIFI
und hast das Problem nicht mit dem nachstellen der Baudrate am UART.
Das mach ich z.B. mit Debug Processing so, wenn man spezielle Baudraten 
braucht und anderes..

Du kannst alle Protokolle mit nur einer offenen Socket bedienen,
man muss nur auf den Request eben entsprechend reagieren.

wenn ein "/GET reinkommt dann antwortet er mit HTTP
wenn ein "/Telnet reinkommt dann antwortet er mit einer Telnetsitzung
wenn ein "/TCP reinkommt das vereinbart ist, dann antwortet er eben so 
darauf

Ich nehm grundsätzlich dafür eine Socket her, das spart mir den Umgang 
mit den Connection's[]

> statt über den UART, um den ESP
> standalone zu benutzen? Mit "normal" meine ich, ohne eigene Firmware
> flashen zu müssen, also im Auslieferungszusand. Aber die Frage hat sich
> m.E. geklärt:
>
>    Der ESP lässt sich im Auslieferungszusand nicht standalone nutzen .

na ja - wenn du dir eine FW für 10000 Module wünscht die Standalone so 
und so funktionieren soll, dann wirst du eine bekommen ;-)

bei 9999 nicht ;-)

na ja .. ist VHB ;-)

Aber das Thema Standalone:
Wenn Du einen externen MCU für die Bedienung verwendest dann kannst du 
ja AT Sequenzen erstellen der dann zum Stanalone führt..

>
> R. W. schrieb:
>> einfach die I²C Pins definieren in der Firmware Erstellung. …
>> So einfach ist das.
>
> Na gut, dann muss ich da wohl durch, vielen Dank (doppelt unterstrichen)
> für Deine Tipps!

Hört sich alles schwer an - ist aber im Grunde nicht anders wie bei 
anderen µC auch. Da gehst Du durch wie Messer durch Butter - bin mir 
sicher! Wenns eckt - durchfragen -

lg rudi ;-)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Sorry, von "Ja - das macht auch Sinn" bis "das spart mir den Umgang
mit den Connection's" habe ich kein einziges Wort verstanden.

R. W. schrieb:
> wenn du die Baudrate ändern willst
> dann machst du das einfach per Telnet über WIFI
> und hast das Problem nicht mit dem nachstellen der Baudrate am UART.

Wir reden also davon, dass der ESP standalone läuft und weder an RX noch 
an TX was angeschlossen ist, richtig?

R. W. schrieb:
> Du kannst alle Protokolle mit nur einer offenen Socket bedienen,
> man muss nur auf den Request eben entsprechend reagieren.

Mit der Firmware im Auslieferungszustand? Wie das?

Mit neuer Firmware könnte man alles, das ist ja klar, darüber muss man 
nicht reden.

R. W. schrieb:
> Du kannst alle Protokolle mit nur einer offenen Socket bedienen,
> man muss nur auf den Request eben entsprechend reagieren.

Klar, genau so mache ich das ja, über RX/TX auf dem ATTiny.

Aber ich will ja "AT-Kommandos per Telnet" ^^ schicken, damit ich sie 
nicht über RX/TX schicken muss und Du hast "Ja - das macht auch Sinn" 
geantwortet. Aber wie soll das gehen, außer mit selbst geschriebener 
Firmware?

von r_u_d_i (Gast)


Lesenswert?

;-) ;-)

ich denke wir reden aneinander vorbei ;-)
..

Torsten C. schrieb:
> Sorry, von "Ja - das macht auch Sinn" bis "das spart mir den Umgang
> mit den Connection's" habe ich kein einziges Wort verstanden.
>
> R. W. schrieb:
>> wenn du die Baudrate ändern willst
>> dann machst du das einfach per Telnet über WIFI
>> und hast das Problem nicht mit dem nachstellen der Baudrate am UART.
>
> Wir reden also davon, dass der ESP standalone läuft und weder an RX noch
> an TX was angeschlossen ist, richtig?

ok standalone -
der esp bekommt strom und macht sein ding
- tcp  http  udp server, port starten und auf was warten
- tcp  http  udp client, port starten und mit was verbinden
- mit rx tx angeschlossenen µC kommunizieren nach einem bestimmten 
Ablauf

die ersten beiden sachen gehen nur über eine eigene FW
das drittte geht über AT Commands
die ersten beiden sachen gehen auch mit Standard FW
dazu muss aber dann am rx/tx angeschlossener µC Befehle absetzen
oder jemand am terminal.

>
> R. W. schrieb:
>> Du kannst alle Protokolle mit nur einer offenen Socket bedienen,
>> man muss nur auf den Request eben entsprechend reagieren.
>

*****
> Mit der Firmware im Auslieferungszustand? Wie das?

ich sag erschrechkend ja im auslieferungszustand
wenn du den µC entsprechend die Befehle absetzen lässt
also serversocket öffnen wenn sich jemand über wifi connected
dann den request auswerten und antworten
eben wie ein http server der eben auf dem µC läuft
und die verbindung über den ESP als WIFi nutzt.


>
> Mit neuer Firmware könnte man alles, das ist ja klar, darüber muss man
> nicht reden.

ok.

>
> R. W. schrieb:
>> Du kannst alle Protokolle mit nur einer offenen Socket bedienen,
>> man muss nur auf den Request eben entsprechend reagieren.
>
> Klar, genau so mache ich das ja, über RX/TX auf dem ATTiny.

Wie jetzt?
Paar zeilen vorher ;-) *****
war dir das nicht bewusst ;-)
..
ok

>
> Aber ich will ja "AT-Kommandos per Telnet" ^^ schicken, damit ich sie
> nicht über RX/TX schicken muss

da brauchst du eine eigene FW


> und Du hast "Ja - das macht auch Sinn"
> geantwortet. Aber wie soll das gehen, außer mit selbst geschriebener
> Firmware?

das geht nur mit FW die Telnet unterstützt Torsten.
Aber - jetzt kommt das grosse Aber:
Was willst du machen?
a) Den ESP ( GPIO schalten, I2C, SPI walten.. )  über Telnet steuern?
b) Den Attiny  über Telnet steuern?
c) Den Attiny als Telnet Server laufen lassen und den ESP nur als TCP 
Schnittstelle nutzen und den ESP auf AT Commands über diese WIFI 
Schnittstelle steuern?

a)
dazu braucht es eine Telnet FW

b)
dazu braucht es eine FW für den Attiny

c)
dazu braucht es AT Command auf dem ESP
dazu braucht es eine FW für den Attiny

lg rudi ;-)

mit Ja - das macht durchaus Sinn ist das so gemneint:

Du hast einen ganz speziellen Baustein auf Seriel mit einer Baudrate die 
nur der Baustein versteht, aber kein Terminal.
Du hast eine FW die variable Baudraten Einstellung unterstützt.
Gibt es sogar als Standard FW oder eine eigene FW.

Standard FW:
Jetzt schaltet du über wifi die baudrate über den Attiny der dir die 
Baudraten AT Command absetzt der Baustein kann jetzt über wifi 
angesprochen werden "transparenter Mode"

Wenn du wieder normale Baudrate brauchst dann setzt über wifi den close 
befehl für den transparent mode ab oder machst einen rest oder wie auch 
immer - der standard mode ist wieder da - Das ist aber Käse weil man 
einen switch braucht zwischen den beiden attiny - baustein, und pins 
fürs reseten
..
also eigene FW, die über wifi das ganze steuert.
Über eine eingehende Telnet verbindung z.b.
der Telnet Server läuft dann direkt auf dem ESP.
und den Attiny braucht es dann nicht mehr.

Mit Standard FW geht nur das - was in der FW zur Verfügung steht,
es geht:
Server starten
Serber stopen
auf Request reagieren
Response senden
das muss dann im Zusammenspiel vom Attiny kommen wenn es autom laufen 
soll.


so der arme oled thread wurde jetzt sehr missbraucht

;-)
..

von Opeldesign (Gast)


Lesenswert?

Es gibt Leute die schaffen es lange Threads mit kurzen Inhalten zu 
schreiben. ;) ;) ;)

von r_u_d_i (Gast)


Lesenswert?

so ist es - die schaffen es wirklich!
;-)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Opeldesign schrieb:
> Es gibt Leute die schaffen es lange Threads mit kurzen Inhalten zu
> schreiben

Mir tut es sehr leid um Rudis Zeit, die er hier mit fraglichem Sinn 
investiert, nur weil wir aneinander vorbei reden.

Ursprünglich ich schrieb:
> ESP8266 mit I2C: Wie geht das? GPIOs aus der Ferne einzeln setzen? Oder
> kann der ESP8266 direkt I²C per AT-Kommando? Das würde doch beides nur …
  … über eine Funktion "AT-Kommandos per Telnet" Sinn machen, die  …
> … doch in der normalen Firmware gar nicht enthalten ist, oder?

Hier hatte ich mich ja falsch ausgedrückt, daher die Ersetzung; das war 
ja inzwischen geklärt; sorry nochmal.

Mit "Sinn machen" meine ich: Falls ich einen ATTiny für RX/TX brauche, 
dann kann ich SPI, I²C usw. auch auf dem ATTiny nutzen und könnte die 
Firmware im Auslieferungszustand belassen.

    Alles andere macht doch keinen Sinn !

Rudi, als Du dann auf mein "Kann man  AT-Kommandos auch per Telnet 
schicken" mit "Ja - das …"^^ geantwortet hast, dachte ich, Du meinst, es 
ginge nun doch irgendwie mit der normalen Firmware standalone 
AT-Kommandos per Telnet zu schicken.

Also Eigentlich wäre es ganz einfach gewesen, Frage -> Antwort:

Als Frage Torsten C. schrieb:
> Kann man die AT-Kommandos auch per Telnet schicken, statt
> über den UART, um den ESP standalone zu benutzen?

Als Antwort r_u_d_i schrieb:
> da brauchst du eine eigene FW

So, nun ist ja vielleicht alles klar und wir brauchen den Thread nicht 
mehr missbrauchen. Danke nochmal für die Infos.

: Bearbeitet durch User
von R. W. (Gast)


Lesenswert?

Torsten C. schrieb:
> Also Eigentlich wäre es ganz einfach gewesen, Frage -> Antwort:
>
> Als Frage Torsten C. schrieb:
>> Kann man die AT-Kommandos auch per Telnet schicken, statt
>> über den UART, um den ESP standalone zu benutzen?
>
> Als Antwort r_u_d_i schrieb:
>> da brauchst du eine eigene FW

Oder vorschlagen was du brauchst,
dann fliesst das in die nächste AT Version ein wenn es Sinn macht.
Und es geht dann Standalone
;-)

btw:
Der Tip mit dem Touch+Android !!!SUPER!!!
Heut angekommen. Hab nachgeordert ;-) Bin dabei die erste App zu machen.
Was ich nicht gewusst habe, ist, dass man den Bildschirm auch an den PC 
hängen kann und den Touch auch - man kann mit dem HDMI Switch hin und 
herschalten. ...bla bla bla ;-) weisst alles selber - bin begeistert!
Das tolle: Voller USB OTG Support - alles hab ich noch nicht durch - 
aber
denke da geht alles.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

R. W. schrieb:
> Oder vorschlagen was du brauchst,
> dann fliesst das in die nächste AT Version ein wenn es Sinn macht.

❶ Der ESP muss sich per AT-Kommando über RX/TX in einen Modus
   bringen lassen, um danach AT-Kommandos per Telnet entgegen zu nehmen;
   Z.B. „AT+TELNETAT=22“ und er horcht auf Port 22 nach AT-Kommandos.
❷ Der ESP muss sich die letzte Einstellung für TELNETAT im EEPROM
   merken und nach einem Reset wieder herstellen.
❸ Die verfügbaren Pins müssen per AT-Kommando nutzbar sein: GPIO,
   I²C, SPI, PWM, ADC. Beim ESP-01 vielleicht nur ein GPIO (Taster,
   Relais, …), beim ESP-12 vielleicht alles, vielleicht sogar frei
   konfigurierbar.

Das ist dann zwar alles ohne Verschlüsselung, aber es geht, um dafür ein 
PCB zu produzieren und zu testen. Später kann man immer noch neue FW mit 
einem verschlüsselten Nicht-AT-Protokoll erstellen (z.B. JSON per HTTPS 
+ Login-Passwort).

Ich brauche aber weder 999 noch 1000 Stück davon. ;-)

Und das passt dann auch wieder zum Thread-Titel:

   "OLED 0.96 I2C für den ESP8266"

: Bearbeitet durch User
von r_u_d_i (Gast)


Lesenswert?

> Und das passt dann auch wieder zum Thread-Titel:
>
>    "OLED 0.96 I2C für den ESP8266"


na dann wenns passt ;-)


Torsten C. schrieb:
> R. W. schrieb:
>> Oder vorschlagen was du brauchst,
>> dann fliesst das in die nächste AT Version ein wenn es Sinn macht.
>
> ❶ Der ESP muss sich per AT-Kommando über RX/TX in einen Modus
>    bringen lassen, um danach AT-Kommandos per Telnet entgegen zu nehmen;
>    Z.B. „AT+TELNETAT=22“ und er horcht auf Port 22 nach AT-Kommandos.

okay -
nachgefragt:
Über Telnet dann gleiche AT Syntax oder Directory wie bei den Routern?
( finde ich unpraktisch )

also:
AT+CIFSR
es kommen die IP Adresss
oder
cd CIFSR
hier stehen die IP Adressen als Eintrag


> ❷ Der ESP muss sich die letzte Einstellung für TELNETAT im EEPROM
>    merken und nach einem Reset wieder herstellen.

das ist das wenigste

> ❸ Die verfügbaren Pins müssen per AT-Kommando nutzbar sein:
> GPIO,
CD GPIO
GPIO> cd 12
GPIO>12> high
GPIO>12>dir
GPIO>12>high
GPIO>12> low
GPIO>12>dir
GPIO>12>low

AT+GPIO12=1
AT+GPIO12=0
AT+GPIO12?
GPIO12=0

> I²C,

Anforderungen?
..

> SPI,

..

> PWM,

..


> ADC.

AT+CWADC
112mV


>    Beim ESP-01 vielleicht nur ein GPIO (Taster,
>    Relais, …), beim ESP-12 vielleicht alles, vielleicht sogar frei
>    konfigurierbar.
>
> Das ist dann zwar alles ohne Verschlüsselung, aber es geht, um dafür ein
> PCB zu produzieren und zu testen. Später kann man immer noch neue FW mit
> einem verschlüsselten Nicht-AT-Protokoll erstellen (z.B. JSON per HTTPS
> + Login-Passwort).


loop AES 256?

http://sourceforge.net/projects/loop-aes/
http://loop-aes.sourceforge.net/aespipe/

( arduino ect )
https://github.com/qistoph/ArduinoAES256
http://www.literatecode.com/aes256


>
> Ich brauche aber weder 999 noch 1000 Stück davon. ;-)

ja dann .. müssen wir durch ;-)

eins nach dem anderen IDE ...

Jetzt testen wir mal die neue 0.9.5 ob die jetzt so läuft wie wir die 
haben wollen, wenn das Fundamente hat, dann rentiert sich der Aufwand 
und dann erstellen wir eine community fw damit alle was davon haben.


lg rudi ;-)

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

r_u_d_i schrieb:
> gleiche AT Syntax oder Directory wie bei den Routern?

Zu "cd" (Directory wie bei den Routern) habe ich keine Infos gefunden.

Hast Du dazu einen Link?

Wir können auch im 
Beitrag "Re: Wlan2Serial Modul für 5 euro" weiter 
machen. Nun ist gerade alles durcheinaner und ich bin Schuld. :-(

von r_u_d_i (Gast)


Lesenswert?

Torsten C. schrieb:
> r_u_d_i schrieb:
>> gleiche AT Syntax oder Directory wie bei den Routern?
>
> Zu "cd" (Directory wie bei den Routern) habe ich keine Infos gefunden.
>
> Hast Du dazu einen Link?

z.B.
http://www.su4me.de/hdw_router_lancom.html

ganz unten

>
> Wir können auch im
> Beitrag "Re: Wlan2Serial Modul für 5 euro" weiter
> machen. Nun ist gerade alles durcheinaner und ich bin Schuld. :-(

da gehören immer zwei!..

ok - also dann poste ich nicht mehr hier ;-)

von Ronny S. (phoenix-0815)


Lesenswert?

r_u_d_i schrieb:
> Jetzt testen wir mal die neue 0.9.5 ob die jetzt so läuft wie wir die
> haben wollen, wenn das Fundamente hat, dann rentiert sich der Aufwand
> und dann erstellen wir eine community fw damit alle was davon haben.

Und Los !

Gruß

von r_u_d_i (Gast)


Lesenswert?

Hi

endlich da.

A) SPI OLED:
http://www.electrodragon.com/product/0-96-12864-oled-display-iicspi/

VOll Display - keine Balkentrennung wie hier:
http://www.ebay.de/itm/371193175731

Weiss auf Schwarz - eigene Farbfolie dann nach Wahl möglich

5,40 bis 5,80 EUR ab Deutschland sofort verfügbar
es sind zwei verschiedene Paketsendungen mit zwei verschiedene 
Versandkostenanteile daher ca 0,40 eur unterschied.


B) SPI OLED
mit Balkentrennung, zwei farbig
5,40 bis 5,80 EUR ab Deutschland sofort verfügbar
es sind zwei verschiedene Paketsendungen mit zwei verschiedene 
Versandkostenanteile daher ca 0,40 eur unterschied.




Printed / Funktion

GND = GND
VCC = VCC
SCL = CLK
SDA = MOSI
RST = RST
D/C = D/C

CS ist bereits kontaktiert auf GND

Arduino Sketch für den Käufer auf Anfrage per PM.
ESP8266 FW ebenfalls für den Käufer auf Anfrage per PM.

Werde das heute Abend noch mal pushen und Bilder dazustellen.

lg
rudi ;-)

von V. K. (fragender)


Lesenswert?

r_u_d_i schrieb:
> A) SPI OLED:
> http://www.electrodragon.com/product/0-96-12864-oled-display-iicspi/
>
> VOll Display - keine Balkentrennung wie hier:
> Ebay-Artikel Nr. 371193175731
>
> Weiss auf Schwarz - eigene Farbfolie dann nach Wahl möglich

Hy,

hätte da auch Interesse drann wie ist das mit der Firmware dazu zum ESP 
gibt es die auch als Souce Code dazu ?

lg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.