How to design a WiFi LED Matrix Stock Ticker

So entwerfen Sie einen WiFi-LED-Matrix-Börsenticker

Die Idee wird vom KundenAlan Zhao unterstützt

Einleitung

Wir werden einen Börsenticker erstellen, der die Echtzeitpreise von Aktien , Kryptowährungen , ETF und Indizes .

Dieser Standardaufkleber besteht aus sechs 8x32 LED-Matrizen, die in einem Muster aus 2 Spalten x 3 Reihen angeordnet sind. Die LED-Matrizen werden dann auf einem 3D-gedruckten Rahmen montiert. Kostenloser Basic-Plan von Twelve Data ist erforderlich, um Aktienkurse in Echtzeit über REST API abzurufen. Als Controller wird Wemos D1 mini verwendet.

Ersatzteile

Stromverbrauch

Jede LED verbraucht etwa 20 mA und 0,1 Watt Strom pro Farbe. Für alle 3 Farben (RGB) verbraucht eine LED bei voller Leistung (in Weiß bei 100 % Helligkeit) etwa 60 mA und 0,3 Watt. Wir haben insgesamt 1.536 LEDs (256 pro Matrix x 6), daher der Gesamtstromverbrauch beträgt 92160 mA oder 92 Ampere (1.536 LEDs x 60 mA pro LED) und 460 Watt (1.536 LEDs x 0,3 Watt pro LED) bei voller Leistung.

Wie Sie sehen, reicht unser 200-Watt- und 50-Ampere-Netzteil nicht für den vollen Stromverbrauch aus. Der Hersteller gibt an, dass die LED-Matrix-Leiterplatte nicht dafür ausgelegt ist, der Hitze standzuhalten, die sie bei voller Leistung erzeugt, AKA Dies ist kein Gerät zur Beleuchtung . Daher sollten Sie es NIEMALS mit voller Leistung verwenden. Wir können den Stromverbrauch senken, indem wir die LED-Helligkeit und die Anzahl der gleichzeitig leuchtenden LEDs reduzieren.

Montagerahmen

Die LED-Matrix besteht aus flexiblem Material. Um alle 6 Matrizen miteinander zu verbinden, ist ein Rahmen zur Unterstützung erforderlich. Ich habe sechs Halterungen entworfen und 3D-gedruckt, die als Rahmen miteinander verbunden werden sollen. Ich habe der Halterung Durchgangskanäle hinzugefügt, damit die Drähte darin aufgefangen und sauber verlegt werden können. Zur Montage einer LED-Matrix werden zwei Halterungen benötigt; insgesamt werden 12 Halterungen benötigt. Die Halterungen werden dann mit einigen M3-Schrauben, Muttern und Unterlegscheiben zusammengeschraubt. Zum Zusammenschrauben der Halterungen werden auch Schraubstopfen benötigt. Mit Schraubstopfen können Sie die Halterungen sowohl in Zeilen- als auch in Spaltenausrichtung verbinden. STL-Dateien werden unten bereitgestellt. Zum Drucken ist kein Support erforderlich.

Sobald Sie alles montiert haben, sollte es ungefähr so ​​aussehen wie unten.

Regler

Als Controller kommt WeMos D1 mini zum Einsatz. T5 - Der große Wurf Pin wird für Daten verwendet. Siehe Schaltplan unten.

Montage

WICHTIG: Testen Sie jede LED-Matrix auf Defekte

Testen Sie jede LED-Matrix auf Defekte. Es ist einfacher, die defekten jetzt zu ersetzen, als nachdem sie montiert wurden. Sie möchten sicherstellen, dass es keine toten Pixel gibt und alle Farben richtig leuchten.

Installieren Adafruit NeoMatrix , Adafruit NeoPixel Und ArduinoJson Bibliotheken.

Wählen Sie unter Menü das richtige Board aus Werkzeuge → Platinen → ESP8266 → WeMos D1 R1 .

Um die Farben zu testen, laden Sie den untenstehenden Code auf den Controller hoch und hängen Sie jede LED-Matrix zum Testen an. Entfernen Sie die Kommentarzeichen aus jeder Zeile matrix.fillScreen(....) einzeln zum Testen.

