
Manao ahoana daholo! Hanazava amin'ny antsipiriany ny fomba fametrahana ny fanaraha-maso lavitra ny môdioly esp8266 amin'ny alàlan'ny fampiharana ao anatin'ny 20 minitra monja ity lahatsoratra ity. Android amin'ny alàlan'ny protokol MQTT.
Ny hevitra momba ny fanaraha-maso lavitra sy ny fanaraha-maso dia nampientanentana hatrany ny sain'ny olona liana amin'ny elektronika sy ny fandaharana. Rehefa dinihina tokoa, ny fahafahana mandray na mandefa ny angona ilaina amin'ny fotoana rehetra, na inona na inona ny toerana misy anao, dia manome fahafahana be. Ao amin'ny lahatsoratra teo aloha и ) Niezaka nandinika safidy mora vidy sy somary tsotra aho amin'ny fampiharana ny fanaraha-maso lavitra ny microcontrollers amin'ny alàlan'ny Internet. Na izany aza, ny fotoana sy izao tontolo izao dia tsy mijanona - ny fandrosoana dia manohy ny hetsika tsy azo ihodivirana. Nandritra io fotoana fohy io, ny maody esp8266 dia nahazo laza be, izay, noho ny vidiny ambany sy ny Wi-Fi naorina, dia lasa iray amin'ireo singa fototra amin'ny Smart Home.
Amin'izao fotoana izao, MQTT no protocole famindrana angon-drakitra mandroso sy malaza indrindra eo amin'ny fitaovana tsirairay ao anatin'ny rafitra Smart Home. Manana tombony maromaro izy io raha oharina amin'ny protocols hafa:
- ambany fanjifana fifamoivoizana;
- misokatra foana ny fifandraisana eo amin'ny mpanjifa sy ny mpizara;
- tsy mampiditra ny fantsona Internet;
- tsy fisian'ny fahatarana amin'ny fandefasana angon-drakitra;
- rafitra mety amin'ny famandrihana lohahevitra;
Izany rehetra izany dia ahafahana manara-maso sy mifehy amin'ny fotoana tena izy. Na izany aza, ny MQTT dia mitaky ny mpizara azy manokana, izay miasa ho mpanelanelana eo amin'ny mpanjifan'ny tambajotra. Misy fomba roa hamoronana mpizara anao manokana na hampiasa serivisy an'ny antoko fahatelo.
Ny rafitra fanaraha-maso voalaza dia misy singa roa lehibe: mpizara MQTT (matetika iray monja) sy mpanjifa, izay mety ho maromaro. Amin'ny tranga misy antsika, ny mpanjifa dia ho fampiharana miasa amin'ny Android ary ny môdioly esp8266 mihitsy.
Ny algorithm fiasan'ny rafitra dia toy izao manaraka izao. Mifandray amin'ny mpizara ny mpanjifa ary avy hatrany aorian'ny fifandraisana, ny tsirairay amin'izy ireo dia misoratra anarana amin'ny lohahevitra mahaliana azy. Ny fifandraisana rehetra eo amin'ny mpanjifa dia mandalo amin'ny serivisy, izay mamindra ny angona amin'ny mpanjifa hafa mifototra amin'ny famandrihana azy.
Mpizara MQTT.
Amin'ny tranga misy antsika dia hampiasa serivisy tena mety izay manana drafitra tarif maimaim-poana (Cute Cat) izay handrakotra tanteraka ny filana amin'ny fampiharana ny rafitra an-trano marani-tsaina kely ao an-trano.

Andao hisoratra anarana amin'ny tranokala ary haka ny angon-drakitra ilaina hidirana amin'ny mpizara. Rehefa manamboatra mpanjifa ianao dia tsy maintsy mampiasa seranan-tsambo mahazatra (tsy misy SSL sy TLS).

