sâmbătă, 20 iulie 2019

Verificare memorii RAM de tip 4116

    Pentru cei pasionati de vechile calculatoare ZX Spectrum si clonele lor HC85, Cobra, Tim-S, etc, este util un sistem de verificare al memoriilor RAM de tip 4116.
    Acest tip de memorie are nevoie de 3 tensiuni: +12V, +5V, -5V si, desigur masa (GND).
   Ideea unui tester pentru aceste memorii a venit de la colegul meu Dragos, care s-a ocupat de un calculator ZX Spectrum Issue 2, ce a fost achizitionat initial de amicul meu Alex.
   Am gasit pe net o discutie pe un forum de pasionatie de Arcade numit www.ukvac.com/forum/, unde era prezentat un tester de memorii 43922 si 4116
Ceva similar este intr-un forum numit forum.defence-force.org refrindu-se la DRAMARDUINO
   Pe youtube am gasit si un filmulet numit 4116 Arduino Dram Tester
care foloseste informatiile de mai sus, inclusiv programul arduino-93422tester.ino.

   Solutia de alimentare la care ma gandisem eu era aceea a folosirii unei surse de calculator, dar Dragos a venit cu una mai simpla: folosirea tensiunilor de pe placa ZX-ului.
   Am desenat o schema pentru testerul de memorii 4116, in vederea realizarii unui shield pentru Arduino uno:
   Dragos a fost mult mai rapid realizand pe breadboard testerul folosind un Arduino Nano.
   Cu aceasta ocazie a facut si un filmulet, pe care l-am postat pe youtube, sa fie accesibil tuturor, el numindu-se 4116 RAM tester using Arduino
apoi l-am rotit, numindu-l verificare memorii RAM de tip 4116

luni, 8 iulie 2019

Comunicatie radio (LoRa) intre 2 unitati si prezentare date pe server ThingSpeak (partea 2-a)

    In continuarea articolului de prezentare (partea 1) acum voi prezenta pe scurt ce trebuie facut pentru a face functional sistemul.
    Emitatorul se bazeaza pe o placa Arduino Nano, care citeste 3 senzori:
- un senzor de umiditate
- un senzor de temperatura DS18B20
- un senzor de vibratie (sau poate fi un intrerupator, limitator de cursa, plutitor, etc)
    Emitatorul are schema urmatoare, in care apare si un stabilizator de tensiune de 3,3V si modulul LoRa (SX1278):
Montajul de baza al emitatorului arata asa
   Programul folosit este LoRa_Arduino_tx.ino, ce foloseste partea de codare prezentata in articolele:
- Mesaje complexe intre placi Arduino pe comunicatie seriala
- Mesaje complexe intre placi Arduino pe comunicatie seriala (2)
- Mesaje complexe intre placi Arduino pe comunicatie seriala (3)
   Receptorul are 2 parti, una de comunicare dintre receptorul Lora (SX1278) li Arduino, cealata ce comunicate dintre Arduino si ESP8266 (placa WeMos/NodeMCU). Programul pentru placa Arduino este LoRa_Arduino_rx.ino, iar pentru ESP8266, sa transmita la un canal ThingSpeak este Arduino_to_ESP8266.ino.
   Schema receptorului este
iar montajul
    Filmuletul, ce descrie sistemul, este cel din articolul precedent: comunicatie radio (LoRa) intre 2 unitati si prezentare date pe server ThingSpeak

Comunicatie radio (LoRa) intre 2 unitati si prezentare date pe server ThingSpeak (partea 1)

    Pornind de la o solicitarea a prietenului meu, Mihai Brindusoiu, de a transmite niste date de la distanta mare, unde nu exista internet, de exemplu, pe un server IoT, de exemplu ThingSpeak, am cautat impreuna informatii.
    Mihai a achizitionat module LoRa, care, in teorite, cel putin, pot comunica e distanta de kilometri sau zeci de kilometri.
    Pentru inceput am folosit informatiile din articolul Interfacing SX1278 (Ra-02) LoRa Module with Arduino deoarece aceste module au fost achizitionate (SX1278). Se foloseste libraria LoRa,
conectarea fiind foarte simpla pentru teste, fiind similara pentru emitator si receptor, desi nu pare:
- emitator, Arduino Uno si alimentare modul LoRa din el

- receptor, Arduino nano, cu alimentare separata a modulului LoRa:

   Incarcand progamioarele de test ale librarie, vom obtine
 
    Daca se obtin valori similare celor din ultima imagine a unei ferestre de monitorizare seriala, inseamna ca putem trece la pasul urmator, ce ne doream de fapt.
   Pentru a intelege mai bine, vizionati filmuletul comunicatie radio (LoRa) intre 2 unitati si prezentare date pe server ThingSpeak

   Schema sistemului de emisie, contine 3 senzori: unul de temperatura (DS18B20), unul de nivel si unul de vibratie:
    Partea de receptie contine un modul LoRa, o placa de dezvoltare Arduino Nano si  una Wemos D1 Mini pentru comunicare Wi-Fi catre serverul ThingSpeak.
     Cateva poze realizate de Mihai, din timpul testelor, pe circuit provizoriu

   Mihai a realizat cablajele pentru schemele prezentate mai sus
- emitator
- receptor
- ambele
    Le-a echipat pentru teste:
si le-a montat in cutii, pentru o folosire practica

    Continuarea, cu partea de programe si un mic rezumat, se gaseste in partea a 2-a !

luni, 17 iunie 2019

Prezentare si stocare date pe pagina ThingSpeak (3) - folosind Arduino si ESP8266-05 (o mica schimbare)

   Fata de modul de transmitere a unei temperaturi citite de un senzor DS18B20 de catre o placa de dezvoltare Arduino Nano (in cazul de fata este cu microcontroler ATmega168) la un canal ThingSpeak prin comenzi AT date unui modul Wi-Fi de tip ESP8266-05, cum am prezentat in articolul anterior din februarie 2016, acum ma reconectez la reteaua locala Wi-Fi a apartamentului la 20 de iteratii. Tinand cont ca o crestere a numarului ce contorizeaza se face la 5 minute, la 100 minute se va face reconectare, in caz ca pierde legatura, cum era cazul testelor anterioare, cand reconectarea fost facuta prin resetare sau realimentare modul...

    Programul (sketch-ul) folosit acum este ThingSpeak_arduino_esp8266_ds18b20_v2.ino, iar schema este aceeasi ca in articolul anterior
18.06.2019
  In 24 ore nu s-a pierdut nici o conectare, deci suntem pe drumul cel bun
19.06.2019
   In sfarsit, am gasit si o "buba" si faptul ca s-a reconectat dupa o ora de inactivitate
18.7.2019
    Pentru a nu apare si probleme de conectare datorita lui ESP8266, am pus sa am si o resetare periodica prin comanda AT+RST, dupa cum se vede in programul ThingSpeak_arduino_esp8266_ds18b20_v3.ino !