/** * 32x8 LED-Matrix-Qualitätstest * * von MakerAL.com 2021. */ # include <Adafruit_GFX.h> # include <Adafruit_NeoMatrix.h> # include <Adafruit_NeoPixel.h> // // Pins // // D5-Stift # definiere LED_PIN D5 // LED-Board-Konfigurationen # definiere LED_BOARD_WIDTH 32 # definiere LED_BOARD_HEIGHT 8 // // Instanziierte Matrix // https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library // Adafruit_NeoMatrix-Matrix = Adafruit_NeoMatrix ( LED_BOARD_WIDTH, LED_BOARD_HEIGHT, LED_PIN, NEO_MATRIX_TOP + NEO_MATRIX_LEFT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG, NEO_GRB); // Farben Struktur RGB { Byte r; Byte g; Byte b; }; // Definieren Sie einige Farben, die wir häufig verwenden werden. RGB aus = { 0 , 0 , 0 }; RGB-Weiß = { 255 , 255 , 255 }; RGB-Rot = { 255 , 0 , 0 }; RGB-Gelb = { 255 , 255 , 0 }; RGB-Blau = { 0 , 0 , 255 }; RGB-Grün = { 0 , 255 , 0 }; RGB-Blaugrün = { 0 , 255 , 255 }; RGB-Violett = { 255 , 0 , 255 }; RGB-Rosa = { 255 , 74 , 150 }; void setup () { matrix.begin(); matrix.setBrightness( 30 ); matrix.setTextWrap( false ); } void loop () { // Bildschirm löschen, nichts anzeigen //matrix.fillScreen(matrix.Color(aus.r, aus.g, aus.b)); matrix.fillScreen(matrix.Color(rot.r, rot.g, rot.b)); //matrix.fillScreen(matrix.Color(grün.r, grün.g, grün.b)); //matrix.fillScreen(matrix.Color(blau.r, blau.g, blau.b)); //matrix.fillScreen(matrix.Color(weiß.r, weiß.g, weiß.b)); matrix.anzeigen(); Verzögerung( 5000 ); }

LED-Matrizen

LED-Matrizen werden zusammengefügt. Es gibt verschiedene Möglichkeiten, sie zusammenzufügen. Unten sehen Sie, wie ich die sechs LED-Matrizen angeordnet habe. Ich fand, dass die Verkabelung mit dieser Konfiguration einfacher und kürzer ist. Weitere Informationen finden Sie unter Neomarix-Bibliothek .

Rote und schwarze Kabel in der Mitte der LED-Matrix dienen zur Versorgung von verketteten LED-Matrizen mit zusätzlicher Spannung. Aufgrund von Spannungsabfällen können LED-Matrizen eine ungleichmäßige Helligkeit, Flackern und zufällige Farben aufweisen. Abhängig von der Kapazität Ihres Netzteils muss dieser Strom möglicherweise von einem separaten Netzteil kommen.

Der schwierige Teil

Als nächstes habe ich LED-Matrizen vorübergehend mit Kreppband am Rahmen befestigt. Sie werden sehen, dass sich die erste Matrix jetzt in der oberen rechten Ecke befindet, nachdem ich das gesamte Panel umgedreht habe. Um Verwechslungen zu vermeiden, habe ich jede Matrix mit Nummern auf Kreppband markiert.

Jetzt ist es an der Zeit, alles miteinander zu verdrahten. Sie müssen Drahtverlängerungen hinzufügen, um Matrizen zwischen Zeilen und Spalten zu verbinden, da die werkseitig angelöteten Drähte zu kurz sind. Ich habe mich entschieden, JST-Steckverbinder an alle Kabel, damit alles wartbar ist (leider habe ich kein Bild, das das zeigt). Sie können auch die Werkskabel ablöten und längere hinzufügen.

Befestigen Sie die LED-Matrizen noch nicht mit doppelseitigem Klebeband am Rahmen. Laden Sie den endgültigen Code in den folgenden Abschnitten hoch und testen Sie zunächst alles. Auch hier ist es viel einfacher, das Problem jetzt zu beheben, als wenn die LED-Matrizen erst einmal dauerhaft montiert sind. Nun, halbpermanent, mit doppelseitigem Klebeband lässt sich immer noch alles entfernen, aber es wird einfach viel schwieriger.

Wenn alles wie erwartet funktioniert, schneiden Sie das doppelseitige Klebeband in kürzere Streifen, kleben Sie es auf den Rahmen und ziehen Sie es wieder ab. Richten Sie die LED-Matrix sorgfältig an der Halterung aus und kleben Sie sie auf die Bänder. Machen Sie dies jeweils für eine LED-Matrix. Dies wird zeitaufwändig sein. Seien Sie geduldig und achten Sie darauf, dass die Drähte durch die Löcher geführt werden und nicht in den Bändern hängen bleiben.