Prilozhenie na Android.
Ny fampiharana ataontsika dia ho toy ny tontonana fanaraha-maso ho an'ny microcontroller, ary handray sy hampiseho ny fampahalalana rehetra azo avy amin'ny esp8266 ihany koa.
Ny fampiharana dia antsoina ary mpanjifa mqtt efa vonona miaraka amin'ny widgets tena mora ampiasaina. Azonao atao ny mijery ny horonan-tsary raha mila fanazavana fanampiny momba ny fampiasana ny app.
Esp8266.
Ny maodely dia tselatra ao amin'ny tontolon'ny fandaharana Arduino, na izany aza, tiako ny manamarika fa ny module dia manana olana amin'ny firmware amin'ny dikan-teny farany amin'ny Arduino, noho izany dia manoro hevitra aho ny hampiasa ny version 1.6.4.
Ohatra, ny LED (8266 pins) sy ny mari-pana sensor ds5b18 (20 pins) dia mifandray amin'ny esp2.
Satria ilaina ny mandray angon-drakitra hifehezana ny LED, aorian'ny fampifandraisana, esp dia tsy maintsy misoratra anarana amin'ny lohahevitra "test / led" mifanaraka amin'izany, raha tsy izany dia handalo amin'ny microcontroller-nay ny angon-drakitra nalefa rehetra.
Tsy mila famandrihana ianao handefasana angon-drakitra momba ny mari-pana, fa rehefa mandefa sanda mari-pana ianao dia tsy maintsy mamaritra ny lohahevitra izay halehan'ity data ity.
Ity ambany ity ny sketch misy fanehoan-kevitra amin'ny antsipiriany.
Sketch Esp8266_mqtt.ino// Светодиод подлкючен к 5 пину
// Датчик температуры ds18b20 к 2 пину
#ao anatin'izany
#ao anatin'izany
#ao anatin'izany
#ao anatin'izany
#farito ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const char *ssid = "AIRPORT"; // Anaran'ny teboka fidirana WiFi
const char *pass = "PASSWORD"; // Tenimiafina avy amin'ny teboka fidirana
const char *mqtt_server = "server"; // Anaran'ny mpizara MQTT
const int mqtt_port = 11140; // Seranana hifandraisana amin'ny mpizara MQTT
const char *mqtt_user = "Miditra"; // Log avy amin'ny mpizara
const char *mqtt_pass = "Pass"; // Tenimiafina mpizara
#farito BUFFER_SIZE 100
bool LedState = diso;
int tm=300;
mitsingevana temp=0;
// Fampiasana fandraisana angona avy amin'ny mpizara
void callback(const MQTT::Publish&pub)
{
Serial.print(pub.topic()); // mamoaka ny anaran'ny lohahevitra mankany amin'ny seranan-tsambo
Serial.print(" => ");
Serial.print(pub.payload_string()); // mamoaka ny sandan'ny angona voaray mankany amin'ny seranan-tsambo
String payload = pub.payload_string();
if(String(pub.topic()) == "test/led") // jereo raha avy amin'ny lohahevitra ilaintsika ny data
{
int stled = payload.toInt(); // mamadika ny angona voaray ho karazana integer
digitalWrite(5,stled); // velomy na vonoina ny LED arakaraka ny soatoavina angon-drakitra voaray
}
}
WiFiClient wclient;
Mpanjifa PubSubClient(wclient, mqtt_server, mqtt_port);
void setup () {
sensors.begin();
Serial.begin (115200);
fanemorana (10);
Serial.println ();
Serial.println ();
pinMode (5, OUTPUT);
}
void loop () {
// mifandray amin'ny Wi-Fi
raha (WiFi.status() != WL_CONNECTED) {
Serial.print("Mifandray amin'ny ");
Serial.print(ssid);
Serial.println("...");
WiFi.begin(ssid, pass);
raha (WiFi.waitForConnectResult() != WL_CONNECTED)
miverina;
Serial.println("WiFi mifandray");
}
// mifandray amin'ny mpizara MQTT
raha (WiFi.status() == WL_CONNECTED) {
raha (!client.connected()) {
Serial.println("Mifandray amin'ny mpizara MQTT");
raha (client.connect(MQTT::Connect("arduinoClient2")
.set_auth(mqtt_user, mqtt_pass))) {
Serial.println("Mifandray amin'ny mpizara MQTT");
client.set_callback(callback);
client.subscribe("test/led"); // misoratra anarana amin'ny lohahevitra miaraka amin'ny angona ho an'ny LED
} else {
Serial.println("Tsy afaka mifandray amin'ny mpizara MQTT");
}
}
raha (client.connected()){
client.loop();
TempSend();
}
}
} // faran'ny loop lehibe
// Fampiasa amin'ny fandefasana vakiteny avy amin'ny sensor maripana
void TempSend(){
raha (tm==0)
{
sensors.requestTemperatures(); // mahazo ny sandan'ny maripana avy amin'ny sensor isika
float temp = sensors.getTempCByIndex(0);
client.publish("test/temp",String(temp)); // Alefaso ny sandan'ny mari-pana amin'ny lohahevitra ho an'ny sensor mari-pana
Serial.println(temp);
tm = 300; // fiatoana eo anelanelan'ny fandefasana ny mari-pana eo amin'ny 3 segondra
}
tm--;
fanemorana (10);
}
Vokatr'izany dia mahazo fitaovana mety amin'ny fanaraha-maso lavitra sy ny fanaraha-maso ny angon-drakitra izahay, izay mora ianarana ary na dia ireo vao manomboka aza dia afaka manao izany.
Lahatsary mampiseho ny fiasan'ny rafitra fanaraha-maso

Torolàlana video amin'ny antsipiriany momba ny fametrahana ny rafitra

Iray amin'ireo safidy amin'ny fampiasana ny fanaraha-maso esp8266 amin'ny alàlan'ny protocol MQTT

Fanaraha-maso Internet amin'ny tady LED

Raha manana fanontaniana momba an'io fitaovana io ianao, dia manoro hevitra aho hijery ny tapany faharoa amin'ny horonan-tsary, izay atolotra mazava kokoa ny fitaovana.
Ny arsiva dia misy ny sketch sy ny tranomboky ilaina rehetra amin'ny fametahana ny microcontroller miaraka amin'ny sketch avy amin'ny ohatra.
Mariho fa ny tranomboky ESP8266WiFi.h dia tsy tafiditra ao anatin'ity arisiva ity, apetraka amin'ny alàlan'ny mpitantana Boards ao amin'ny tontolo Arduino.
Mpizara MQTT -
Rohy amin'ny IoT MQTT Dashboard App −
Misaotra anareo rehetra tamin'ny fiheveranareo.
Source: www.habr.com