Aktien-API

Ich fand Zwölf Daten ein großartiger API-Anbieter für Echtzeit-Aktienkurse zu sein. Es unterstützt Aktien, Kryptowährungen, ETFs und Indizes. Ihre kostenloser Basic-Plan ermöglicht 800 Anfragen pro Tag mit maximal 8 Anfragen pro Minute . Mit der richtigen Drosselung könnte ich den ganzen Tag lang Echtzeitpreise abrufen, ohne das Limit zu überschreiten. Jede Symbolsuche wird als eine Anfrage betrachtet, ein Batch-Aufruf von 8 Symbolen entspricht daher 8 Anfragen, was auch die maximal zulässige Anzahl von Anfragen pro Minute ist. Um das Limit von 800 Anfragen pro Tag einzuhalten, kann ich einen Batch-Aufruf von 8 Anfragen auf einem 15-Minuten-Pause für insgesamt 768 Anfragen pro Tag (1.440 Min. pro Tag / 15 Min. x 8 Anfragen).

Ich bin mit einer Aktualisierungsrate von 15 Minuten vollkommen zufrieden. Wenn Sie eine häufigere Aktualisierung der Preise wünschen, reduzieren Sie entweder die Anzahl der Symbole oder zahlen Sie für einen besseren Plan. Ich überlasse Ihnen die Berechnung Timer-VerzögerungMins zu dir.

Melden Sie sich jetzt an für eine Zwölf Daten Konto und holen Sie sich den API-Schlüssel. Lesen Sie API-Dokumentationen hier .

Kodierung

Installieren Adafruit NeoMatrix , Adafruit NeoPixel Und ArduinoJson Bibliotheken.

Wählen Sie unter Menü das richtige Board aus Werkzeuge → Platinen → ESP8266 → WeMos D1 R1 .

/** Börsenticker von MakerAL.com 2021. */ # include <ESP8266WiFi.h> # include <ESP8266HTTPClient.h> # include <WiFiClient.h> # include <Adafruit_GFX.h> # include <Adafruit_NeoMatrix.h> # include <Adafruit_NeoPixel.h> # include <ArduinoJson.h> # definiere ARRAY_SIZE(x) sizeof(x) / sizeof(x[0]) // LED-Datenpin # definiere LED_PIN D5 // LED-Matrix-Konfigurationen # definiere LED_BOARD_WIDTH 32 # definiere LED_BOARD_HEIGHT 8 # definiere LED_TILE_COLUMN 2 # definiere LED_TILE_ROW 3 # definiere LED_BRIGHTNESS 50 // // Konfigurationen starten // // W-LAN Konstante char * ssid = "Ihre-SSID" ; const char * password = "Ihr Passwort" ; // API-Informationen const String apiUrl = "https://api.twelvedata.com/quote" ; const String apiKey = "Ihr API-Schlüssel" ; // Aktiensymbole const String-Symbole [] = { "SPX" , "DJI" , "IXIC" , "ARKK" , "AAPL" , "TSLA" , "DOGE/USD" , "BTC/USD" }; // Tickerintervall und Dauer ohne Vorzeichen lange letzte Zeit = 0 ; ohne Vorzeichen langer TimerDelayMins = 15 ; ohne Vorzeichen langer TickerDurationSecs = 10 ; // // Konfigurationen beenden // // Farben Struktur RGB { Byte r; Byte g; Byte b; }; // Definieren Sie einige Farben, die wir häufig verwenden werden. RGB-Weiß = { 255 , 255 , 255 }; RGB-Rot = { 255 , 0 , 0 }; RGB-Gelb = { 255 , 255 , 0 }; RGB-Blau = { 0 , 0 , 255 }; RGB-Grün = { 0 , 255 , 0 }; RGB-Blaugrün = { 0 , 255 , 255 }; RGB-Violett = { 255 , 0 , 255 }; RGB aus = { 0 , 0 , 0 }; // // Instanziierte Matrix // https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library // Adafruit_NeoMatrix-Matrix = Adafruit_NeoMatrix ( LED_BOARD_WIDTH, LED_BOARD_HEIGHT, LED_TILE_COLUMN, LED_TILE_ROW, LED_PIN, NEO_MATRIX_TOP + NEO_MATRIX_LEFT + NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG + NEO_TILE_TOP + NEO_TILE_LEFT + NEO_TILE_COLUMNS + NEO_TILE_PROGRESSIVE, NEO_GRB + NEO_KHZ800); // WLAN-Client WiFiClient Client; // HTTP-Client HTTPClient http; // API-Ergebnisse DynamicJsonDocument API-Ergebnisse ( 4096 ) ; Konstante int symbolLength = ARRAY_SIZE(symbole); void setup () { Serial.begin( 115200 ); // WLAN-Netzwerk verbindenConnect(); // HTTPS ignorieren //Client->setInsecure(); // Matrix beginnen matrix.begin(); // Matrixinfo showMsg( "Matrixbreite: " + String(matrix.width())); showMsg( "Matrixhöhe: " + String(matrix.height())); } void -Schleife () { playLed(); // Alle X Minuten Bestandsdaten abrufen wenn (letzteZeit == 0 || (millis() - letzteZeit) > (timerDelayMins * 60 * 1000 )) { getStocks(); letzteZeit = millis(); } } void playLed () { // Wenn API-Ergebnisse vorhanden sind // https://arduinojson.org/v6/api/jsondocument/ wenn (!apiResults.isNull()) { // Alle Symbole mit Verzögerung durchgehen für ( uint16_t i = 0 ; i < Symbollänge; i++) { const String-Symbol = Symbole[i]; String-Name = apiResults[Symbol][ "Symbol" ]; name.replace( "/USD" , "" ); const float closePrice = apiResults[symbol][ "schließen" ]; const float Prozentänderung = API-Ergebnisse[Symbol][ "Prozentänderung" ]; showMsg(Name); showMsg(String(Schlusskurs, 5 )); showMsg(String(Prozentänderung, 5 )); showMsg( "--------" ); RGB-Preisfarbe = Prozentänderung > 0 ? Grün: Rot; String Pluszeichen = Prozentänderung > 0 ? "+" : "" ; zeigeAktienpreise(Name, blau, String(Schlusskurs, 3 ), weiß, Pluszeichen + String(Prozentänderung, 3 ) + "%" , Preisfarbe); Verzögerung(TickerDauerSek. * 1000 ); } } } void getStocks () { showMsg( "Aktien abrufen..." ); const String stockUrl = apiUrl + "?symbol=" + (implodeString(symbols, String( "," ))) + "&apikey=" + apiKey; showMsg( "Aktien-URL" ); showMsg(stockUrl); // https://arduinojson.org/v6/how-to/use-arduinojson-with-httpclient/ http.useHTTP10( true ); wenn (http.begin(client, stockUrl)) { int code = http.GET(); wenn (Code == HTTP_CODE_OK) { showMsg( "Ergebnis erhalten:" ); //String-Nutzlast = http.getString(); //showMsg(Nutzlast); // https://arduinojson.org/v6/how-to/deserialize-a-very-large-document/ StaticJsonDocument< 1024 > Filter; Filter [ "Status" ] = true ; für ( uint16_t i = 0 ; i < Symbollänge; i++) { const String Symbol = Symbole[i]; Filter [Symbol] [ "Symbol" ] = true ; Filter [Symbol] [ "Schließen" ] = true ; Filter [Symbol] [ "Prozentänderung" ] = true ; } // Vorherige Ergebnisse löschen apiResults.clear(); // Ergebnisse hier eintragen // Verwenden Sie getStream() statt getString(), um den Speicherverbrauch zu optimieren. // auch Filter anwenden, um RAM-Verbrauch zu minimieren deserializeJson(apiResults, http.getStream(), DeserializationOption::Filter(filter)); const String status = apiResults[ "status" ]; showMsg( "Status:" ); showMsg(status); if (status == "error" ) { showMsg( "Bestände konnten nicht gelesen werden, höchstwahrscheinlich wurde die API-Anforderungsrate erreicht" ); // Vorherige Ergebnisse löschen apiResults.clear(); } } // Verbindung trennen http.end(); } else { showMsg( "Aktien konnten nicht abgerufen werden, wahrscheinlich Netzwerkfehler" ); // Vorherige Ergebnisse löschen apiResults.clear(); } } void showStockPrices (String Zeile1Text, RGB Zeile1Farbe, String Zeile2Text, RGB Zeile2Farbe, String Zeile3Text, RGB Zeile3Farbe) { matrix.fillScreen(matrix.Color(off.r, off.g, off.b)); matrix.setBrightness(LED_HELLIGKEIT); matrix.setTextWrap( false ); // Zeile 1 matrix.setCursor( 0 , 0 ); matrix.setTextColor(matrix.Color(line1Color.r, line1Color.g, line1Color.b)); matrix.print(line1Text); // Zeile 2 matrix.setCursor( 0 , 8 ); matrix.setTextColor(matrix.Color(line2Color.r, line2Color.g, line2Color.b)); matrix.print(line2Text); // Zeile 3 matrix.setCursor( 0 , 16 ); matrix.setTextColor(matrix.Color(line3Color.r, line3Color.g, line3Color.b)); matrix.print(line3Text); } void networkConnect () { WiFi.begin(ssid, password); während (WiFi.status() != WL_CONNECTED) { Verzögerung( 500 ); showMsg( "*" ); } showMsg( "Sie sind mit dem Netzwerk verbunden" ); druckeWifiStatus(); } void printWifiStatus () { // Drucken Sie die SSID des Netzwerks, mit dem Sie verbunden sind. showMsg( "SSID: " + String(WiFi.SSID())); // Drucken Sie die IP-Adresse Ihres WiFi Shields IPAddress ip = WiFi.localIP(); showMsg( "IP Address: " + ipToString(ip)); //Drucke die empfangene Signalstärke lange rssi = WiFi.RSSI(); // -60 dBm und höher, um als gut angesehen zu werden showMsg( "Signalstärke: " + String(rssi) + "dBm" ); } String ipToString ( const IPAddress& ipAddress) { return String(ipAddress[ 0 ]) + String( "." ) + \ String(ipAddress[ 1 ]) + String( "." ) + \ String(ipAddress[ 2 ]) + String( "." ) + \ String(ipAddress[ 3 ]); } const String implodeString ( const String values[], String join) { String string = "" ; für ( uint16_t i = 0 ; i < symbolLength; i++) { string += values[i] + join; } zurückkehren Zeichenfolge ; } void showMsg (String msg) { Serial.println(msg); }

Symbole finden, die unterstützt werden von Zwölf Daten :

Aktualisieren Sie die Variablen unten und laden Sie den Code hoch.

  • SSID - Ihren WLAN-Zugangspunkt
  • Passwort - Ihr WLAN-Passwort
  • API-Schlüssel - Ihren Twelve Data API-Schlüssel
  • Symbole - eine Reihe von Symbolen
  • Timer-VerzögerungMins - Intervall zum Abrufen der Bestandsdaten in Minuten
  • tickerDauerSekunden - Dauer jedes Symbols auf dem Bildschirm in Sekunden
  • // W-LAN Konstante char * ssid = "Ihre-SSID" ; const char * password = "Ihr Passwort" ; // API-Informationen const String apiKey = "Ihr API-Schlüssel" ; // Aktiensymbole const String-Symbole [] = { "SPX" , "DJI" , "IXIC" , "ARKK" , "AAPL" , "TSLA" , "DOGE/USD" , "BTC/USD" }; // Tickerintervall und Dauer ohne Vorzeichen langer TimerDelayMins = 15 ; ohne Vorzeichen langer TickerDurationSecs = 10 ;
  • Stecken Sie das Netzteil IMMER ein, wenn auch das USB-Kabel eingesteckt ist. Sie sollten vermeiden, dass das USB-Kabel Strom zieht, da es keine großen Ströme verarbeiten kann. Eine Überlastung kann USB, Mikrocontroller, LED oder sogar den Computer beschädigen. Wenn Sie im Notfall die Stromversorgung unterbrechen müssen, ziehen Sie zuerst das USB-Kabel und dann das Netzteil ab.
  • Endlich

    Hier ist das Endprodukt. Der Controller passt genau in die Nut des Rahmens. Ich habe auch Heißkleber aufgetragen, um das doppelseitige Klebeband zu verstärken, aber ich fand, das wäre übertrieben.

    Sie können den MakerAL-Börsenticker entweder aufhängen oder auf einen Ständer stellen. Die STL-Datei mit dem 3D-druckbaren Ständer können Sie unten herunterladen. Sie benötigen 4 davon und müssen diese zusammenkleben.

  • Haftungsausschluss

    • LEDs erzeugen Wärme und verbrauchen möglicherweise viel Strom
    • Unzureichende Leistung oder Überlastung führen zum Schmelzen der Drähte und zu einem Brand.
    • LEDs schädigen Ihre Augen und verursachen gesundheitliche Probleme
    • Ich übernehme keine Haftung für Schäden. Die Herstellung erfolgt auf eigene Gefahr.
    • Verweise

Zurück Weiter

Kommentar hinterlassen

3 Kommentare
  • E
    Eric Jones

    My name’s Eric and I just found your site btf-lighting.com.

    It’s got a lot going for it, but here’s an idea to make it even MORE effective.

    Talk With Web Visitor – CLICK HERE https://boostleadgeneration.com for a live demo now.

    Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It signals you the moment they let you know they’re interested – so that you can talk to that lead while they’re literally looking over your site.

    And once you’ve captured their phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation… and if they don’t take you up on your offer then, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.

    CLICK HERE https://boostleadgeneration.com to discover what Talk With Web Visitor can do for your business.

    The difference between contacting someone within 5 minutes versus a half-hour means you could be converting up to 100X more leads today!

    Eric
    PS: Studies show that 70% of a site’s visitors disappear and are gone forever after just a moment. Don’t keep losing them.
    Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
    You have customers waiting to talk with you right now… don’t keep them waiting.
    CLICK HERE https://boostleadgeneration.com to try Talk With Web Visitor now.

    If you’d like to unsubscribe click here http://boostleadgeneration.com/unsubscribe.aspx?d=btf-lighting.com

  • E
    Eric Jones

    Hey, my name’s Eric and for just a second, imagine this…

    - Someone does a search and winds up at btf-lighting.com.

    - They hang out for a minute to check it out. “I’m interested… but… maybe…”

    - And then they hit the back button and check out the other search results instead.

    - Bottom line – you got an eyeball, but nothing else to show for it.

    - There they go.

    This isn’t really your fault – it happens a LOT – studies show 7 out of 10 visitors to any site disappear without leaving a trace.

    But you CAN fix that.

    Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It lets you know right then and there – enabling you to call that lead while they’re literally looking over your site.

    CLICK HERE https://boostleadgeneration.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.

    Time is money when it comes to connecting with leads – the difference between contacting someone within 5 minutes versus 30 minutes later can be huge – like 100 times better!

    Plus, now that you have their phone number, with our new SMS Text With Lead feature you can automatically start a text (SMS) conversation… so even if you don’t close a deal then, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.

    Strong stuff.

    CLICK HERE https://boostleadgeneration.com to discover what Talk With Web Visitor can do for your business.

    You could be converting up to 100X more leads today!

    Eric
    PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
    You have customers waiting to talk with you right now… don’t keep them waiting.
    CLICK HERE https://boostleadgeneration.com to try Talk With Web Visitor now.

    If you’d like to unsubscribe click here http://boostleadgeneration.com/unsubscribe.aspx?d=btf-lighting.com

  • E
    Eric Jones

    Hey, this is Eric and I ran across btf-lighting.com a few minutes ago.

    Looks great… but now what?

    By that I mean, when someone like me finds your website – either through Search or just bouncing around – what happens next? Do you get a lot of leads from your site, or at least enough to make you happy?

    Honestly, most business websites fall a bit short when it comes to generating paying customers. Studies show that 70% of a site’s visitors disappear and are gone forever after just a moment.

    Here’s an idea…

    How about making it really EASY for every visitor who shows up to get a personal phone call you as soon as they hit your site…

    You can –

    Talk With Web Visitor is a software widget that’s works on your site, ready to capture any visitor’s Name, Email address and Phone Number. It signals you the moment they let you know they’re interested – so that you can talk to that lead while they’re literally looking over your site.

    CLICK HERE http://talkwithcustomer.com to try out a Live Demo with Talk With Web Visitor now to see exactly how it works.

    You’ll be amazed – the difference between contacting someone within 5 minutes versus a half-hour or more later could increase your results 100-fold.

    It gets even better… once you’ve captured their phone number, with our new SMS Text With Lead feature, you can automatically start a text (SMS) conversation.

    That way, even if you don’t close a deal right away, you can follow up with text messages for new offers, content links, even just “how you doing?” notes to build a relationship.

    Pretty sweet – AND effective.

    CLICK HERE http://talkwithcustomer.com to discover what Talk With Web Visitor can do for your business.

    You could be converting up to 100X more leads today!

    Eric
    PS: Talk With Web Visitor offers a FREE 14 days trial – and it even includes International Long Distance Calling.
    You have customers waiting to talk with you right now… don’t keep them waiting.
    CLICK HERE http://talkwithcustomer.com to try Talk With Web Visitor now.

    If you’d like to unsubscribe click here http://talkwithcustomer.com/unsubscribe.aspx?d=btf-lighting.com